游戏设计--骑士游戏设计游戏设计--骑士游戏设计
/******************************qishi *****************************/#include
#include
struct memory
{int sence[8][8] ;
int board[8][8] ;
int mem[8] ;
int last ;
} mem[64] ;
int h[8]={2,1,-1,-2,-2,-1,1,2} ; int v[8]={-1,-2,-2,-1,1,2,2,1} ; int...
游戏
--骑士游戏设计
/******************************qishi *****************************/#include
#include
struct memory
{int sence[8][8] ;
int board[8][8] ;
int mem[8] ;
int last ;
} mem[64] ;
int h[8]={2,1,-1,-2,-2,-1,1,2} ; int v[8]={-1,-2,-2,-1,1,2,2,1} ; int board[8][8]={0} ;
int sence[8][8]={{2,3,4,4,4,4,3,2},
{3,4,6,6,6,6,4,3},
{4,6,8,8,8,8,6,4},
{4,6,8,8,8,8,6,4},
{4,6,8,8,8,8,6,4},
{4,6,8,8,8,8,6,4},
{3,4,6,6,6,6,4,3},
{2,3,4,4,4,4,3,2}} ;
int row, col,hty=0 ;
int comeon(void) ;
void goback(void) ;
int findmin(int[]) ;
void savemem(int) ;
void altsence(void) ;
void print() ;
void printmem(int) ;
/* PREPARE */
void prepare(void)
{int i, j, ha[8],va[8] ;
for(i=0; i<64; i++)
{ mem[i].last=-1 ;
for(j=0; j<8; j++)
mem[i].mem[j]=0 ;
}
printf("Input Begin Point :\n") ;
scanf("%d%d",row,col) ;
board[row][col]=1 ;
for(i=0; i<8; i++)
{ha[i]=row + h[i] ;
va[i]=col + v[i] ;
if( ha[i]>=0 && ha[i]<=7 && va[i]>=0 && va[i]<=7 )
sence[ha[i>[va[i>-- ;
}
savemem(0) ;
/*print(hty) ; */
hty++ ;
}
/* COMEON!! */
int comeon(void)
{int i, ha[8], va[8], b[8]={9,9,9,9,9,9,9,9}, info=0 ;
for(i=0; i<8; i++)
{ ha[i]=row+h[i] ;
va[i]=col+v[i] ;
if( ha[i]>=0 && ha[i]<=7 && va[i]>=0 && va[i]<=7 )
if( board[ha[i>[va[i>==0 && mem[hty].mem[i]!=1 )
b[i]=sence[ha[i>[va[i> ;
}
i=findmin(b) ;
if( b[i]!=9 ) ;
{row=ha[i] ;
col=va[i] ;
board[ha[i>[va[i>=1 ;
altsence() ;
savemem(i) ;
/*printmem(hty) ; */
hty++ ;
info=1 ;
}
return (info) ;
}
/* GOBACK~~ */
void goback(void)
{int i,j ;
hty--;
board[row][col]=0 ;
row = row - h[mem[hty].last] ;
col = col - v[mem[hty].last] ;
mem[hty].mem[mem[hty+1].last] = 1 ;
for(i=0; i<8; i++)
for(j=0; j<8; j++)
sence[i][j]=mem[hty].sence[i][j] ;
}
/* PRINT */
void print(void)
{int i;
for(i=0; i<64; i++)
{clrscr();
printmem(i) ;
getchar() ;
}
}
/* PRINTMEM */
void printmem(int ht) {int i, j;
printf("No.%d Step;\n",ht) ;
for(i=0; i<8; i++)
{for(j=0; j<8; j++)
if( mem[ht].board[i][j]==0)
printf("O ") ;
else
printf("H ") ;
printf("\n") ;
}
}
/* ALTSENCE */
void altsence(void)
{int i, ha[8], va[8] ;
for(i=0; i<8; i++)
{ha[i]=row + h[i] ;
va[i]=col + v[i] ;
if( ha[i]>=0 && ha[i]<=7 && va[i]>=0 && va[i]<=7 )
sence[ha[i>[va[i>-- ;
}
}
/* SAVEMEM */
void savemem(int lt) {int i,j ;
mem[hty].last=lt ;
for(i=0; i<8; i++)
for(j=0; j<8; j++)
{mem[hty].sence[i][j] = sence[i][j] ;
mem[hty].board[i][j] = board[i][j] ;
}
}
/* FINDMIN */
int findmin(int c[8]) {int i,j=0 ;
for(i=0; i<8; i++)
if( c[i] < c[j] )
j=i ;
return (j) ;
}
/* MAIN */
main()
{int i;
prepare() ;
i=comeon();
while( hty<64 )
{ if(i)
i=comeon() ;
else
{goback() ;
i=1;
}
}
print();
}
/*************************** 8 queen *********************************/#include
int col[8] , temp=0 ;
void qu(int n)
{
int pan(int) ;
void pri(void) ;
int t;
if(n==0)
t=4 ;
else
t=8 ;
for(col[n]=0; col[n]
本文档为【游戏设计--骑士游戏设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。