void evaluate(){
for (i=0; i<200; i++){
if (phrase[i][2]==name[cmax-1]){
phrase[i][0]=phrase[i][0]+50;
}
for (j=0; j<50; j++){
if (phrase[i][j]==52){
lsyl[0]=phrase[i][j-1];
lsyl[1]=phrase[i][j-2];
lsyl[2]=phrase[i][j-3];
Lmax=j;
break;
}
}
if (lsyl[0] == name[0] && lsyl[1] == name[1] && lsyl[2] == name[2] && name[0] != 8){
phrase[i][0]=phrase[i][0]+1500;
}else if (lsyl[0] == name[0] && lsyl[1] == name[1] && name[0] != 8){
phrase[i][0]=phrase[i][0]+150;
}else if (lsyl[0] == name[0] && name[0] != 8){
phrase[i][0]=phrase[i][0]+50;
}
for (j=2; j<Lmax-2; j++){
for (k=0; k<cmax; k++){
if (phrase[i][j] == name[k] && phrase[i][j+1] == name[k+1] && phrase[i][j+2] == name[k+2]){
phrase[i][0]=phrase[i][0]+1000;
}else if (phrase[i][j] == name[k] && phrase[i][j+2] == name[k+2]){
phrase[i][0]=phrase[i][0]+100;
}else if (phrase[i][j] == name[k] && phrase[i][j+2] == name[k+2]){
phrase[i][0]=phrase[i][0]+100;
}else if (phrase[i][j] == name[k]){
phrase[i][0]=phrase[i][0]+1;
}
}
}
}
}
这是我正在处理的程序中的一个函数。 该程序将名称放入数组名称[]中,并将其与常用声音和常见声音组合(例如凯利和果冻)的200个习语进行比较
现在评估功能正常工作,但是有些组合缺失了,我想知道我是否忽视了从前到后比较它们的简单方法;我的意思是,从短语中的最后一个声音到名称中的第一个声音开始,一直到短语中的第一个声音与名称中的最后一个声音进行比较。
Cmax是这个名字的长度 Lmax是短语的长度,它们在短语的末尾都有一个终止52