猜数字游戏的实现(C语言)
利用循环与分支语句来实现一个简单的猜数字游戏:
游戏规则:系统随机生成一个[1,100]内的整数,玩家需要在六次之内猜出这个数字。每猜一次,如果猜对,则提示恭喜并公布数字,否则会提示玩家猜大了或者猜小了,剩余尝试次数随之减一,次数用完,游戏结束!
具体代码实现如下:
#include <stdio.h> #include <windows.h> #include <stdlib.h> #include <time.h> #pragma warning(disable:4996) #define TRY_COUNT 6//宏定义猜数字限制次数 void Meun()//菜单函数 { printf("**************************************************************************** "); printf("********1.Game! 2.Quit!********** "); printf("**************************************************************************** "); printf("Please selest 1 or 2 : ");//让玩家选择进行游戏或者退出 } void Game()//游戏函数 { printf("*********************************游戏开始!********************************* "); printf("游戏规则:系统已随机生成一个[1,100]内的整数,玩家需要在六次之内猜出这个数字, "); printf("每猜一次,如果猜对,则提示恭喜,否则系统会提示玩家猜大了或者猜小了,剩余次数 "); printf("随之减一,次数用完,游戏结束! ");//游戏规则部分 srand((unsigned int)time(NULL));//随机生成一个整形数据 int data = rand() % 100 + 1;//使数据控制在[1,100] int count = 0; count = TRY_COUNT; while (count > 0){ int x = 0; printf("Please guess: "); scanf("%d", &x); if (x < data){ count--; printf("猜小了!再试试(你还有%d次机会!): ",count); } else if (x>data){ count--; printf("猜大了!再试试(你还有%d次机会!): ",count); } else{ printf("恭喜你,猜对了!这个数字就是%d! ", data); break; } } if (0 == count){ printf("非常遗憾,次数已使用完毕,您还未能猜出,再来一把试试吧! "); } printf("*********************************游戏结束!********************************* "); printf(" "); } int main() { int quit = 0;//定义quit用来跳出while循环 while (!quit){ Meun(); int select = 0; scanf("%d", &select); switch (select){ case 1: Game(); printf("游戏时间总是短暂的,再来一把吗? "); break; case 2: quit = 1;//跳出while循环 printf("Game End!"); break; default: printf("输入有误,请重新输入: "); break; } } system("pause"); return 0; }
运行结果及游戏测试:
运气比较好六次之内猜对了: 运气较差没有在限制次数之内猜对数字: 不论最终猜对与否都可以选择再来一把或者退出。
有一点想说明一下,从代码中可以看到我把次数限制进行了宏定义,也是为了方便大家根据个人喜好随意修改,甚至也可以直接去掉count计数器,即游戏规则改为直到猜对为止。