想编个贪吃蛇游戏,但是在编写这个游戏之前想先练练兵,所以就编了这个按键游戏,没有用多少色彩,而且很菜,都挤在一起了,请大家多多指教.
#include "conio.h" #include "stdlib.h" #include "graphics.h" main() {char a[36]; int i,j,x,key,t,score=0; int gd=DETECT,gr; initgraph(&gd,&gr,""); cleardevice(); for(i=0;i<10;i++) a[i]=48+i; for(i=10;i<36;i++) a[i]=55+i; a[i]=0; for(i=1;i<81;i++) /*游戏初始化*/ gotoxy(5,1); printf("score:"); settextstyle(1,0,8); outtextxy(100,350,"TYPE GAME"); /*初始化结束*/ sleep(2); randomize(); for(;;) { gotoxy(12,1); printf(" "); gotoxy(12,1); printf("%d",score); i=rand()%80; /*随机赋值*/ if(i==0) i=1; x=rand()%36; t=0; for(j=4;!kbhit()&&j!=18;j++) /*自动移动*/ { gotoxy(i,j); printf("%c",a[x]); gotoxy(i,j); if(score<10) /*难度设定*/ delay(10000); else if(score<20) delay(7000); else if(score<30) delay(5000); else if(score<40) delay(4000); if(score==40) /*游戏胜利*/ { clrscr(); textmode(C40); delay(100000); gotoxy(18,12); printf("YOU WIN!"); delay(100000); exit(1); } gotoxy(i,j); printf(" "); gotoxy(i,j); } /*自动移动结束一个循环*/ if(j==18) { t=1; score--; } if(t==1) continue; key=bioskey(0); if(key==0x011b) break; else if(key==0x231&&a[x]==49) /*判定按键,其实用宏定义可以节省行数*/ { score++; continue; } else if(key==0x332&&a[x]==50) { score++; continue; } else if(key==0x433&&a[x]==51) { score++; continue; } else if(key==0x534&&a[x]==52) { score++; continue; } else if(key==0x635&&a[x]==53) { score++; continue; } else if(key==0x736&&a[x]==54) { score++; continue; } else if(key==0x837&&a[x]==55) { score++; continue; } else if(key==0x938&&a[x]==56) { score++; continue; } else if(key==0x939&&a[x]==57) { score++; continue; } else if(key==0xb30&&a[x]==48) { score++; continue; } else if(key==0x1e61&&a[x]==65) { score++; continue; } else if(key==0x3062&&a[x]==66) { score++; continue; } else if(key==0x2e63&&a[x]==67) { score++; continue; } else if(key==0x2064&&a[x]==68) { score++; continue; } else if(key==0x1265&&a[x]==69) { score++; continue; } else if(key==0x2166&&a[x]==70) { score++; continue; } else if(key==0x2267&&a[x]==71) { score++; continue; } else if(key==0x2368&&a[x]==72) { score++; continue; } else if(key==0x1769&&a[x]==73) { score++; continue; } else if(key==0x246a&&a[x]==74) { score++; continue; } else if(key==0x256b&&a[x]==75) { score++; continue; } else if(key==0x266c&&a[x]==76) { score++; continue; } else if(key==0x326d&&a[x]==77) { score++; continue; } else if(key==0x316e&&a[x]==78) { score++; continue; } else if(key==0x186f&&a[x]==79) { score++; continue; } else if(key==0x1970&&a[x]==80) { score++; continue; } else if(key==0x1071&&a[x]==81) { score++; continue; } else if(key==0x1372&&a[x]==82) { score++; continue; } else if(key==0x1f73&&a[x]==83) { score++; continue; } else if(key==0x1474&&a[x]==84) { score++; continue; } else if(key==0x1675&&a[x]==85) { score++; continue; } else if(key==0x2f76&&a[x]==86) { score++; continue; } else if(key==0x1177&&a[x]==87) { score++; continue; } else if(key==0x2d78&&a[x]==88) { score++; continue; } else if(key==0x1579&&a[x]==89) { score++; continue; } else if(key==0x2c7a&&a[x]==90) { score++; continue; } else { score--; continue; } } cleardevice(); outtextxy(100,200,"GAME OVER"); /*假如异常退出表示失败*/ getch(); closegraph(); }
|