WHCSRL 技术网

关于猜数字游戏的实现_LIn

关于简易猜数字游戏的实现

对于今天的三子棋游戏,有以下几个特性:

  • 玩家通过输入数字来选择是否进行游戏或退出游戏,选错时会提示并重新输入
  • 通过键盘输入数据后,电脑会提示玩家所猜的数据过大或过小,若猜对则打印恭喜你,猜对了,然后让玩家重新选择是否重新进行游戏
  • 随机数的范围为1-100

废话不多说,直接上代码:>

#include <stdio.h>

#include <time.h>

#include <stdlib.h>


void menu()
{
	printf("**********************
");
	printf("******  1.play *******
");
	printf("******  0.exit *******
");
	printf("**********************
");
}



void game()
{
	int input2 = 0;
	int ret = rand() %% 100 + 1;//生成一个随机数;
	while (1)
	{
		printf("请猜数字:>");
		scanf("%%d", &input2);
		if (input2 < ret)
		{
			printf("猜小了
");
		}
		else if (input2 > ret)
		{
			printf("猜大了
");
		}
		else
		{
			printf("恭喜你,猜对了
");
			break;
		}
	}
}




int main()
{
	int input1 = 0;
	srand((unsigned int)time(NULL));//设置随机数的起点
	do
	{
		menu();//此处的menu为菜单函数
		printf("请输入数字:>");
		scanf("%%d", &input1);
		switch(input1)
		{
		case 1:
			printf("猜数字游戏
");
			game();
			break;
		case 0:
			printf("退出程序
");
			break;
		default:
			printf("输入错误,请重新输入
");
			break;
		}
	} while (input1);
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69

各处代码讲解

在这里插入图片描述

关于主函数中的srand函数,为设置一个随机数起点,但若要生成一个随机数,还需要给他传一个随机数,因此,我们想到了用时间来作为参数,并且强制转换为(unsigned int)类型,来匹配srand的语法

menu为我们自己创建的菜单函数,用来输出并提示玩家要输入什么

在这里插入图片描述

关于do-while循环:

在这里插入图片描述

因为游戏至少执行一次,因此用do while循环来进行切入,其中的switch case用来判断玩家输入为几来执行相应的结果

若选1.则进行游戏,若选0,则退出游戏,若选择其他数字,则重新输入

对game函数的讲解:

在这里插入图片描述

game函数中,rand函数用来生成一个随机数,在while循环中,玩家输入的数字会与rand函数产生的随机数进行比较,如果输入过小或过大,电脑都会进行提示,让玩家重新输入,若玩家猜对,则跳出循环,让玩家重新开始游戏或退出程序。

对于程序的一点变动

在这里插入图片描述

前面所打印的内容占了一部分屏幕,看起来好像不太爽,因此对程序进行以下改动:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这样的话打印出来会变得漂亮一些(我个人是这么认为的)!。

推荐阅读