1向左,2向下,3向右,5向上。A减慢自己的速度,D加快自己的速度

#include <cstdio>
#include <iostream>
#include <ctime>
#include <conio.h>
#include <windows.h>       //停顿:Sleep();
#include <cstdlib>         //清屏:system("cls");
#include <cstring>
using namespace std;
const int n=809;
struct Point {int x,y;};
int dali;
int fx[4]={-1,27,1,-27};
int fxfx[4][2]={{0,-1},{1,0},{0,1},{-1,0}};
int dis[1000][1000]; //0:墙 1:有分的路 2:没分的路 3:怪物的家
int changdi[30][27]={{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0},{0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,1,0},{0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,1,0},{0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,1,0},{0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0},{0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0},{0,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,0},{0,0,0,0,0,0,1,0,0,0,0,0,2,0,2,0,0,0,0,0,1,0,0,0,0,0,0},{0,0,0,0,0,0,1,0,0,0,0,0,2,0,2,0,0,0,0,0,1,0,0,0,0,0,0},{0,0,0,0,0,0,1,0,0,2,2,2,2,2,2,2,2,2,0,0,1,0,0,0,0,0,0},{0,0,0,0,0,0,1,0,0,2,0,0,0,3,0,0,0,2,0,0,1,0,0,0,0,0,0},{0,0,0,0,0,0,1,0,0,2,0,3,3,3,3,3,0,2,0,0,1,0,0,0,0,0,0},{2,2,2,2,2,2,1,2,2,2,0,3,3,3,3,3,0,2,2,2,1,2,2,2,2,2,2},{0,0,0,0,0,0,1,0,0,2,0,3,3,3,3,3,0,2,0,0,1,0,0,0,0,0,0},{0,0,0,0,0,0,1,0,0,2,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0},{0,0,0,0,0,0,1,0,0,2,2,2,2,2,2,2,2,2,0,0,1,0,0,0,0,0,0},{0,0,0,0,0,0,1,0,0,2,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0},{0,0,0,0,0,0,1,0,0,2,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0},{0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0},{0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,1,0},{0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,1,0},{0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0},{0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0},{0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0},{0,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,0},{0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0},{0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0},{0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
};
int x,x1,x2,x3,x4,y,y1,y2,y3,y4;
int now,now1,now2,now3,now4;
int g1,g2,g3,g4;
int fangx,nextfx,last1,last2,last3,last4;
int fenshu,guozi,guaitimer;
int T1,T2,t1,t2,stopped; //T:计时 t1:玩家速度 t2:怪物速度
int f=0; //f:{0:继续 1:被吃 2:赢了 3:输了}
int beichi;
void color(int a)//颜色函数
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
}
void gotoxy(int x,int y)//位置函数(行为x 列为y)
{
COORD pos;
pos.X=2*y;
pos.Y=x;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
}void begin(){system("cls");color(11); printf("       ★"); color(10); printf("吃豆人"); color(11); printf("★\n\n"); color(7);printf("     请将窗口开至"); color(11); printf("全屏\n"); color(7);printf("  正在初始化,请耐心等待"); for (int i=0; i<=n; i++) for (int j=1; j<=n; j++) dis[i][j]=900;for (int i=0; i<=n; i++){for (int j=0; j<=3; j++){if (i+fx[j]>=0 && i+fx[j]<=n){int k=i+fx[j],xx=k/27,yy=k%27,kk;if (changdi[i/27][i%27] && changdi[xx][yy]) dis[i][k]=kk=1;}}}for (int k=0; k<=n; k++)if(changdi[k]){for (int i=0; i<=n; i++)if(changdi[i])for (int j=0; j<=n; j++)if(changdi[j])if (dis[i][j]>dis[i][k]+dis[k][j]) dis[i][j]=dis[i][k]+dis[k][j];if (k%80==0){color (13); gotoxy(3,12); printf("│");}if (k%80==20){color(13); gotoxy(3,12); printf("╱");}if (k%80==40){color(13); gotoxy(3,12); printf("─");}if (k%80==60){color(13); gotoxy(3,12); printf("╲");}if (k%60==0){color(11); gotoxy(5,k/60); printf("●");}}}void shuru(){char ch=getch();if (ch=='1' | ch=='j') if (changdi[x+fxfx[0][0]][y+fxfx[0][1]]==1|changdi[x+fxfx[0][0]][y+fxfx[0][1]]==2) fangx=nextfx=0; else nextfx=0;else if (ch=='2' | ch=='k') if (changdi[x+fxfx[1][0]][y+fxfx[1][1]]==1|changdi[x+fxfx[1][0]][y+fxfx[1][1]]==2) fangx=nextfx=1; else nextfx=1;else if (ch=='3' | ch=='l') if (changdi[x+fxfx[2][0]][y+fxfx[2][1]]==1|changdi[x+fxfx[2][0]][y+fxfx[2][1]]==2) fangx=nextfx=2; else nextfx=2;else if (ch=='5' | ch=='i') if (changdi[x+fxfx[3][0]][y+fxfx[3][1]]==1|changdi[x+fxfx[3][0]][y+fxfx[3][1]]==2) fangx=nextfx=3; else nextfx=3;else if (ch=='0' | ch=='s') stopped=(stopped+1)%2;else if (ch=='4' | ch=='a') t1++;else if (ch=='7' | ch=='q') t2++;else if ((ch=='6' | ch=='d') && t1-1>0) t1--; else if ((ch=='9' | ch=='e') && t2-1>0) t2--;else if (ch=='g') dali=(dali+1)%2;
}void reset(){system("cls"); color(7);gotoxy(2,30); printf("控制方向:1/2/3/5");gotoxy(4,30); printf("你的速度:4/6");gotoxy(6,30); printf("怪物速度:7/9");x=22; y=13; x1=x2=x3=x4=14; y1=11; y2=12; y3=14; y4=15;now=607; now1=389; now2=390; now3=392; now4=393;for (int k=0; k<=n; k++){int i=k/27,j=k%27;gotoxy(i,j);if (changdi[i][j]==1){color(7); printf("·");}else if (!changdi[i][j]){color(1); printf("■");}if (j=26){gotoxy(i,27); color(7); printf("%d",i);} }gotoxy(0,0);gotoxy(x,y); color(14); printf("●");gotoxy(x1,y1); color(4); printf("◆");gotoxy(x2,y2); color(5); printf("◆");gotoxy(x3,y3); color(3); printf("◆");gotoxy(x4,y4); color(2); printf("◆");fangx=0; T1=T2=guaitimer=0; t1=75; t2=100;stopped=0; fenshu=0; guozi=237; g1=g2=g3=g4=0; dali=0;gotoxy(14,30); printf("  ");
}void move1(){int xx,yy;xx=x+fxfx[nextfx][0]; yy=y+fxfx[nextfx][1];if (changdi[xx][yy]){if (changdi[xx][yy]==1){fenshu+=1; changdi[xx][yy]=2;}color(14);gotoxy(x,y); printf("  ");gotoxy(xx,yy); if (!dali) printf("◎"); else printf("☆");now=x*27+y; x=xx; y=yy;fangx=nextfx;}else{if (x==13 && y==0 && fangx==0){xx=x; yy=26;}else if (x==13 && y==26 && fangx==2){xx=x; yy=0;}else{xx=x+fxfx[fangx][0]; yy=y+fxfx[fangx][1];}if (changdi[xx][yy]){if (changdi[xx][yy]==1){fenshu+=1; changdi[xx][yy]=2;}color(14);gotoxy(x,y); printf("  ");gotoxy(xx,yy); if (!dali) printf("◎"); else printf("☆");now=x*27+y; x=xx; y=yy;}}color(7);//gotoxy(15,28); printf("(%d,%d)     ",x,y); gotoxy(16,28); printf("now:%d     ",now); gotoxy(17,28); printf("%d (%d,%d) ",fangx,fxfx[fangx][0],fxfx[fangx][1]); gotoxy(18,28); printf("(%d,%d) changdi:%d  ",xx,yy,changdi[xx][yy]);
}void move2(){int haha,minhaha,xx,yy,chi=0;if (g1){minhaha=2147483647;if (now1%27==0 | now1%27==26) haha=last1;else if (!dali){for (int i=0; i<=3; i++)if (changdi[(now1+fx[i])/27][(now1+fx[i])%27] && i!=last1 && minhaha>dis[now1+fx[i]][now]) {minhaha=dis[now1+fx[i]][now]; haha=i;}}else{minhaha=-minhaha;for (int i=0; i<=3; i++)if (changdi[(now1+fx[i])/27][(now1+fx[i])%27] && i!=last1 && minhaha<dis[now1+fx[i]][now]) {minhaha=dis[now1+fx[i]][now]; haha=i;}}xx=now1/27; yy=now1%27; gotoxy(xx,yy); if (changdi[xx][yy]==1) printf("·");else printf("  "); now1+=fx[haha]; last1=(haha+2)%4;xx=now1/27; yy=now1%27; gotoxy(xx,yy); color(4); printf("◆"); color(7);if (xx==x && yy==y){if (!dali) chi+=1;else {guozi+=50;fenshu+=50;last1=0;gotoxy(now1/27,now1%27); if (changdi[now1/27][now1%27]==1) printf("·"); else printf("  ");now1=389;}}}if (g2){int k;minhaha=2147483647;if (fangx==0 | fangx==2){k=y+(fxfx[fangx][1])*3;while (k>25 | !changdi[x][k]) k--;while (k<1 | !changdi[x][k]) k++;} else{k=x+(fxfx[fangx][0])*3;while (k>28 | !changdi[k][y]) k--;while (k<1 | !changdi[k][y]) k++; } if (fangx==0 | fangx==2) k=x*27+k; else k=k*27+y;if (now2%27==0 | now2%27==26) haha=last2;else if (!dali)for (int i=0; i<=3; i++){if (changdi[(now2+fx[i])/27][(now2+fx[i])%27] && i!=last2 && minhaha>dis[now2+fx[i]][k])  {minhaha=dis[now2+fx[i]][k]; haha=i;}}       else{minhaha=-minhaha;for (int i=0; i<=3; i++){if (changdi[(now2+fx[i])/27][(now2+fx[i])%27] && i!=last2 && minhaha<dis[now2+fx[i]][k])  {minhaha=dis[now2+fx[i]][k]; haha=i;}}   }xx=now2/27; yy=now2%27; gotoxy(xx,yy); if (changdi[xx][yy]==1) printf("·");else printf("  "); now2+=fx[haha]; last2=(haha+2)%4; gotoxy(18,30);xx=now2/27; yy=now2%27; gotoxy(xx,yy); color(5); printf("◆"); color(7);if (xx==x && yy==y){if (!dali) chi+=1;else {guozi+=50;fenshu+=50;last2=0;gotoxy(now2/27,now2%27); if (changdi[now2/27][now2%27]==1) printf("·"); else printf("  ");now2=390;}}}if (g3){int k;minhaha=2147483647;if (fangx==0 | fangx==2){k=y+(fxfx[(fangx+1)%4][1])*3;while (k>25 | !changdi[x][k]) k--;while (k<1 | !changdi[x][k]) k++;} else{k=x+(fxfx[(fangx+1)%4][0])*3;while (k>28 | !changdi[k][y]) k--;while (k<1 | !changdi[k][y]) k++; } if (fangx==0 | fangx==2) k=x*27+k; else k=k*27+y;if (now3%27==0 | now3%27==26) haha=last3;else if (!dali)for (int i=0; i<=3; i++){if (changdi[(now3+fx[i])/27][(now3+fx[i])%27] && i!=last3 && minhaha>dis[now3+fx[i]][k])  {minhaha=dis[now3+fx[i]][k]; haha=i;}}   else {minhaha=-minhaha;for (int i=0; i<=3; i++){if (changdi[(now3+fx[i])/27][(now3+fx[i])%27] && i!=last3 && minhaha<dis[now3+fx[i]][k])  {minhaha=dis[now3+fx[i]][k]; haha=i;}}   }   xx=now3/27; yy=now3%27; gotoxy(xx,yy); if (changdi[xx][yy]==1) printf("·");else printf("  "); now3+=fx[haha]; last3=(haha+2)%4; gotoxy(18,30);xx=now3/27; yy=now3%27;         gotoxy(xx,yy); color(3); printf("◆"); color(7);if (xx==x && yy==y){if (!dali) chi+=1;else {guozi+=50;fenshu+=50;last3=0;gotoxy(now3/27,now3%27); if (changdi[now3/27][now3%27]==1) printf("·"); else printf("  ");now3=341;}}}if (chi) beichi++;
}int main(){begin();int jixu=1;reset();string bb[4]={"●","①","②","③"}; color(7);gotoxy(12,12); printf("倒计时"); color(12);for (int i=3; i>=0; i--){if (i==0) color(11);gotoxy(13,13); cout<<bb[i]; Sleep(1000);}gotoxy(12,12); printf("      "); gotoxy(13,13); printf(" "); color(7);while (!f){Sleep(1);gotoxy(10,30); printf("得分:%d   ",fenshu);gotoxy(8,30); printf("怪物速度:%d   ",300-t2);gotoxy(9,30); printf("你的速度:%d   ",300-t1);gotoxy(15,30); printf("被吃次数:%d ",beichi);if (kbhit()) shuru();if (stopped) continue;T1=(T1+1)%t1; T2=(T2+1)%t2;if (T1%t1==0 && now+fx[fangx]>0 && now+fx[fangx]<n) move1();if (T2%t2==0){if (guaitimer<=8){if (guaitimer==0) g1=1;if (guaitimer==8) g2=1;guaitimer++;}if (!g3 && fenshu>=30) g3=1;move2();    }if (fenshu==guozi)f=2;}if (f=2) {Sleep(3000);system("cls");printf("恭喜你吃完了!\n你一共被怪物吃掉了 %d 次",beichi);Sleep(3000);char ying;scanf("%c",&ying);}
}

