当前位置: 代码迷 >> C语言 >> 大家好 能帮帮小妹吗
  详细解决方案

大家好 能帮帮小妹吗

热度:182   发布时间:2006-02-28 20:30:00.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  

----------------解决方案--------------------------------------------------------

晕,我们都学习c一年了,我都还不知道咋编游戏!!!哎!!!


----------------解决方案--------------------------------------------------------
怀疑XB,发了一帖
----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------
支持2楼
----------------解决方案--------------------------------------------------------
你这样写程序不好,要加注释大家才好看

别介意我这样说话啊:)
----------------解决方案--------------------------------------------------------
我也学了一年了,也不知道怎么编游戏,你还说是刚刚学习,刺激我们啊。我赞同六楼的说法

----------------解决方案--------------------------------------------------------
我也没有用C作过游戏
----------------解决方案--------------------------------------------------------
我觉得自己无能

----------------解决方案--------------------------------------------------------

我想自杀


----------------解决方案--------------------------------------------------------
  相关解决方案