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

经验分享 程序员 微信小程序 职场和发展