C语言基础项目:200 行代码实现贪吃蛇!思路+源码详解
https://p9.toutiaoimg.com/large/tos-cn-i-qvj2lq49k0/a94b535476f7432386920038fc191f03思路分析:
(1)使用该函数起首应在开头包含头文件stdlib.h
#include(C++建议使用#include,下同)
(2)在标准的C库中函数rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX是stdlib.h 中定义的一个整数,它与体系有关。
(3)rand()函数没有输入参数,直接通过表达式rand()来引用;比方可以用下面的语句来打印两个随机数:
printf(“Random numbers are: %i %i\n”,rand(),rand());
(4)因为rand()函数是按指定的次序来产生整数,因此每次实行上面的语句都打印相同的两个值,所以说C语言的随机并不是真正意义上的随机,偶然候也叫伪随机数。
(5)为了使程序在每次实行时都能生成一个新序列的随机值,我们通常通过为随机数生成器提供一粒新的随机种子。函数srand()(来自stdlib.h)可以为随机数生成器播散种子。只要种子差别rand()函数就会产生差别的随机数序列。srand()称为随机数生成器的初始化器。
修改部分及bug:
1.速度值反show函数及操作中的bug
2.源代码注释
3.新增最高纪录变量
源码展示:(CSDN:Shawn Hou)
#include #include #include #include #include #include #include #define N 25using namespace std;int gameover;//游戏失败的值int x1, y1; // 随机生成食物的坐标int x,y;int record=0; //当前用户最高纪录long start;//下面定义贪吃蛇的坐标类class snake_position{public:int x,y;snake_position(){};void initialize(int &);//坐标初始化};snake_position position[(N-2)*(N-2)+1]; //定义贪吃蛇坐标类数组,有(N-2)*(N-2)个坐标void snake_position::initialize(int &j){x = 1;y = j;}//下面定义贪吃蛇的棋盘图class snake_map{private:char s;//定义贪吃蛇棋盘,包括墙壁。int grade, length;int gamespeed; //进步时间间隔char direction; // 初始环境下,向右活动int head,tail;//头和尾int score;//分数bool gameauto;public:snake_map(int h=4,int t=1,int l=4,char d=77,int s=0):length(l),direction(d),head(h),tail(t),score(s){}void initialize(); //初始化函数void show_game();int updata_game();void setpoint();void getgrade();void display();};//定义初始化函数,将贪吃蛇的棋盘图举行初始化void snake_map::initialize(){int i,j;for(i=1;i 转发了 转发了 转发了 哪是思路分析呢? 转发了 转发了
页:
[1]