赞
踩
思路分析:
(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)
- #include <windows.h>
- #include <stdlib.h>
- #include <conio.h>
- #include <time.h>
- #include <cstring>
- #include <cstdio>
- #include <iostream>
- #define N 25
- using 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<=3;i++)
- s[1][i] = '*';
- s[1][4] = '#';
- for(i=1;i<=N-2;i++)
- for(j=1;j<=N-2;j++)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。