分享一个C++自己写的贪吃蛇
分享一个自己写的C++贪吃蛇之前学C++时写的,希望大家喜欢!
部分核心代码:
```
void initiBoard() {
for(int i = 1; i<=15; i++) {
strcpy(Board,Boardiniti); //把Boardiniti复制到Board中
}
}
void printBoard() {
system("cls");//清屏
for(int i = 1; i <= 15; i++) {
cout<<Board;
}
}
void changeBoard(int x,int y,int changeFlag) {
if(changeFlag==1) {
Board = ' ';
} else if(changeFlag==3) {
Board = 'X'; //■█□嘿嘿嘿
} else if(changeFlag==4) {
Board = '*';
}
}
void changeiniBoard(int x,int y,int changeFlag) {
if(changeFlag == 1)
Boardiniti = '*';
if(changeFlag == 2)
Boardiniti = ' ';
}
void changeSnakeBody() {
for(int i = 0; i <=1; i++) {
for(int j = snakeEnd; j >=1; j--) {
snake = snake;
}
}
}
void move() {
if(towards == 2) { //上
changeSnakeBody();
snake++;
} else if(towards == 1) { //下
changeSnakeBody();
snake--;
} else if(towards == 3) { //左
changeSnakeBody();
snake--;
} else if(towards == 4) { //右
changeSnakeBody();
snake++;
}
}
void getTowards() {
int twds=towards;
timeNow = GetTickCount();
while(GetTickCount()<timeNow+hard) {
if(kbhit()) {
char tows = getch();
if((tows == 'w'||tows == 'W')&&twds!=2) towards = 1;
else if((tows == 's'||tows == 'S')&&twds!=1) towards = 2;
else if((tows == 'a'||tows == 'A')&&twds!=4) towards = 3;
else if((tows == 'd'||tows == 'D')&&twds!=3) towards = 4;
}
}
}
void updataBoard() {
initiBoard();
for(int i = snakeEnd; i >=0; i--) {
changeBoard(snake,snake,3);
}
}
```
另外,此软件由 Dev-C++ 编写,源代码在压缩文件中的新建文件夹 project1.dev 文件中打开,没有Dev的同学也可使用压缩文件中的 贪吃蛇.cpp 文件编译(只是没有图标),感谢大家的支持! Bluezzz 发表于 2020-2-18 09:35
感谢大佬的调试,但我在 Win7 电脑上跑的很好呀?
void changeiniBoard(int x,int y,int changeFlag) {
if(changeFlag == 1)
Boardiniti = '*';
if(changeFlag == 2)
Boardiniti = ' ';
}
Seed数组初始变量-1,执行changeiniBoard不出错才怪。除非我用的和你用的不是同一个代码。
我是中文的 贪吃蛇.cpp 编译的 Bluezzz 发表于 2020-2-18 09:27
怎么会崩溃呢???
void play() {
score = 0;
is_alive = 1;
towards = 4; //蛇的朝向 1:向上 2:向下 3:向左 4:向右
snake = 5; //蛇的xy坐标
snake = 7;
snakeEnd = 1;
//changeiniBoard(Seed,Seed,2); //<==这行注释掉就不会崩溃,也能玩游戏。有这行就崩溃
Seed = -1;
Seed = -1;
while(is_alive) {
getTowards(); //获取朝向
move(); //让大蛇飞
updataBoard();
printBoard(); //画 板 子
genSeed(); //生成种子
Judge(); //判断是否吃豆
}
End();
}
前排支持 没有环境,无法编译,代码和界面很赞,能改成个python的么? phpbird 发表于 2020-2-18 09:04
没有环境,无法编译,代码和界面很赞,能改成个python的么?
额。。。我是Python的初学者,能力有限。。。很多语法还不知道,请谅解{:1_923:} 感谢分享自己作品 感谢分享,楼主辛苦了。让我想起了上学期间的作业。 yunxiaoyulin 发表于 2020-2-18 09:15
感谢分享,楼主辛苦了。让我想起了上学期间的作业。
感谢支持!让我们共同学习{:1_919:} 按了S就奔溃= =# 厉害好评 JuncoJet 发表于 2020-2-18 09:24
按了S就奔溃= =#
怎么会崩溃呢???{:1_936:}