制作不易,可以给个赞吗

C++ 吃豆人源代码相关推荐

  1. java吃豆人代码讲解_在吃豆人的这一关里,隐藏着来自程序员的深深恶意

    本文转载自公众号"把科学带回家"(ID:steamforkids) 作者 七君 玩过吃豆人吧.通关过吗? 通关是不可能的,这辈子都不可能的.因为吃豆人根本不可能通关. 不可能通关的 ...

  2. python吃豆人代码_像“吃豆人”一样的黑洞正在互相吞噬

    "吃豆人"游戏竟然能解释黑洞如何互相吞噬? 在<物理评论快报>发表的一项研究揭示了黑洞是如何融合在一起的,在此之前这仍然是个谜.这篇论文指出,这些黑洞间的融合来自于每个 ...

  3. c++吃豆人代码_山药豆的功效与作用营养功效

    点击上方 蓝字 关注我们 山药豆(薯蓣科薯蓣)的叶腋间常生有肾形或卵圆形的珠芽,名"零余子"又称山药籽,俗称"山药豆.山药蛋",有食补作用.山药(薯蓣科薯蓣)的 ...

  4. AI与游戏——吃豆人(4)方法综述

    这一部分先提一下一些基本的目前广泛用于游戏中的AI算法.这里最好现有点机器学习相关知识,不然可能会不知所云.后面提到具体算法我会尽量列出一些参考文献,例子也继续在吃豆人上面举例. 目前主流方法主要有, ...

  5. 超赞的贪吃蛇、吃豆人和数字华容道等童年小游戏1行Python代码就能玩

    今天分享一个有趣的Python游戏库freegames,它包含20余款经典小游戏,像贪吃蛇.吃豆人.乒乓.数字华容道等等,依托于标准库Turtle. 我们不仅可以通过1行代码进行重温这些童年小游戏,还 ...

  6. Python 玩出花了!一文教你用 Python 制作吃豆人游戏! | 附代码

    作者 | 李秋键 责编 | Carol 封图 | CSDN 下载自视觉中国 近几年来Python语言得到了快速发展,而Pygame作为Python开发应用和游戏必备的库更是展现了Python的优越性. ...

  7. 超赞!贪吃蛇、吃豆人和数字华容道等童年小游戏1行Python代码就能玩

    大家好,我是才哥. 今天分享一个有趣的Python游戏库freegames,它包含20余款经典小游戏,像贪吃蛇.吃豆人.乒乓.数字华容道等等,依托于标准库Turtle. 我们不仅可以通过1行代码进行重 ...

  8. Python 中用 300 行或更少的代码创建吃豆人游戏(教程含源码)

    吃豆人是一款经典的平台游戏,今天可能已为所有人所熟知."吃豆人"这个名字来自日语单词"paku",意思是张开和合上嘴巴.创作者岩谷彻 (Toru Iwatani ...

  9. 吃豆人html代码原理,如何用HTML做一个吃豆人?

    首先做一个项目的先想如何去实现它.比如做一个吃豆人,如图: 167b84dcbf0d3ed647b6b8c4abd75f92.jpg 首先,需要分析这个吃豆人的组成部分. 上半部分嘴,下半部分嘴,豆基 ...

最新文章

  1. 2021年春季学期-信号与系统-第五次作业参考答案-第十小题
  2. Environment.CurrentDirectory 的一个坑
  3. Windows服务的创建、安装、调试
  4. 【BZOJ 3165】 [Heoi2013]Segment 李超线段树
  5. selector多路复用_多路复用器Selector
  6. mybatis typehandler
  7. Sublime Text3中 less 自动编译成 css 的方法
  8. python sklearn安装_安装 scikit-learn
  9. CCCC-GPLT L1-039. 古风排版 团体程序设计天梯赛
  10. php get请求_JWT+PHP实现登录认证+令牌分发的修改
  11. Atitit.数据库新特性战略规划 mssql sql server 2008 SQL2012 SQL2014
  12. 指标公式c语言源码下载,通达信超级厉害指标公式源码附图-通达信公式-公式指标网...
  13. Redis下载与安装
  14. Youtube视频加字幕需要的软件电脑版+手机版 2020语音视频自动生成字幕软件
  15. 利用继电器实现防抖自锁功能
  16. 断点续传 scp rsync
  17. STM32【H7】理论——综述、HAL库简述
  18. **sony Wi-H700通话质量非常差的原因分析**
  19. 硬件知识(二)无源RC二阶滤波电路
  20. 2021清远市清城中学高考成绩查询,清远市清城中学中考成绩

热门文章

  1. Git忽略文件不起作用的原因及解决办法
  2. python turtle绕原点旋转_分享给大家几段有趣的代码,学会python画画可以不用自己动手啦...
  3. 服务器下修改mac地址是什么,服务器系统修改mac地址吗
  4. 火力全开2不显示服务器,火力全开2 城市狂热一直进不去怎么办
  5. Dagger使用详解
  6. office2019 图目录_抠发丝简直弱爆了,这款抠图神器什么都能抠!,支持win/Mac
  7. redis修改配置重启命令_如何从命令行更改Redis的配置
  8. 解码和读取GRB2格式的气象文件
  9. MySQL数据CURD操作
  10. VBA操作Excel代码收集