资源简介
猜数字游戏 c语言实现 猜4位随机生成的数 每次给猜测提示直到猜对 包含程序流程图
代码片段和文件信息
#include
#include
#include
int getRand(); // 获取随机数
void putRule(); // 输出游戏规则
void getUserInput(); // 获取用户输入
void getUserAgainInput(); // 再次获取用户输入
void initSystemNum(); // 初始化系统随机数
void detection(); // 判定胜利条件
void initGame(); // 初始化游戏
bool detectionWin(); // 判断是否胜利
void gameStart(); // 游戏开始
void putResult(); // 输出结果
void putSystemNum(); // 测试类 输出随机结果
int systemNum[4] = {};
int userNum[4];
char result[5];
int totalTimes = 0; // 猜测次数
int main()
{
gameStart();
printf(“你太厉害了,恭喜你全部猜对 总共猜了%d次\n“ totalTimes);
printf(“按enter键退出游戏\n“);
getchar();
system(“pause“);
}
void gameStart()
{
initGame(); // 输出游戏规则 获取系统随机值 获取游戏玩家输入值
detection(); // 判断输入的值;
int flag = 1;
while(flag) //如果胜利则跳出
{
if(detectionWin()) break;
putResult(); // 失败以后 输出结果
getUserAgainInput(); // 再次获取输入
detection(); // 再次判断
}
}
void initGame()
{
putRule();
initSystemNum();// 成功找出四个数
//putSystemNum();
getUserInput();
}// 初始化游戏 初始化游戏
int getRand()// 生成systemNum数组
{
int x ;
srand(time(NULL));
x=rand()%10;
return x;
}
void initSystemNum()
{
int randNum; //保存随机数;
bool flag=1;
systemNum[0]=getRand();// 获取第一个数;
for(int i = 0 ; i<3 ; i++)// S[0]已知则需要三个随机数;
{
flag = 1;
while(flag){
randNum = getRand();
for(int g = 0 ;g <= i ; g++ )
{
if(systemNum[g]==randNum) break; // 如果有一样的就重新随机并对比;
if(g==i) { flag=0 ; break ;} // 比较完成后跳出;
}
}
systemNum[i+1]=randNum; // 找到以后就赋值给systemNum;
}
}
void getUserInput()
{
totalTimes++;
printf(“游戏开始,请输入4个数:“);
for(int i = 0 ; i<4 ; i++)
{
scanf(“%d“&userNum[i]);
} // 输入四个数;
// 获取用户键入值
}
void getUserAgainInput()
{
totalTimes++;
printf(“未能通过!请再次输入四个数:“);
for(int i = 0 ; i<4 ; i++)
{
scanf(“%d“&userNum[i]);
} // 输入四个数;
// 获取用户键入值
}
void putRule()
{
printf(“============================================================\n“);
printf(“ 欢迎来到猜数字游戏 \n“);
printf(“============================================================\n“);
printf(“游戏规则:\n系统给出随机的四个数字“);
printf(“用户通过输入四个数字去猜系统的四个数\n\n“);
printf(“判定结果:\n如果结果正确且位置正确则输出A\n如果结果正确但位置不正确系统给出B提示\n如果位置和数字不正确则输出C\n\n“);
printf(“例:系统给出 1 2 3 4 用户给出4 2 3 1 , 则系统将提示 B A A B \n“);
printf(“============================================================\n\n“);
}
void detection(){
for(int x = 0 ; x < 4 ; x++){
for(int y = 0 ; y < 4 ; y++ )
{
if(userNum[x]==systemNum[y])
{
if(x==y)
{ result[x] = ‘A‘;
break;
}// 位置和大小都一样
else
{
result[x] =‘B‘;
break;
}// 大小一样 位置不同
}// 如果有相同 判断位置关系
else
{
if(y==3) result[x] = ‘C‘; // 如果查询完成后没有匹配
continue;
}
// 位置和大小都不同填入C
}
}
}
bool detectionWin()
{
for(int x = 0 ; x < 4 ; x++)
{
if(result[x] ==‘B‘||result[x]==‘C‘) break;
if(x==3) return 1;// 全部判断完成 且没有return
}
return 0;
}
void putResult()
{
for(int a = 0 ; a < 4 ; a++)
{
printf(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3597 2018-12-11 09:59 Guess\GuessNumber.cpp
文件 38235 2018-12-21 15:32 Guess\猜字游戏程序流程图.docx
目录 0 2018-12-21 15:33 Guess
----------- --------- ---------- ----- ----
41832 3
- 上一篇:秘钥管理系统 c语言实现的RSA
- 下一篇:非抢占式短作业优先进程调度C语言
相关资源
- 非抢占式短作业优先进程调度C语言
- 秘钥管理系统 c语言实现的RSA
- nrf905无线温度收发程序
- C语言实现二叉树的创建、插入、删除
- 数据结构C语言之哈夫曼编码
- 图书管理系统 C语言设计源代码和实验
- 用C语言实现SHA-1算法
- C语言实现拉格朗日插值
- C语言 斗地主 游戏
- Linux下C语言实现的FTP系统
- C语言连接Access数据库
- 常用加密算法AES、RSA、DES、MD5、TEA、
- DES算法加解密实现 C语言
- linux下FTP服务器与客户端的C语言实现
- c语言程序设计案例教程 廖湖声 第二
- 用C语言实现八数码问题的宽度优先搜
- 数据结构表达式求值,c语言版,能计
- c语言井字棋源码
- C语言课程设计_学生选修课系统
- C语言版的职工管理系统课设
- Linux操作系统C语言编程入门pd
- c语言银行管理系统
- c语言实现的对任意长度的字符串加解
- 《C语言程序设计实验指导》颜晖,张
- c语言拓扑排序算法
- 人机对战智能五子棋 C语言版
- 严蔚敏.吴伟民等《数据结构(c语言版
- c语言 bmp图片显示
- 几种控制方法的C语言编程.
- FFT的C语言实现代码
评论
共有 条评论