资源简介
c 实现贪吃蛇图形界面
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include “tools.h“
using namespace std;
#define w 72
#define s 80
#define a 75
#define d 77
#define maxs 1320
#define maxwidth 102 //地图的长度
#define maxheight 32 //地图的宽度
#define X 21 //定义地图左上角为坐标原点
#define Y 1
#define speed 100
/*地图对象*/
class Map {
public:
int map[maxheight][maxwidth] = { 0 };
void food();
void wall();
};
/*蛇对象*/
class Snake {
private:
int dction;
int length;
bool ifalive;
public:
Map belong;
int x[maxs];
int y[maxs];
Snake(int length_s);
void draw();
void pb();
void up();
void down();
void left();
void right();
void move(char menu);
void death();
int eatfood(char menu);
};
Snake::Snake(int length_s) {
srand((int)time(0));
x[0] = rand() % (maxwidth-2) + X +1;
y[0] = rand() % (maxheight - 4) + Y +3 ;
length = length_s;
dction = s;
ifalive =true;
for (int i = 1; i != length; i++){
x[i] = x[0];
y[i] = y[i - 1] - 1;
}
draw();
}
void Map::food() {
int n;
int x y;
srand((unsigned)time(0));
n = rand() % 5 + 1;
for (int i = 1; i <= n; i++) {
while (1) {
x = rand() % (maxwidth - 2) + 1;
y = rand() % (maxheight - 2) + 1;
if(map[y][x]!=2)
break;
}
map[y][x] = 1;
showch(x + X y + Y ‘ ‘ COLOR_HYELLOW COLOR_BLACK);
}
}
void Map::wall() {
setcolor(COLOR_BLACK COLOR_WHITE);
setconsoleborder(150 40);
for (int i = 0; i < maxwidth; i++) {
showch(X + i Y ‘ ‘ COLOR_HBLUE COLOR_BLACK);
showch(X + i Y + maxheight-1 ‘ ‘ COLOR_HBLUE COLOR_BLACK);
map[0][i] = 2;
map[maxheight - 1][i] = 2;
}
for (int i = 0; i < maxheight-2; i++) {
showch(X Y+1 + i ‘ ‘ COLOR_HBLUE COLOR_BLACK);
showch(X + maxwidth-1 Y+1 + i ‘ ‘ COLOR_HBLUE COLOR_BLACK);
map[i][0] = map[i][maxwidth - 1] = 2;
}
}
void Snake::draw() {
for (int i = 0; i < length; i++) {
if(i!=0)
showch(x[i] y[i] ‘ ‘ COLOR_HGREEN COLOR_BLACK);
if (i == 0)
showch(x[i] y[i] ‘ ‘ COLOR_HRED COLOR_BLACK);
}
}
/*上下左右移动中代码重复部分*/
void Snake::pb() {
showch(x[length - 1] y[length - 1] ‘ ‘ COLOR_BLACK COLOR_WHITE);
for (int i = length - 1; i != 0; i--) {
x[i] = x[i - 1];
y[i] = y[i - 1];
}
}
void Snake::up() {
pb();
y[0]--;
draw();
Sleep(speed);
}
void Snake::down() {
pb();
y[0]++;
draw();
Sleep(speed);
}
void Snake::left() {
pb();
x[0]--;
draw();
Sleep(speed);
}
void Snake::right() {
pb();
x[0]++;
draw();
Sleep(speed);
}
/*控制小蛇移动函数 */
void Snake::move(char menu) {
int score = 0score_max =0score_sn_death n = 0;
char _score[1000];
belong.wall();
belong.food();
ifstream infile(“record.txt“ ios::in);
if (!infile) {
cerr << “open error!“ << endl;
exit(1);
}
while (!infile.eof()) { //在小蛇移动之前先读出历史最高分
score_s = 0;
if(menu==‘1‘)
infile.g
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 8218 2019-05-10 12:23 big_2.cpp
文件 6999 2019-05-09 22:48 tools.cpp
文件 1064 2019-05-10 22:23 tools.h
文件 38304 2020-07-04 19:21 贪吃蛇大作战报告.docx
相关资源
- C语言ege贪吃蛇游戏
- C++贪吃蛇控制台小游戏代码
- 彩色贪吃蛇.c
- c++游戏程序(包含源代码,有扫雷,
- 基于qt的c++编写的贪吃蛇游戏
- c语言 linux 贪吃蛇.doc
- 基于sfml的贪吃蛇
- 基于SDL的贪吃蛇游戏
- 贪吃蛇VC6 MFC
- MFC VC6.0 简单贪吃蛇
- MFC下实现的贪吃蛇
- C++课程设计贪吃蛇源码+课设报告
- MFC课程设计报告-手把手教你写贪吃蛇
- C++写的贪吃蛇(含源代码和注释,采
- 基于c++的贪吃蛇游戏设计
- c++贪吃蛇编程源代码论文设计c语言
- VC6.0贪吃蛇MFC
- C语言基于SDL的贪吃蛇项目
- 贪吃蛇(有完全源码和每一个功能的
- VC++版贪吃蛇游戏源代码
- vc++6.0 MFC 写的贪吃蛇工程源码
- MFC 贪吃蛇
- MFC编写的贪吃蛇源码
- visual c++的几个经典小游戏
- C++贪吃蛇设计+论文
- 用Visual C++6.0开发的贪吃蛇游戏含注释
- C语言贪吃蛇
- opengl/c++贪吃蛇.rar
- 贪吃蛇大作战demo实现和代码
- 加入射击功能和AI的贪吃蛇
评论
共有 条评论