C语言编程 潜水
  • 14发帖数
  • 14主题数
  • 0关注数
  • 0粉丝
开启左侧

C语言基础项目:200 行代码实现贪吃蛇!思路+源码详解

[复制链接]
 楼主| C语言编程 发表于 2022-3-10 16:17:50 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

                               
登录/注册后可看大图

思路分析:
(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[N][N];//定义贪吃蛇棋盘,包括墙壁。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

精彩评论6

天马行空枕上书 发表于 2022-3-10 18:13:35 | 显示全部楼层
转发了
Edmonds12 发表于 2022-3-31 13:00:08 | 显示全部楼层
转发了
电力系统A 发表于 2022-4-2 12:07:12 | 显示全部楼层
转发了
CE欧 发表于 2022-4-3 16:01:03 | 显示全部楼层
哪是思路分析呢?
你是莪的唯一126349291 发表于 2022-4-14 18:40:38 | 显示全部楼层
转发了
美丽大海张 发表于 2022-4-15 11:32:47 | 显示全部楼层
转发了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

猜你喜欢
在线客服QQ
2241998733

24x7小时免费咨询

Powered by 创意电子 ©2018-现在 专注资源实战分享源码下载站联盟商城繁体中文