用C语言编写一个单词接龙的小游戏任给两个字母a1和a2,玩家写出以a1开头的单词或词组,然后依次以前一个单词(或词组)最后一个字母开始的单词,或者前一个单词或词组最后两个(或三个)
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 09:18:05
用C语言编写一个单词接龙的小游戏任给两个字母a1和a2,玩家写出以a1开头的单词或词组,然后依次以前一个单词(或词组)最后一个字母开始的单词,或者前一个单词或词组最后两个(或三个)
用C语言编写一个单词接龙的小游戏
任给两个字母a1和a2,玩家写出以a1开头的单词或词组,然后依次以前一个单词(或词组)最后一个字母开始的单词,或者前一个单词或词组最后两个(或三个)字母开始的单词(或词组),直至该单词(或词组)的最后一个字母为a2.
功能要求:
a1和a2随机产生.
玩家从命令行输入单词或词组.
玩家所输入的单词或词组均保存至文件.
程序可检测玩家所输入的单词或词组是否符合游戏规则.
允许玩家选择开始新游戏、结束游戏或退出程序.
用C语言编写一个单词接龙的小游戏任给两个字母a1和a2,玩家写出以a1开头的单词或词组,然后依次以前一个单词(或词组)最后一个字母开始的单词,或者前一个单词或词组最后两个(或三个)
//囧,代码写好回来一看居然已经有推荐答案了.
#include
#include
#include
#include
#include
#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");//= 3)
strcpy(first,&buff[len-3]);
else
strcpy(first,buff);
printf("匹配成功,请继续输入.\n");
}
}
}
fclose(fp);
}
int main()
{
srand(GetTickCount());
start();
system("pause");
}