猜数字游戏的实现(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计数器,即游戏规则改为直到猜对为止。
