突然想练练大模拟,就写了一个贪吃蛇,个人感觉比其他的版本要好许多……

Luogu剪切板

//本程序属个人劳动成果,如有雷同,纯属巧合(全是手打的,思路也是自己的)
#include<bits/stdc++.h>
#include<windows.h>
#include <conio.h>
#define rep(i,l,r) for(int i=l;i<=r;i++)
#define lep(i,l,r) for(int i=l;i>=r;i--)
using namespace std;
inline void gotoxy(int x,int y){HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);COORD pos;pos.X=x;pos.Y=y;SetConsoleCursorPosition(handle,pos);return;
}
int mp[1000][1000],len=3,now_len;
vector<int> x,y;
int way,nowx,nowy;
int xinx,xiny;
int head;
bool now_has;
char opt;
int fx[5]= {0,1,-1,0,0},fy[5]= {0,0,0,-1,1};
void color(int a) {//颜色函数SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
}
bool check_canmove() {//判断是否有路可走rep(i,1,4) {if(mp[nowx+fx[i]][nowy+fy[i]]!=1)return true;}return false;
}
void make_map() { //生成地图memset(mp,0,sizeof(mp));vector<int> tmpx,tmpy;int vlen=x.size()-1;rep(i,head,vlen){tmpx.push_back(x[i]);tmpy.push_back(y[i]);}x.clear(),y.clear();x=tmpx,y=tmpy;mp[xinx][xiny]=2;vlen=x.size()-1;mp[x[0]][y[0]]=8;rep(i,1,vlen-1) {int how;bool l,r,h,u;l=h=r=u=0;if(y[i]<y[i-1])l=1;else if(y[i]>y[i-1])r=1;else if(x[i]>x[i-1])h=1;else u=1;if(y[i]<y[i+1])l=1;else if(y[i]>y[i+1])r=1;else if(x[i]>x[i+1])h=1;else u=1;if(h&&l)how=5;else if(l&&u)how=6;else if(h&&u)how=4;else if(h&&r)how=9;else if(u&&r)how=3;else if(l&&r)how=7;mp[x[i]][y[i]]=how;}mp[x[vlen]][y[vlen]]=1;head=0;
}
//1:Θ
//3:╗
//4:║
//5:╚
//6:╔
//7;═
//9:╝
//8:@
void print_map() {//输出地图gotoxy(0,0);cout<<"by lize yyd 2021.9.2 8:06~9.37\n";cout<<"wsad:上下左右\n";color(648);cout<<"———————————————————————————\n";rep(i,1,15) {color(648);cout<<"—";color(7);rep(j,1,25) {if(mp[i][j]==0)color(51),cout<<"■";color(63);if(mp[i][j]==1)cout<<"Θ";else if(mp[i][j]>2){if(mp[i][j]==3)cout<<"╗ ";else if(mp[i][j]==4)cout<<"║ ";else if(mp[i][j]==5)cout<<"╚ ";else if(mp[i][j]==6)cout<<"╔ ";else if(mp[i][j]==7)cout<<"═ ";else if(mp[i][j]==8)cout<<"·";else cout<<"╝ ";}color(54);if(mp[i][j]==2)cout<<"★";color(7);}color(648);cout<<"—\n";}color(648);cout<<"———————————————————————————\n";color(7);cout<<"现在长度:" <<now_len<<endl<<"最长长度:"<<len<<endl<<"吃掉星星:"<<len-3<<endl;
}
void print_gameover() {//游戏结束system("cls");color(4);printf("   _____          __  __ ______     ______      ________ _____  \n""  / ____|   /\\   |  \\/  |  ____|   / __ \\ \\    / /  ____|  __ \\\n"" | |  __   /  \\  | \\  / | |__     | |  | \\ \\  / /| |__  | |__) |\n"" | | |_ | / /\\ \\ | |\\/| |  __|    | |  | |\\ \\/ / |  __| |  _  / \n"" | |__| |/ ____ \\| |  | | |____   | |__| | \\  /  | |____| | \\ \\ \n""  \\_____/_/    \\_\\_|  |_|______|   \\____/   \\/   |______|_|  \\_\\\n");color(7);exit(0);
}
void print_win() {//你赢了system("cls");color(10);printf(" __     ______  _    _   __          _______ _   _\n"" \\ \\   / / __ \\| |  | |  \\ \\        / /_   _| \\ | |\n""  \\ \\_/ / |  | | |  | |   \\ \\  /\\  / /  | | |  \\| |\n""   \\   /| |  | | |  | |    \\ \\/  \\/ /   | | | . ` |\n""    | | | |__| | |__| |     \\  /\\  /   _| |_| |\\  |\n""    |_|  \\____/ \\____/       \\/  \\/   |_____|_| \\_|\n");color(7);exit(0);
}
int main() {
//  system("stty -icanon");way=rand()%4+1;srand(time(NULL));nowx=rand()%10+5,nowy=rand()%10+10;x.push_back(nowx),y.push_back(nowy),now_len=1;while(check_canmove()) {srand(time(NULL));if(!now_has) {do {xinx=rand()%15+1,xiny=rand()%25+1;} while(mp[xinx][xiny]==1||mp[xinx][xiny]>2);mp[xinx][xiny]=2;now_has=true;}if(kbhit()){opt=_getch();}if(opt=='w')way=2;if(opt=='s')way=1;if(opt=='d')way=4;if(opt=='a')way=3;nowx+=fx[way],nowy+=fy[way];if(mp[nowx][nowy]==2)len++,now_has=false;x.push_back(nowx),y.push_back(nowy);if(now_len>=len)head++;else now_len++;if(((nowx!=x[head-1]||nowy!=y[head-1])&&(mp[nowx][nowy]==1||mp[nowx][nowy]>2))||nowx==0||nowy==0||nowx==16||nowy==26)print_gameover();make_map();print_map();Sleep(100);//可以自己调时间,单位msif(len==15*25)print_win();}return 0;
}

