最经典游戏贪吃蛇代码(高仿),完美复原原游戏,好玩到停不下来

news/2024/10/22 13:29:19/

直接上代码

#include<iostream>
#include<windows.h>
#include<time.h>
#include<conio.h>
#define H 22
#define W 22
using namespace std;class chessboard
{
public:char qp[H][W];int i,j,x1,y1;chessboard();void food();void prt(int grade,int score,int gamespeed);};
chessboard::chessboard()
{for(i=1;i<=H-2;i++)for(j=1;j<=W-2;j++)qp[i][j]=' ';for(i=0;i<=H-1;i++)qp[0][i] = qp[H-1][i] = '#';for(i=1;i<=H-2;i++)qp[i][0] = qp[i][W-1] = '#';food();
}
void chessboard::food()
{srand(time(0));do{x1=rand()%W-2+1;y1=rand()%H-2+1;}while(qp[x1][y1]!=' ');qp[x1][y1]='$';
}
void chessboard::prt(int grade,int score,int gamespeed)
{system("cls");cout << endl;for(i=0;i<H;i++){cout << "\t";for(j=0;j<W;j++)cout<<qp[i][j]<<' ';if(i==0) cout << "\tGrade:" << grade;if(i==2) cout << "\tScore:" << score;if(i==4) cout << "\tAutomatic forward";if(i==5) cout << "\ttime interval:" << gamespeed << "ms";cout<<endl;}
}
class snake:public chessboard
{
public:int zb[2][100];long start;int head,tail,grade,score,gamespeed,length,timeover,x,y;char direction;snake();void move();};
snake::snake()
{cout<<"\n\n\t\tThe game is about to begin!"<<endl;for(i=3;i>=0;i--){start=clock();while(clock()-start<=1000);system("cls");if(i>0)cout << "\n\n\t\tCountdown:" << i << endl;}for(i=1;i<=3;i++)qp[1][i]='*';qp[1][4]='@';for(i=0; i<4; i++){zb[0][i] = 1;zb[1][i] = i + 1;}
}
void snake::move()
{score=0;head = 3,tail = 0;grade = 1, length = 4;gamespeed = 500;direction = 77;while(1){timeover = 1;start = clock();while((timeover=(clock()-start<=gamespeed))&&!kbhit());if(timeover){getch();direction = getch();}switch(direction){case 72: x= zb[0][head]-1; y= zb[1][head];break;case 80: x= zb[0][head]+1; y= zb[1][head];break;case 75: x= zb[0][head]; y= zb[1][head]-1;break;case 77: x= zb[0][head]; y= zb[1][head]+1;break;}if(x==0 || x==21 ||y==0 || y==21){cout << "\tGame over!" << endl;break;}if(qp[x][y]!=' '&&!(x==x1&&y==y1)){cout << "\tGame over!" << endl;break;}if(x==x1 && y==y1){length ++;score=score+100;if(length>=8){length -= 8;grade ++;if(gamespeed>=200)gamespeed = 550 - grade * 50;}qp[x][y]= '@';qp[zb[0][head]][zb[1][head]] = '*';head = (head+1)%100;zb[0][head] = x;zb[1][head] = y;food();prt(grade,score,gamespeed);}else{qp[zb[0][tail]][zb[1][tail]]=' ';tail=(tail+1)%100;qp[zb[0][head]][zb[1][head]]='*';head=(head+1)%100;zb[0][head]=x;zb[1][head]=y;qp[zb[0][head]][zb[1][head]]='@';prt(grade,score,gamespeed);}}
}
int main()
{chessboard cb;snake s;s.move();
}

http://www.ppmy.cn/news/313315.html

相关文章

2023网络安全工程师面试题汇总(附答案)

又到了毕业季&#xff0c;大四的漂亮学姐即将下架&#xff0c;大一的小学妹还在来的路上&#xff0c;每逢这时候我心中总是有些小惆怅和小激动…… 作为学长&#xff0c;还是要给这些马上要初出茅庐的学弟学妹们&#xff0c;说说走出校园、走向职场要注意哪些方面。 走出校园后…

SQL开源替代品,诞生了

发明 SQL 的初衷之一显然是为了降低人们实施数据查询计算的难度。SQL 中用了不少类英语的词汇和语法&#xff0c;这是希望非技术人员也能掌握。确实&#xff0c;简单的 SQL 可以当作英语阅读&#xff0c;即使没有程序设计经验的人也能运用。 然而&#xff0c;面对稍稍复杂的查…

中断重启后出现:Error while reading checkpoint file kafka消费者无法断点消费、分区消费(读取offset恢复文件IO异常)

服务器强制重启后&#xff0c;有时Kafka等会保存checkpoint&#xff0c;但是断点信息出现错误。启动Kafka服务时&#xff0c;出现如下错误&#xff1a; ERROR Error while reading checkpoint file /home/kafka-2.3.1/kafka-logs/recovery-point-offset-checkpoint (kafka.ser…

linux(信号结尾)

目录&#xff1a; 1.可重入函数 2.volatile关键字 3.SIGCHLD信号 -------------------------------------------------------------------------------------------------------------------------------- 1.可重入函数----------用来描述一个函数的特点的 1.在单进程当中也存…

Android滴滴路由框架DRouter原理解析

作者&#xff1a;linversion 前言 最近的一个新项目使用了Clean Architecture模块化MVVM架构&#xff0c;将首页每个tab对应的功能都放到单独的模块且不相互依赖&#xff0c;这时就有了模块间页面跳转的问题&#xff0c;经过一番研究选择了滴滴的DRouter&#xff0c;因为其出色…

友华PT925E,电信天翼网关3.0,光猫超级密码获取最简便方式

第一步&#xff1a;核实是否为电信天翼网关3.0&#xff0c;如清楚&#xff0c;请直接跳至第三步 浏览器登录http://192.168.1.1/ 登录后应为下图第二步&#xff1a;使用useradmin账号 和光猫背后的密码登录后&#xff0c;界面显示为下图&#xff0c;即为电信天翼网关3.0 第三…

南天PR2 PR2E PR9 中航 PR-b PR-V PR-C PR-t PR-u PR-d GWI PR2 plus 打印机驱动安装视频教程

南天打印机 电脑驱动安装教程视频 ​ 驱动下载协助安装 打印机驱动&#xff1a;支持所有PR系列打印机 南天Nantian: PR2 PR2E PR9 PR2 plus 中航 : PR-b PR-V PR-C PR-t PR-u PR-d 长城GWI &#xff1a;PR2 plus PR 70 XP/WIN7/WIN8/WIN10 32 64位 等系统打印机驱…

天玑9000+和天玑9000有哪些区别 两者参数对比

天玑9000在今日正式发布了&#xff0c;而作为天玑9000的超频版&#xff0c;在性能上也有所提升&#xff0c;但如果和原版对比&#xff0c;天玑9000和天玑9000有哪些区别?下面来看看两者的参数对比吧。 天玑9000和天玑9000有哪些区别 两者参数对比 6 月 22 日消息&#xff0c…