该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include

#include

#include

#include

#include

#include

using namespace std;

#define HEAD 'H'

#define BODY 'X'

#define WALL '*'

#define money 'S'

#define N 50

#define n 20

void output();

void snakemove(int a,int b);

void putmoney();

#define MAX 20

int snakex[MAX] = {1,1,1,1,1};

int snakey[MAX] = {1,2,3,4,5};

char snakemap[n][N] =

{"********************************************",

"*XXXXH *",

"* *",

"* *",

"* *",

"* *",

"* *",

"* *",

"* *",

"* *",

"* *",

"* *",

"* *",

"* *",

"* *",

"* *",

"* *",

"* *",

"* *",

"********************************************"

};

int length = 5;

int alive = 1;

char direction = 'D';

int main()

{

char ch;

system("color 00");

system("color A4");

putmoney();

output();

while(alive)

{

if(kbhit())

{

ch = getch();

switch(ch)

{

case 'A':

case 'a':if(direction == 'd')break;direction = tolower(ch);snakemove(0,-1);break;

case 'D':

case 'd':if(direction == 'a')break;direction = tolower(ch);snakemove(0,1);break;

case 'S':

case 's':if(direction == 'w')break;direction = tolower(ch);snakemove(1,0);break;

case 'W':

case 'w':if(direction == 's')break;direction = tolower(ch);snakemove(-1,0);break;

}

Sleep(50);

output();

}

else

{

switch(direction)

{

case 'a':snakemove(0,-1);break;

case 'd':snakemove(0,1);break;

case 's':snakemove(1,0);break;

case 'w':snakemove(-1,0);break;

}Sleep(50);

output();

}

}

system("cls");

cout<

return 0;

}

void snakemove(int a,int b)