贪吃蛇炒鸡优化版(原创)相关推荐

  1. Java贪吃蛇360旋转,贪吃蛇大作战360版

    贪吃蛇大作战360客户端带你享受最轻松.最愉悦的休闲游戏,游戏中比拼的不仅是手速,还有技巧,更加考验你的策略!比赛刚开始时大家都是小蛇,这时候就要通过不断努力来把自己变成巨无霸,这样才能更加轻松的取得 ...

  2. 贪吃蛇大作战JavaFx版完整源码

    贪吃蛇大作战 Java版 项目源码:https://github.com/silence1772/JavaFX-GreedySnake (记得点star啊,收藏一个项目最好的方式是star而不是for ...

  3. c语言联机游戏,C/C++ 游戏 贪吃蛇双人对战版

    贪吃蛇双人对战版--C语言 最近写的,用于交最后一次结构化程序设计课的作业,闲暇之余传到网上,仅供参考,新手上路,请多指教. 话不多说,先附上下载链接.http://download.csdn.net ...

  4. 贪吃蛇大作战撞墙不死c语言,贪吃蛇大作战无敌版

    贪吃蛇大作战无敌版是款好玩的休闲类的游戏,游戏中拥有十分简单的画风,玩法十分的简单,你在游戏中简直是无敌的存在,贪吃蛇大作战无敌版撞到别人身上不会死,还可以随意翻出去,让你从此横行霸道于群蛇之间.玩法 ...

  5. 用javascript+jquery编写的小游戏-贪吃蛇(双人对战版)

    前言 这是我在多年前初学jquery, 并结合javascript, 编写的一个小游戏.那洋洋洒洒几千行的js代码时刻提醒着我"不忘初心!". 效果演示 代码 引入文件 由于用到了 ...

  6. 12行贪吃蛇html,贪吃蛇大作战无敌版

    贪吃蛇大作战无敌版下载是一款贪吃蛇类手游,在贪吃蛇大作战无敌版下载游戏中蛇分两种,蛇越多身体越笨重,但伤害也就越高,小蛇虽然伤害不高,但身体非常灵活,可以非常轻快地躲避大蛇的攻击,还等什么赶快来下载游 ...

  7. 简易贪吃蛇小游戏java版_用GUI实现java版贪吃蛇小游戏

    本文实例为大家分享了java版贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 项目结构 新建一个JFrame窗口,作为程序入口 public class GameStart{ public stat ...

  8. 贪吃蛇(C语言版)链表实现

    贪吃蛇 gitee:贪吃蛇C语言版: Snake 蛇的结构 typedef struct Snake {int x;int y;struct Snake *next; }; 游戏开始欢迎界面 //游戏 ...

  9. java贪吃蛇设计流程_JAVA版贪食蛇(贪吃蛇)游戏的设计与实现(含录像)

    JAVA版贪食蛇(贪吃蛇)游戏的设计与实现(含录像)(任务书,开题报告,外文翻译,毕业论文12000字,程序代码,MySQL数据库,答辩PPT,答辩视频录像) 摘要 "贪食蛇"游戏 ...

最新文章

  1. vanpopup 高度_解决VantUI popup 弹窗不弹出或无蒙层的问题
  2. PAT(甲级)2019年秋季考试 7-3 Postfix Expression
  3. Java不满足的依赖异常_不要依赖代码中的异常
  4. .html追加的触发js事件,JavaScript
  5. Python 内置模块之 logging
  6. 【ACL2020】Relabel the Noise: Joint Extraction of Entities and Relations via Cooperative Multiagents
  7. 2025年的呼叫中心是什么样的?
  8. vue面试有哪些插件_vue 前端框架面试问题汇总
  9. pip安装包时报错:The repository located at pypi.doubanio.com is not a trusted or secure host
  10. 更新linux gcc版本到gcc 4.4.2
  11. 数据库中左连接、右连接、内连接与外连接的区别和作用
  12. 你在被窝里刷手机岁月静好,一个名叫 Flink 的 ​“神秘引擎” 却在远方和时间赛跑...
  13. 从IP138上获取数据,查询多个IP的归宿地
  14. 数据库——SQL语言建立供应商表S,零件表P,工程表J,供应表SPJ
  15. 蓝桥杯——PCF8591
  16. 两块STM32之间 SPI DMA通信
  17. 年龄 计算 php,php简单计算年龄的方法(周岁与虚岁)
  18. 矩阵的基变换及对应基变换下向量的坐标变换
  19. 深度强化学习系列(8): Prioritized Experience Replay(PER-DQN)原理及实现
  20. 《疯狂Java讲义》读书笔记3

热门文章

  1. 虚拟机登陆界面一直转圈
  2. 人工智能-三连子游戏设计和实现
  3. Notepad++ 正则规则
  4. 研究人员是如何改善微型计算机的,北方高校微机实验室内微环境的研究及改善对策的探讨...
  5. autojs教程,启点科技自动脚本代码
  6. Python正则表达式去掉字符串下划线末尾的纯数字
  7. 计算机存储有哪些类型,存储主要分为哪些类型
  8. 有关字节型转换为浮点型
  9. Debian设置root开机不用输密码自动登录
  10. 中国激光碎石术设备市场趋势报告、技术动态创新及市场预测