标题:大家好 能帮帮小妹吗
取消只看楼主
宝宝哭了
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-2-28
 问题点数:0 回复次数:0 
大家好 能帮帮小妹吗

   小妹刚学c语言,这些天编一个蛇吃蛋的游戏但是编好后蛇对键盘的反应不是很灵敏,而且吃了几个蛋后就死了.
 我不知道是什么原因,请好心人帮帮小妹,小妹不胜感激了.
 #include <math.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <graphics.h>

void main(void)
{int gdriver , gmode ,A[20][2],B[20][20],q,j,k,front=0,rear_1=9,rear_2=8 ,x,y,a,b=0;
char i; gdriver=DETECT ;

for(j=0;j<=19;j++){for(k=0;k<=19;k++) B[j][k]=0;}
initgraph(&gdriver, &gmode, "");setcolor(YELLOW);
rectangle(0,0,200,200);
setwritemode(XOR_PUT);setcolor(RED);randomize();
j=rand()%20; k=rand()%19+1;
B[j][k]=2;rectangle(10*j,10*k,10*j+10,10*k+10);
for(q=1;q<=10;q++){
rectangle(q*10-10,0,q*10,10);A[q-1][0]=q*10-5;A[q-1][1]=5;B[q-1][0]=1;}
delay(100000);

while(1){
while(!kbhit()){
if(A[rear_1][0]==A[rear_2][0]){
if(A[rear_1][1]-10==A[rear_2][1]||A[rear_1][1]+20<A[rear_2][1])
y=A[rear_1][1]+10;
if(A[rear_1][1]+10==A[rear_2][1]||A[rear_1][1]-20>A[rear_2][1])
y=A[rear_1][1]-10;
x=A[rear_1][0];
if(y>200||y<0) y=abs(abs(y)-200);}
if(A[rear_1][1]==A[rear_2][1]){
if(A[rear_1][0]-10==A[rear_2][0]||A[rear_1][0]+20<A[rear_2][0])
x=A[rear_1][0]+10;
if(A[rear_1][0]+10==A[rear_2][0]||A[rear_1][0]-20>A[rear_2][0])
x=A[rear_1][0]-10;
y=A[rear_1][1];
if(x>200||x<0) x=abs(abs(x)-200);}
if(B[(x-5)/10][(y-5)/10]==0 )
{ B[(x-5)/10][(y-5)/10]=1;
B[(front-5)/10][(front-5)/10]=0 ;
rear_2=rear_1;rear_1=(rear_1+1)%20;
A[rear_1][0]=x;A[rear_1][1]=y;rectangle(x-5,y-5,x+5,y+5);
rectangle(A[front][0]-5,A[front][1]-5,A[front][0]+5,A[front][1]+5);
delay(100000);
front=(front+1)%20;}
if(B[(x-5)/10][(y-5)/10]==2 )
{ B[(x-5)/10][(y-5)/10]=1 ;
rear_2=rear_1;rear_1=(rear_1+1)%20;
A[rear_1][0]=x;A[rear_1][1]=y;delay(100000);
do{j=rand()%20;k=rand()%20;}while(B[j][k]!=0);
B[j][k]=2; rectangle(10*j,10*k,10*j+10,10*k+10);}
}

i=getch();b=0;
if((i=='w'||i=='s')&&(A[rear_1][1]==A[rear_2][1])){x=A[rear_1][0];
if(i=='w') y=A[rear_1][1]-10;
if(i=='s') y=A[rear_1][1]+10;
if(y>200||y<0)y=abs(abs(y)-200);}

if((i=='w'||i=='s')&&(A[rear_1][0]==A[rear_2][0])){
if((A[rear_1][1]-10==A[rear_2][1]||A[rear_1][1]+20<A[rear_2][1])&&i=='s')
{b=1 ;y=A[rear_1][1]+10; }
if((A[rear_1][1]-10==A[rear_2][1]||A[rear_1][1]+20<A[rear_2][1])&&i=='w')
{b=0;y=A[rear_1][1]+10;}
if((A[rear_1][1]+10==A[rear_2][1]||A[rear_1][1]-20>A[rear_2][1])&&i=='w')
{b=1; y=A[rear_1][1]-10;}
if((A[rear_1][1]+10==A[rear_2][1]||A[rear_1][1]-20>A[rear_2][1])&&i=='s')
{b=0;y=A[rear_1][1]-10;}
x=A[rear_1][0];
if(y>200||y<0) y=abs(abs(y)-200);}

if((i=='a'||i=='d')&&(A[rear_1][0]==A[rear_2][0])){y=A[rear_1][1];
if(i=='a')x=A[rear_1][0]-10;
if(i=='d') x=A[rear_1][0]+10;
if(x>200||x<0)x=abs(abs(x)-200);}

if((i=='a'||i=='d')&&(A[rear_1][1]==A[rear_2][1])){
if((A[rear_1][0]-10==A[rear_2][0]||A[rear_1][0]+20<A[rear_2][0])&&i=='d')
{ b=1;x=A[rear_1][0]+10;}
if((A[rear_1][0]-10==A[rear_2][0]||A[rear_1][0]+20<A[rear_2][0])&&i=='a')
{ b=0;x=A[rear_1][0]+10;}
if((A[rear_1][0]+10==A[rear_2][0]||A[rear_1][0]-20>A[rear_2][0])&&i=='a')
{b=1; x=A[rear_1][0]-10;}
if((A[rear_1][0]+10==A[rear_2][0]||A[rear_1][0]-20>A[rear_2][0])&&i=='d')
{ b=0 ; x=A[rear_1][0]-10;}
y=A[rear_1][1];
if(x>200||x<0) x=abs(abs(x)-200);}

if(B[(x-5)/10][(y-5)/10]==0 )
{ B[(x-5)/10][(y-5)/10]=1;
B[(front-5)/10][(front-5)/10]=0 ;
rear_2=rear_1;rear_1=(rear_1+1)%20;
A[rear_1][0]=x;A[rear_1][1]=y;rectangle(x-5,y-5,x+5,y+5);
rectangle(A[front][0]-5,A[front][1]-5,A[front][0]+5,A[front][1]+5);
delay(100000);
front=(front+1)%20;}
if(B[(x-5)/10][(y-5)/10]==2 )
{ B[(x-5)/10][(y-5)/10]=1 ;
rear_2=rear_1;rear_1=(rear_1+1)%20;
A[rear_1][0]=x;A[rear_1][1]=y;delay(100000);
do{j=rand()%20;k=rand()%20;}while(B[j][k]!=0);
B[j][k]=2;rectangle(10*j,10*k,10*j+10,10*k+10);}
if(b==1)delay(10000);else delay(100000);b=0;
}}

搜索更多相关主题的帖子: void 不胜感激 include 
2006-02-28 20:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-47702-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044987 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved