• 大小: 36KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: C/C++
  • 标签: c语言  流程图  

资源简介

猜数字游戏 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


评论

共有 条评论