计算机从指定单词列表中抽取一个单词,通过算法,把单词的字母顺序打乱,然后输出给玩家猜测。
玩家根据乱序的字母,组合猜测输入正确的单词。计算机确定是否猜测正确。
使用元组或列表构建待猜测的英文单词库列表WORDS,使用random模块的choice函数从单词的元组中随机抽取一个英文单词word。
然后把该英文单词的字母乱序排列
方法:每次随机抽取一个位置的字符放入乱序的jumble字符串中,并从原word中删除该字符
游戏 一开始先显示乱序后的字符串jumble(语义化:混乱),并提示用户输入猜测的结果,如果错误,提示继续输入,直至输入正确。猜对之后,可以询问是否继续 游戏 。 游戏 也可以通过Ctr1+C强制中断运行。
读者也可以扩展程序,例如从文件中读入单词列表,记录 游戏 玩家的得分情况等。
word-guess.py
程序运行结果如下:
分类: 电脑/网络 >> *** 作系统/系统故障问题描述:
请写一个小游戏程序,程序开始时从文件读入一批单词,文件的名字由命令行得到。程序运行中每次从这些单词中随机地选出一个,要求游戏者猜。做游戏者反复询问某些字母是否出现在单词里,程序给出回答。直至人猜出这个单词(或者放弃)。
解析:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define max 1024
#define min 50
void main()
{
FILE *fp
char c
int i=0
int j=0
读文件
char str[max][min]={0}
if((fp=fopen("word.txt","r"))==NULL)
{
printf("can not open file word.txt\n")
exit(0)
}
c=fgetc(fp)
while(c!=EOF)
{
if(c!=' ')
{
str[i][j]=c
j++
}
else
{
i++
j=0
}
c=fgetc(fp)
}
产生随机数,0-i
srand((unsigned int)time(NULL))
int n=rand()/20
while((n<0)||(n>i))
{
n=rand()/20
}
printf("取得的随机数是第%d个单词\n",n)
检查单词
printf("#######guess begin######\n")
printf("\n")
char gs
char con='y'
while(con=='y')
{
printf("请输入字母,# 号表示结束\n")
scanf("%c",&gs)
getchar()
char gue[min]={0}
int flag=0
while(gs!='#')
{
for(int i=0str[n][i]!='\0'i++)
{
if(str[n][i]==gs)
{
printf("字母%c在单词中\n",gs)
flag=1
break
}
}
if(!flag)
{
printf("字母%不在单词中\n",gs)
}
printf("请输入字母,# 号表示结束\n")
scanf("%c",&gs)
getchar()
}
printf("请输入你猜的单词\n")
scanf("%s",gue)
getchar()
if(!(strcmp(str[n],gue)))
{
printf("恭喜你,猜对了!\n")
}
else
{
printf("很遗憾,你猜错了\n")
}
printf("continue?y is guess again,press any key to end \n")
scanf("%c",&con)
getchar()
}
fclose(fp)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)