当前位置:   article > 正文

C语言基础项目:200 行代码实现贪吃蛇,思路+源码详解_贪吃蛇代码c语言以及详细解释

贪吃蛇代码c语言以及详细解释

思路分析:

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

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

(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)

  1. #include <windows.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <time.h>
  5. #include <cstring>
  6. #include <cstdio>
  7. #include <iostream>
  8. #define N 25
  9. using namespace std;
  10. int gameover;//游戏失败的值
  11. int x1, y1; // 随机生成食物的坐标
  12. int x,y;
  13. int record=0; //当前用户最高纪录
  14. long start;
  15. //下面定义贪吃蛇的坐标类
  16. class snake_position
  17. {
  18. public:
  19. int x,y;
  20. snake_position(){};
  21. void initialize(int &);//坐标初始化
  22. };
  23. snake_position position[(N-2)*(N-2)+1]; //定义贪吃蛇坐标类数组,有(N-2)*(N-2)个坐标
  24. void snake_position::initialize(int &j)
  25. {
  26. x = 1;
  27. y = j;
  28. }
  29. //下面定义贪吃蛇的棋盘图
  30. class snake_map
  31. {
  32. private:
  33. char s[N][N];//定义贪吃蛇棋盘,包括墙壁。
  34. int grade, length;
  35. int gamespeed; //前进时间间隔
  36. char direction; // 初始情况下,向右运动
  37. int head,tail;//头和尾
  38. int score;//分数
  39. bool gameauto;
  40. public:
  41. 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){}
  42. void initialize(); //初始化函数
  43. void show_game();
  44. int updata_game();
  45. void setpoint();
  46. void getgrade();
  47. void display();
  48. };
  49. //定义初始化函数,将贪吃蛇的棋盘图进行初始化
  50. void snake_map::initialize()
  51. {
  52. int i,j;
  53. for(i=1;i<=3;i++)
  54. s[1][i] = '*';
  55. s[1][4] = '#';
  56. for(i=1;i<=N-2;i++)
  57. for(j=1;j<=N-2;j++)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/389361
推荐阅读
相关标签
  

闽ICP备14008679号