用C语言编写一个单词接龙的小游戏
发布网友
发布时间:2022-05-16 05:55
我来回答
共3个回答
热心网友
时间:2023-10-13 02:26
//囧,代码写好回来一看居然已经有推荐答案了.....
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <windows.h>
#define MAX 80
char buff[MAX+1];
char first[4];
char last;
bool spellCheck()
{
int p = 0;
while(buff[p] != 0)
{
if(buff[p] > 'z'||buff[p] < 'a')
return false;
p++;
}
return true;
}
bool syntaxCheck()
{
int len = strlen(first);
if(len == 3)
{
if(strncmp(first,buff,3) == 0)
return true;
else if(strncmp(&first[1],buff,2) == 0)
return true;
else if(strncmp(&first[2],buff,1) == 0)
return true;
}
else if(len == 2)
{
if(strncmp(&first[0],buff,2) == 0)
return true;
else if(strncmp(&first[1],buff,1) == 0)
return true;
}
else if(len == 1)
{
if(strncmp(&first[0],buff,1) == 0)
return true;
}
return false;
}
void getWord()
{
do
{
printf("请输入一个全小写的单词,和%s匹配\n",first);
scanf("%s",buff);
if(!spellCheck())
{
printf("拼写错误,请输入一个全小写的单词......\n");
continue;
}
if(strlen(buff) == 0)
{
printf("请输入一个单词......\n");
continue;
}
return;
}while(true);
}
void start()
{
FILE *fp = fopen("D:\\1.txt","w");//<--------这里改输出文件的路径
int len;
first[0] = rand()%26+'a';
first[1] = 0;
last = rand()%26+'a';
printf("a1:%c a2:%c\n",first[0],last);
while(true)
{
getWord();
if(!syntaxCheck())
{
printf("输入的单词不符合要求,请重新输入......\n");
continue;
}
else
{
fprintf(fp,"%s\n",buff);
len = strlen(buff);
if(buff[len-1] == last)
{
printf("%s末尾和a2:%c匹配,所以游戏结束\n",buff,last);
break;
}
else
{
if(len >= 3)
strcpy(first,&buff[len-3]);
else
strcpy(first,buff);
printf("匹配成功,请继续输入......\n");
}
}
}
fclose(fp);
}
int main()
{
srand(GetTickCount());
start();
system("pause");
}追问程序还是很不错的,但是为了能够对单词(或词组)的正确性做出判断,程序需要维护一本英文单词词典。判断单词(或词组)的正确性,就是在该词典中查找相应的单词(或词组),找到则正确,找不到则错误。另外,为保证游戏过程中玩家输入的单词(或词组)有较高的有效性,还应注意英文单词词典的含词量要足够大。而且请给程序加些注释,本人菜鸟,不怎么看得懂,谢谢了。
热心网友
时间:2023-10-13 02:27
随机字母的产生:
首先,创建一个字符串包含26个字母;
然后,做一个随机函数,让它的返回值在0~25之间;
最后,用这个随机函数生成的数值,作为从第一步创建的字符串中挑出一个字母的序号;第二字母类似.
校验玩家的输入:
首先,判断玩家输入的第一个字母是否为前面的最后一个字母;
然后,判断这个单词或词组的最后一个字母是否与系统产生的第二个字母相同,如果相同游戏结束,不同游戏继续;
其中,在游戏过程中,利用文件操作进行数据的存储,建议用附加的写方式操作文件.
基本原理就是这些,如果需要,可以进一步讨论.Hi就可以
热心网友
时间:2023-10-13 02:27
没看懂你表的意思,但是感觉不难