1. 程式人生 > 遊戲攻略 >《前往中世紀》基地佈局參考

《前往中世紀》基地佈局參考

#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#define MAX 10005
typedef struct node
{
    char a[16];
    int len;
}node;
node te,t[MAX];
int n=0;

void pp(node T)
{
    int N[10005];
    int p=0;
    int i,j,k;
    int now;
    for(now=0;now<n;now++)//從now節點開始匹配
    {
        //模糊匹配
int count=0; if(t[now].len==T.len) { for(i=0;i<T.len;i++) { if(t[now].a[i]!=T.a[i]) count++; if(count>1) break; } if(count==0) { printf(
"%s is correct\n",T.a); return; } } else if(t[now].len==T.len+1)//字典比帶匹配串長 { for(j=0,k=0;j<t[now].len;j++,k++) { if(T.a[j]!=t[now].a[k]) { j--; count++;
if(count>1) break; } } } else if(t[now].len==T.len-1)//字典比待匹配串短 { for(j=0,k=0;j<T.len;j++,k++) { if(t[now].a[j]!=T.a[k]) { j--; count++; if(count>1) break; } } } if(count==1) N[p++]=now;//記錄字典的位置 } printf("%s:",T.a); for(j=0;j<p;j++) printf(" %s",t[N[j]].a); printf("\n"); } int main() { while(~scanf("%s",t[n].a)) { if(t[n].a[0]=='#') break; t[n].len=strlen(t[n].a); n++; } while(~scanf("%s",te.a)) { if(te.a[0]=='#') break; te.len=strlen(te.a); pp(te); } return 0; }