猜数字游戏的C++代码

来源:百度知道 编辑:UC知道 时间:2024/05/11 00:57:09
题目如下:
本次实验将练习指针和基于指针的字符串操作,以及多模块文件编程。你需要设计完成一个猜单词的小游戏wordZ。该程序将从一个字典中随机地选择一个单词,并用’-’字符告诉用户该单词有几个字母。用户每次输入一个字母后,程序判断该字母是否在该单词中,如果有则显示该单词中所有该字母,否则提示没有猜中。用户可以最多有8次猜测的机会(重复输入的字母不计入在内。)。如果用户在最大的猜测机会内猜中了该单词,则该次游戏用户胜利,否则用户失败。用户可以选择是否继续重复进行游戏。你可以运行作业材料中附带的已经完成的wordZ.exe程序来了解更多的该程序的输入和输出要求。

作业提示:
1. 为了简化操作,如何从字典文件中获取一个随机单词的功能函数已经完成了。该功能用到的函数原型在randword.h中,实现代码在randword.cpp中。单词字典在words.txt文件中。这三个文件都在作业材料里提供了。
2. 要使用randword.h中的函数功能,你需要把上述三个文件放入你编写的程序的目录下,并分别将randword.h和randword.cpp加入到你编写程序的project中的头文件和源文件中。具体操作是如前几次作业一样先建立该文件的工程,然后选择project->add to project->files分别添加上述文件。在主程序文件中还需要添加一行:#include”randword.h”
3. 主程序的框架和常量定义已经在作业材料的wordz.cpp文件中给出,你需要在此基础上完成如下主要内容来实现整个程序:
 从randword.h中的函数库中使用函数初始化字典文件
 从randword.h中的函数库中使用函数选择一个随机的单词
 跟踪并显示用户已经部分猜测的单词。开始时该单词所有字母都是用“-”符号替代,然后猜中的字母将会显示,其他字符仍然用“-”符号替代。
 实现对游戏流程的控制,如对每次猜测的循环、判断是否游戏结束等等
 注意处理游戏中的一些细节问题,如跟踪用户的猜测次数,跟踪用户已经猜过的字母,每个步骤显示正确的提示信息等
4. 产生随机单词

#include <time.h>
#include <stdlib.h>
#include <stdio.h>
void main()
{
int a[4],b[4],over=1;
int i,j,k,m,an,bn,flag,x;
srand ((unsigned int)time (NULL));
a[0]=rand()%9+1;
k=1;
while (k<4)
{
x=rand()%9+1;
for (i=0;i<k;i++)
if (x==a[i])break;
if (i>=k)
{
a[k]=x;k++;
}
}
for(i=0;i<4;i++)
printf("%3d",a[i]);
printf("\n");
m=1;
while (over==1)
{
printf("please input 4 numbers (1-9),数字不能重复,数字间用空格隔开,第%2次:\n",m);
flag=1;
for (i=0;i<4;i++)
{
scanf("%d",&b[i]);
if (b[i]>9||b[i]<1) flag=0;
}
for (i=0;i<4;i++)
{
for(j=i+1;j<4;j++)
if (b[i]==b[j])
{
flag=0;break;
}
if (flag==0)
{
printf("输入有误!请重试:\n");
continue;
}
an=0;bn=0;
for (i=0;i<4;i++)
for (j=0;j<