经典游戏——贪吃蛇

本文介绍了如何使用C++编程实现经典游戏贪吃蛇,涉及随机数生成、游戏控制、等级选择和暂停功能。通过rand()、srand()和time()函数产生随机食物位置,利用clock()函数实现动态延迟效果,同时增加了分数系统和等级选择,增强了游戏的可玩性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.   题目描述

      小时候都玩过贪吃蛇这个经典的小游戏,在我们的普通手机里似乎都是必备的。它伴随着我们的童年,经历了好多好多时光。它带给我们了许多的乐趣。学习了c++这门编程语言后,我就想着能不能把它做出来,在我查看了相关知识后,明白了其中的道理,就尝试着自己写出这个小游戏来,而且加入了许多可玩性的东西,包括等级选择,暂停/继续和分数制。整个程序采用了类和数组的相关知识实现。

 2.   分析思路

下面就来讲讲贪吃蛇的整个设计思路:

一、贪吃蛇的特点:随机产生食物后,然后通过上下左右地方向键来控制贪吃蛇的移动,

当碰到食物时,便把它吃掉,从而身体长度增加一个,这里便采用“#”作为蛇头,”*”作为蛇身和食物。

       因此我便想到,产生的食物,是如何达到随机的目的呢?通过查阅资料得知,在time.h头文件中,定义了通过rand()函数来产生随机数。下面是相关知识:

概述

rand()函数是产生随机数的一个随机函数C语言里还有srand()函数等。

详述

(1)使用该函数首先应在开头包含头文件stdlib.h

#include<stdlib.h>(C++建议使用#include<cstdlib>,下同)

(2)在标准的C库中函数rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAXstdlib.h 中定义的一个整数,它与系统有关。

(3)rand()函数没有输入参数,直接通过表达式rand()来引用;例如可以用下面的语句来打印两个随机数:

printf("Random numbers are: %i %i\n",rand(),rand());

(4)因为rand()函数是按指定的顺序来产生整数,因此每次执行上面的语句都打印相同的两个值,所以说C语言的随机并不是真正意义上的随机,有时候也叫伪随机数

(5)为了使程序在每次执行时都能生成一个新序列的随机值,我们通常通过为随机数生成器提供一粒新的随机种子。函数srand()(来自stdlib.h)可以为随机数生成器播散种子。只要种子不同rand()函数就会产生不同的随机数序列。srand()称为随机数生成器的初始化器

由于一开始没有使用srand()函数,多次运行后发现,每次打开运行后产生的食物位置都是一致的,并没有真正达到随机的目的。因此使用srand()函数,又通过time()函数来每次调用一个系统时间来作为srand()的种子。由于每次调用的系统时间并不相同,所以每次的种子也就不相同,从而使得rand()函数达到了随机数的目的。下面是time()函数相关知识:

time() 函数返回自 Unix 纪元(January 1 1970 00:00:00 GMT)起的当前时间的秒数。

主要用来获取当前的系统时间,返回的结果是一个time_t类型,其值表示从UTCCoordinated Universal Time)时间197011

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值