{

int x,y;

x = snakex[length-1] + a;

y = snakey[length-1] + b;

if(snakemap[x][y] == HEAD || snakemap[x][y] == BODY || snakemap[x][y] == WALL)

alive = 0;

else if(snakemap[x][y] == money && length < 20)

{

length++;

putmoney();

snakex[length-1] = x;

snakey[length-1] = y;

snakemap[snakex[length-1]][snakey[length-1]] = HEAD;

snakemap[snakex[length-2]][snakey[length-2]] = BODY;

}

else

{

int i;

int x1,y1;

x1 = snakex[0];

y1 = snakey[0];

for(i = 0;i

{

snakex[i] = snakex[i+1];

snakey[i] = snakey[i+1];

}

snakemap[x1][y1] = ' ';

snakex[length-1] = x;

snakey[length-1] = y;

snakemap[snakex[length-1]][snakey[length-1]] = HEAD;

snakemap[snakex[length-2]][snakey[length-2]] = BODY;

}

}

void output()

{

system("cls");

int i,j;

cout<

for(i = 0;i

{

for(j = 0;j

cout<

cout<

}system("color 00");

system("color A4");

}

void putmoney()

{

srand(time(0));

int x = 0,y = 0;

do

{

x = rand() % 15 + 1;

y = rand() % 40 + 1;

}while(snakemap[x][y] == WALL && snakemap[x][y] == BODY && snakemap[x][y] ==HEAD);

snakemap[x][y] = money;

}

代码如上,怎么样才能实现不闪屏,听说要用什么双缓冲技术,求会的大神帮我修改下代码让它不闪屏!!!小弟感激不尽!!!!!

为什么c语言编译器闪屏,C语言贪吃蛇闪屏问题,求大神!!!相关推荐

  1. 怎么用c语言表示大整数的四则运算,用c语言编写大整数的四则运算,求大神

    用c语言编写大整数的四则运算,求大神 答案:3  信息版本:手机版 解决时间 2019-10-03 17:13 已解决 2019-10-03 01:32 用c语言编写大整数的四则运算,求大神 最佳答案 ...

  2. 请输入30名同学的c语言成绩,求大神帮忙做这几道结构体的c语言!今天就要交实验报告!急啊急!!!!! (1)一个班级共有30名学...

    问题描述: 求大神帮忙做这几道结构体的c语言!今天就要交实验报告!急啊急!!!!! (1)一个班级共有30名学 求大神帮忙做这几道结构体的c语言!今天就要交实验报告!急啊急!!!!! (1)一个班级共 ...

  3. c语言中len的作用,C语言 int len( )  求大神解释

    C语言 int len( ) 求大神解释 sen3830058 LV12 2013-03-13 #include int len(char s[]){ int n=0; while(s[n]!='\0 ...

  4. 赫夫曼编码c语言 排序部分,c语言构造哈夫曼树输出哈夫曼编码出错 ,跪求大神帮我找错...

    c语言构造哈夫曼树输出哈夫曼编码出错 ,跪求大神帮我找错0 youxun0952016.09.07浏览120次分享举报 #include #include #include typedef struc ...

  5. python12345输出54321_C语言编写程序 :输入一个正整数,将其逆序输出。例如,输入12345,输出54321. 跪求大神用循环语句...

    点击查看C语言编写程序 :输入一个正整数,将其逆序输出.例如,输入12345,输出54321. 跪求大神用循环语句具体信息 答:#include int main() { int num; scanf ...

  6. c语言用结构体交换名字,结构体赋值给另一个 结构体 如何定义 求大神了

    定义了一个 输入学生信息的 结构体 通过比较 总成绩  排名   各个信息都要交换信息,我想定义另一个结构体 盛放它  完成交换 #include struct Student//定义储存学生信息的结 ...

  7. c语言中已知x=7,y=3,计算表达式x%=y+3的值,已知:a=7,x=2.5,y=4.7,计算算术表示式x+a%3*(int)(x+y)%2/4的值。试程式设计上机验证。求大神帮助...

    已知:a=7,x=2.5,y=4.7,计算算术表示式x+a%3*(int)(x+y)%2/4的值.试程式设计上机验证.求大神帮助以下文字资料是由(历史新知网www.lishixinzhi.com)小编 ...

  8. ubuntu14.04扩展屏幕后,打开matlab就死机。求大神帮忙解决!!!万分感谢

    ubuntu14.04扩展屏幕后,打开matlab就死机.求大神帮忙解决!!!万分感谢

  9. Android App后台、锁屏运行,百度定位不实时定位。未解问题,求大神指教?

    细节描述: 功能需要实现:App 一直给后台上传经纬度.(正常运行,后台运行,锁屏运行) 问题描述:红米Note 5A. 在A点,App 锁屏,走到B 点,然而在A---B之间一直上传的是A点锁屏前的 ...

  10. android重签名闪退,360加固保加固完之后重新签名的包运行闪退,求大神帮忙解答...

    加固完之后重新签名的包运行闪退,求大神帮忙解答 错误提示: 07-08 15:51:23.769: E/AndroidRuntime(15012): FATAL EXCEPTION: main 07- ...

最新文章

  1. linuxsvn源代码版本库建立
  2. Hi3516A开发--安装交叉编译器
  3. AtCoder AGC031E Snuke the Phantom Thief (费用流)
  4. 智慧交通day04-特定目标车辆追踪02:Siamese网络+单样本学习
  5. 软考网络管理员学习笔记2之第二章数据通信基础
  6. 【现场福利+直播通道】2020数据技术嘉年华正式“菜单”出炉,饕餮盛宴等你共享!...
  7. VMware-workstation安装手册
  8. 阿里云GIS曾志明:空间数据中台是什么,怎么用
  9. 原生JS路由实现页面跳转
  10. 三相桥式全控整流电路simulink仿真_维修电工实训仿真软件-电工入门与提高
  11. 游戏测试----------------第4章
  12. mysql导入文本或excel文件
  13. busboy文件上传遇到的坑,已解决
  14. 关于淘宝和12306的分析
  15. 关于严蔚敏老师《数据结构(C语言版)》书中代码的误解
  16. 数字翻译器,Java
  17. 玩转Kubernetes—尝试以不同方式初始化集群
  18. 宠物诊所java项目_任务一宠物诊所项目概述.PDF
  19. SLAM算法资料收集
  20. 使用Youtube官方API订阅功能的实现

热门文章

  1. 微信支付HTTPS服务器证书验证(PHP)
  2. Nibiru Open Day,OZO 遇见 DigiArtist 国际数字艺术展
  3. Swift 中的 @autoclosure
  4. JavaScript 全选函数的实现
  5. 使用spring aop实现业务层mysql 读写分离
  6. magento 多语言 ,后台手工更改方法
  7. Maze Problem(求最短距离)BFS
  8. linux DNS配置详解
  9. 彻底搞懂Nginx的五大应用场景
  10. 难搞的偏向锁终于要被Java移除了