求zu
雕公 2012-03-13 10:26:40 #include <base.h>
int init(void)
{
int a,d,g,j,w;a=0;d=160;g=5;for(j=1;j>0;j++){w=j+j;dline(w,d,g+w,d,111,11,1);dline(g+w,d-g,g+g+w,d,1,11,111);dline(g+w,d+g,g+g+w,d,1,11,111);if((g+g+w)>239){j=1;a++;if(a>4){exit();};};
ref(0,155,240,165);
cls(11,111,1);}
return 0;
}
int event(int type, int p1, int p2)
{
if(KY_DOWN == type)
{
switch(p1)
{
case _SRIGHT:
exit();
break;
case _1:
break;
}
}
return 0;
}
int pause(void)
{
return 0;
}
int resume(void)
{
return 0;
}
int exitapp(void) {
exit();
return 0;
}
这个程序怎么能在他话箭头是,也就是在for循环是响应键盘事件以随时退出啊?我都只能if(a>4){exit();};};让它到了几次后退出,还有类是的:这个是会来回的箭头,也是不知道怎么退出,只好在循环里计数,到if(o>6){exit();};是退出,钥匙能随时按键就退出就好了。
#include <base.h>
int j;int o;
void y(void){while(++j){dline(j*5,160,j*5+10,160,1,11,111);dline(j*5+5,155,j*5+10,160,1,11,111);dline(j*5+5,165,j*5+10,160,1,11,111);ref(0,0,240,320);cls(255,255,255);char tt[30];sprintf(tt,"j=%d,o=%d,?=%d",j,o,getmemremain());dtext(tt,80,80,22,88,176,0,1);if(j>22&&j<24){o++;};if(o>6){exit();};if(j*5+10>240){z();};;};}
void z(void){while((1)){dline(j*5+10,160,j*5-4,160,1,11,111);dline(j*5+5,165,j*5-4,160,1,11,111);dline(j*5+5,155,j*5-4,160,1,11,111);char tt[30];sprintf(tt,"j=%d,o=%d,o=7时将退出!",j,o);dtext(tt,40,80,22,88,176,0,2);ref(0,0,240,320);cls(255,255,255);j--;if(j>20&&j<22){o++;};if(j<1){shake(1);y();};}}
int init(void)
{j=0;o=0;
y();/*if(o>4){break;};*/
return 0;
}
int event(int type, int p1, int p2)
{
if(KY_DOWN == type)
{
switch(p1)
{
case _SRIGHT:
exit();
break;
case _1:
break;
}
}
return 0;
}
int pause(void)
{
return 0;
}
int resume(void)
{
return 0;
}
int exitapp(void) {
exit();
return 0;
}
最后是一个生命游戏,我的手机用这个10乘10的不会死机,30的都会四,同样是在循环里记数才可以推出,求高手交怎么响应能够键盘,不等循环完就break;
#include <base.h>
int init(void)
{int a[10][10],d[10][10],j,m,p,g;
cls(10,20,30);
for(j=0;j<9;j++){for(m=0;m<9;m++){a[j][m]=1;
dpointex(m+70,j+120,255,255,255);ref(30,30,100,100); }}
for(p=1;p<10;p++){
for(j=1;j<9;j++){
for(m=1;m<9;m++){
g=a[j-1][m-1]+a[j-1][m]+a[j-1][m+1]+a[j][m-1]+a[j][m+1]+a[j+1][m-1]+a[j+1][m]+a[j+1][m+1];
switch(g){
case 3:a[j][m]=1;d[j][m]=a[j][m];dpointex(70+m,120+j,255,255,255);
case 2:d[j][m]=a[j][m];break;
default:a[j][m]=0;d[j][m]=a[j][m];dpointex(m+70,j+120,0,0,0);}
ref(30,30,100,100);}}}
return 0;
}
int event(int type, int p1, int p2)
{
if(KY_DOWN == type)
{
switch(p1)
{
case _SRIGHT:
exit();
break;
case _1:
exit();
break;
}
}
return 0;
}
int pause(void)
{
return 0;
}
int resume(void)
{
return 0;
}
int exitapp(void) {
exit();
return 0;
}
有空的看看,帮忙接下,谢了。