为什么我用c语言编写的贪吃蛇游戏运行时会闪退呢

xgsdatmlkp 2014-09-12 09:05:34
求大神告知哪里出了问题。。。。
...全文
260 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-09-15
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。
xgsdatmlkp 2014-09-13
  • 打赏
  • 举报
回复
#include<stdio.h> #include<time.h> #include<conio.h> #include<stdlib.h> int head=3 ,tail=0; int main() { int i,j,k=0; int zuobiao[2][80]; long start; int direction=77; int gamespeed; int timeover; int change(char qipan[20][80],int zuobiao[2][80],char direction); zuobiao[0][tail]=1; zuobiao[1][tail]=1; zuobiao[0][1]=1; zuobiao[1][1]=2; zuobiao[0][2]=3; zuobiao[0][2]=1; zuobiao[1][head]=1; zuobiao[1][head]=4; char qipan[20][80];//定义棋盘 for(i=0;i<20;i++) for(j=0;j<80;j++) qipan[i][j]=' ';//初始化棋盘 for(i=0;i<80;i++) qipan[0][i]='_'; for(i=0;i<20;i++) qipan[i][0]='|'; for(i=0;i<20;i++) qipan[i][79]='|'; for(i=0;i<80;i++) qipan[19][i]='_'; qipan[1][1]=qipan[1][2]=qipan[1][3]='*';//初始化蛇的位置 qipan[1][4]='#'; printf("This is a game of a SN AKE.\nGOOD LUCK TO YOU !\n"); printf("Input your game speed,please.(e.g.300)\n"); scanf("%d",&gamespeed); while(direction!='q') { system("cls"); for(i=0;i<20;i++)//打印出棋盘 for(j=0;j<80;j++) printf("%c",qipan[i][j]); timeover=1; start=clock(); while(!kbhit()&&(timeover=clock()-start<=gamespeed)); if(timeover) { getch(); direction=getch(); } else direction=direction; if(!(direction==72||direction==80||direction==75||direction==77)) { return 0; system("cls"); printf("GAME OVER!\n"); } if(!change(qipan,zuobiao,direction)) { direction='q'; system("cls"); printf("GAME OVER!\n"); } } return 0; } int change(char qipan[20][80],int zuobiao[2][80],char direction) { int x,y; if(direction==72) x=zuobiao[0][head]-1;y=zuobiao[1][head]; if(direction==80) x=zuobiao[0][head]+1;y=zuobiao[1][head]; if(direction==75) x=zuobiao[0][head];y=zuobiao[0][head]-1; if(direction==77) x=zuobiao[0][head];y=zuobiao[1][head]+1; if(x==0||x==18||y==78||y==0) return 0; if(qipan[x][y]!=' ') return 0; qipan[zuobiao[0][tail]][zuobiao[1][tail]]=' '; tail=(tail+1)%80; qipan[zuobiao[0][head]][zuobiao[1][head]]='*'; head=(head+1)%80; zuobiao[0][head]=x; zuobiao[1][head]=y; qipan[zuobiao[0][head]][zuobiao[1][head]]='#'; return 1; } 这是代码,求大牛
707wk 2014-09-12
  • 打赏
  • 举报
回复
你当我们是神啊,代码都没有就问问题
小白yige 2014-09-12
  • 打赏
  • 举报
回复
没有程序,谁知道呢。你只能自己调试,一步步,采用注释的办法,比如先注释掉后一半如果还是闪退,问题就在前一半,否则就在后一半找。这样逐渐缩小。闪退原因很多,比如该等待的时候没有等待某个条件完成,初始的时候和结束的时候弄成一样的了不好说

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