当前位置:首页 » 《随便一记》 » 正文

【c语言】写出第一个游戏:猜数字_loveliveluo的博客

20 人参与  2022年03月13日 08:02  分类 : 《随便一记》  评论

点击全文阅读


先给出我的思维导图:

 猜数字的基本要求有四个:

1.有菜单供玩家选择

2.有一百个数字,并且系统会随机给出一个数字让玩家猜。

3.猜错时,系统会给出时猜大还是猜

4.游戏能重复玩耍

写代码的流程及问题的解决

1.创建一个菜单:

建立菜单首先我们考虑使用函数menu。菜单建立如下:

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

 其次,我们要考虑到玩家输入不同数字时产生不同的效果,所以我们使用switch分支(switch与ifelse的区别看我的文章)。

然后,为了让玩家能重复玩,且至少玩一次,我们可以考虑用dowhile循环(循环的区别看我的文章)。

具体效果如下:

do
	{
		menu();
		printf("请选择:>");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game();
			break;
		case 0:
			printf("正在退出");
			break;
		default:
			printf("请重新输入");
			break;
		}
      } while (input);

 2.有一百个数字,并且系统会随机给出一个数字让玩家猜:

如果要让系统能创造一个随机数,就必须能让系统随时变化,这里我们可以采用时间戳。

首先我们得使用rand函数,这个函数的作用就是产生随机数,但它有个弊端,它产生随机数的依据是在数据库0~RAND_MAX(32767)这里取值。可是当数据库的起点和终点都一样时,系统每次产生的随机数就都相同了。

所以为了改变数据库的起点或终点,我们采用srand函数

srand用法::它需要提供一个种子,这个种子会对应一个随机数,如果使用相同的种子后面的rand()函数会出现一样的随机数。如:srand(1); 直接使用1来初始化种子。不过为了防止随机数每次重复,常常使用系统时间来初始化,即使用time函数来获得系统时间,它的返回值为从 00:00:00 GMT, January 1, 1970到现在所持续的秒数,然后将time_t型数据转化为(unsigned)型再传给srand函数,即: srand((unsigned)time(&t)); 还有一个经常用法,不需要定义time_t型t变量,即: srand((unsigned)time(NULL)); 直接传入一个空指针,因为你的程序中往往并不需要经过参数获得的t数据。(转载自CSDN博主「天糊土」的原创文章)

可即使采用了srand((unsigned)time(NULL)) 仍然可能出问题,也就是这个函数放哪里。

为了增加数字的随机性,我们要把数据库的起点也就是srand((unsigned)time(NULL)) 既要放在rand前,但又不能放在游戏循环内。这样既能防止数字出现规律,又能使数字随机。

3.猜错时,系统会给出猜大了还是猜小了

既然出现了条件分支,那么就要考虑使用if语句了。这里直接给出实例:

while (1)
	{
		printf("请猜数字\n");
		scanf("%d", &guess);
		if (guess<ret)
		{
			printf("猜小了\n");
	     }
		else if (guess>ret)
		{
			printf("猜大了\n");
		}
			else
		{
			printf("猜对了\n");
			break;
		}
	}

接下来只要补充细节,便可完成这个小游戏了。


点击全文阅读


本文链接:http://zhangshiyu.com/post/36110.html

随机数  数字  函数  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 沐星澜陆司沉结局+番外免费_(沐星澜陆司沉结局+番外)沐星澜陆司沉结局+番外列表_笔趣阁(沐星澜陆司沉)
  • [爱也沧沧,恨也沧沧]小说***章节抢先看_贺景宋南乔南乔全集阅读
  • 邓云承汪夏再活一次,她的爱还是给了别人全书+后续+结局列表_笔趣阁(再活一次,她的爱还是给了别人全书+后续+结局邓云承汪夏)
  • 从此星辰远,归途似海深+后续+结局(璃月龙影)列表_从此星辰远,归途似海深+后续+结局
  • 也曾偷藏欢喜+结局+番外(乔喜商凛)列表_也曾偷藏欢喜+结局+番外(乔喜商凛)也曾偷藏欢喜+结局+番外在线
  • 许我三千繁星愿全书+后续(楚砚风慕星眠)列表_许我三千繁星愿全书+后续(楚砚风慕星眠)许我三千繁星愿全书+后续在线
  • 暗香疏影已成尘结局+番外(宋窈宁陆靳言)_暗香疏影已成尘结局+番外(宋窈宁陆靳言)列表_笔趣阁(宋窈宁陆靳言)
  • (番外)+(全书)《九幽不渡卿结局+番外》(孟卿卿谢昭远)免费在线_《九幽不渡卿结局+番外》孟卿卿谢昭远全文
  • 也曾偷藏欢喜免费结局+番外(乔喜商凛)列表_也曾偷藏欢喜免费结局+番外(乔喜商凛)也曾偷藏欢喜免费结局+番外在线
  • [被丢下忘川后,阎王夫君悔疯了]免费试读_秦温云裳阎王情感冲突精选段落
  • 你是我难愈的旧伤结局+番外(傅深铭夏晚星)列表_你是我难愈的旧伤结局+番外(傅深铭夏晚星)结局篇+番外在线
  • 九幽不渡卿全书+后续+结局(孟卿卿谢昭远绮萝)_(孟卿卿谢昭远绮萝)九幽不渡卿全书+后续+结局列表_笔趣阁(孟卿卿谢昭远绮萝)

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1