九方格游戏

作者在 2008-08-25 17:53:21 发布以下内容
/*key 80 下 72 上  77 右  75  左*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int num[9];
int setp=0;
start(){
int i;
int a,b;
randomize();
for(i=0;i<8;i++) num[i]=i+1;
num[8]=0;
for(i=0;i<100;i++)
 {
 a=random(8);
 b=(a+2)%8;
 chage(a,b);
 }
game();
}
chage(int a,int b){
int temp=num[a];
num[a]=num[b];
num[b]=temp;
}
game(){
int i,j;
clrscr();
for(i=0;i<=2;i++)
 {
 gotoxy(1,i+1);
 for(j=0;j<=2;j++)
 if(0==num[j+i*3]) printf("  ");
 else printf("%d ",num[j+i*3]);
 }
gotoxy(10,2);
printf("setp: %d",setp);
setp++;
}
scass(){
int i;
int right=1;
for(i=0;i<8;i++) right=right&&(num[i]==(i+1));
return right;
}
nullnum()
{
int i;
for(i=0;i<=8;i++) if(num[i]==0) return i;
}
casekey(){
char key;
int pos;
for(;;){
 pos=nullnum();
 if(27==(key=getch())) break;
 if(80!=key && 72!=key && 77!=key && 75!=key) continue;
 switch(key){
  case 80:
   if(pos>=3)   chage(pos,pos-3);
   break;
  case 72:
   if(pos<=5)   chage(pos,pos+3);
   break;
  case 77:
   if(pos%3!=0) chage(pos,pos-1);
   break;
  case 75:
   if(pos%3!=2) chage(pos,pos+1);
   break;
  }
 game();
 if(scass()) {gotoxy(1,5);printf("YOU WIN...\ncontinue?");
      if(getch()==27) break;
      setp=0;start();casekey();
      }
 }
}
main(){
start();
casekey();
}
默认分类 | 阅读 8919 次
文章评论,共0条
游客请输入验证码
浏览35613次
文章分类