當前位置:首頁 » 操作系統 » 象棋的源碼

象棋的源碼

發布時間: 2022-11-18 02:53:07

1. 中國象棋 VB 源代碼

給你幾個下源碼的網站吧!!!
代碼中國:
洪越源代碼!:
源代之家:
源碼天下:
源碼網 - 源碼發布與下載:
中國源碼中心:
中國站長下載源碼下載,:

2. 求一個C#的中國象棋源碼

可有AI的演算法
我也要`~~
[email protected]


沒AI的~沒看頭

3. 求VB編寫中國象棋的源代碼。急求。必有重謝

貼保存棋局和讀取棋局部分的,你先看看:
Rem 讀取棋局
Private Sub mnuRead_Click()
Dim s As String, i As Integer, t
If Dir(App.Path & "\cchess.che") = "" Then MsgBox "沒有棋局文件可以讀入!請先保存棋局!", , "中國象棋": Exit Sub

Open App.Path & "\cchess.che" For Input As #1
Input #1, s
Close #1

s = Replace(s, vbCrLf, "")
s = Trim(s)

t = Split(s, " ")
If UBound(t) <> 89 Then MsgBox "棋局文件已遭到破壞!請重新保存棋局!", , "中國象棋": Exit Sub

For i = 0 To 89
a(i) = Val(t(i))
Next

MsgBox "棋局文件已成功讀入!", , "中國象棋"
End Sub

Rem 保存棋局
Private Sub mnuSave_Click()
Dim s As String, i As Integer
s = ""
For i = 0 To 89
s = s & " " & a(i)
Next
s = Trim(s)
Open App.Path & "\cchess.che" For Output As #1
Print #1, s;
Close #1
MsgBox "當前棋局已成功保存!", , "中國象棋"
End Sub

4. 用C語言輸出中國象棋棋盤的源代碼!!急!急!急!

密碼:yq12

5. 在網上了一段中國象棋的java源代碼,可是總出現錯誤,錯誤是指向類,說的是找不到符號,求解

把代碼錯誤提示貼出來,還有這些大部分是找不到JAR文件導致

以免其他原因請把中文改成英文

找不到符號基本是找不到引用的類

6. 中國象棋的源代碼

中國象棋源代碼blackleft(){ int x,y,n; if(blackcurpos.y>0) { blackcurpos.y--; x=position[blacktemppos.x][blacktemppos.y].x; y=position[blacktemppos.x][blacktemppos.y].y; if(board[blacktemppos.x][blacktemppos.y]==0) drawbmp(x,y,boardfile[blacktemppos.x][blacktemppos.y]); else if(!(blacktemppos.x==blackoldpos.x&&blacktemppos.y==blackoldpos.y&&blackstate==MOVE)) { n=board[blacktemppos.x][blacktemppos.y]; drawbmp(x,y,chessfile[n]); } if(blacktemppos.x==blackoldpos.x&&blacktemppos.y==blackoldpos.y&&blackstate==MOVE) drawselecursor(blackoldpos); drawcursor(blackcurpos); blacktemppos.x=blackcurpos.x; blacktemppos.y=blackcurpos.y; }}blackright(){ int x,y,n; if(blackcurpos.y<8) { blackcurpos.y++; x=position[blacktemppos.x][blacktemppos.y].x; y=position[blacktemppos.x][blacktemppos.y].y; if(board[blacktemppos.x][blacktemppos.y]==0) drawbmp(x,y,boardfile[blacktemppos.x][blacktemppos.y]); else if(!(blacktemppos.x==blackoldpos.x&&blacktemppos.y==blackoldpos.y&&blackstate==MOVE)) { n=board[blacktemppos.x][blacktemppos.y]; drawbmp(x,y,chessfile[n]); } if(blacktemppos.x==blackoldpos.x&&blacktemppos.y==blackoldpos.y&&blackstate==MOVE) drawselecursor(blackoldpos); drawcursor(blackcurpos); blacktemppos.x=blackcurpos.x; blacktemppos.y=blackcurpos.y; }}blackdo(){ int i,j,x,y,n; if(blackstate==SELECT&&blackcanselect()) { if(board[blackcurpos.x][blackcurpos.y]<=BLACK&&board[blackcurpos.x][blackcurpos.y]>0) { blackstate=MOVE; drawselecursor(blackcurpos); blackoldpos.x=blackcurpos.x; blackoldpos.y=blackcurpos.y; } } else if(blackstate==MOVE&&blackcanmove()) { x=position[blackoldpos.x][blackoldpos.y].x; y=position[blackoldpos.x][blackoldpos.y].y; drawbmp(x,y,boardfile[blackoldpos.x][blackoldpos.y]); x=position[blackcurpos.x][blackcurpos.y].x; y=position[blackcurpos.x][blackcurpos.y].y; n=board[blackoldpos.x][blackoldpos.y]; drawbmp(x,y,chessfile[n]); if(board[blackcurpos.x][blackcurpos.y]==RED_JIANG) { winner=BLACK; finish=1; return; } board[blackcurpos.x][blackcurpos.y]=n; board[blackoldpos.x][blackoldpos.y]=0; for(i=0;i<=2;i++) for(j=3;j<=5;j++) if(board[i][j]==BLACK_JIANG) {x=i;y=j;} for(i=x+1,j=y,n=0;i<=9;i++) { if(board[i][j]==RED_JIANG&&n==0) {winner=RED;finish=1;break;} else if(board[i][j]!=0) n++; } turn=RED; redstate=SELECT; drawcursor(redcurpos); drawbmp(30,438,"bmp\\rzq.wfb"); /*轉交控制權給紅方*/ } }blackundo(){ int x,y,n; if(blackstate==MOVE) { x=position[blackoldpos.x][blackoldpos.y].x; y=position[blackoldpos.x][blackoldpos.y].y; n=board[blackoldpos.x][blackoldpos.y]; drawbmp(x,y,chessfile[n]); blackoldpos.x=blackcurpos.x; blackoldpos.y=blackcurpos.y; drawcursor(blackcurpos); blackstate=SELECT; }}/*----------------------------------------------------*/start(){ drawcursor(blackcurpos); drawbmp(30,438,"bmp\\bzq.wfb"); while(!finish) { key=getkey(); switch(key){ case RED_UP: if(turn==RED) rep(); break; case RED_DOWN: if(turn==RED) reddown(); break; case RED_LEFT: if(turn==RED) redleft(); break; case RED_RIGHT: if(turn==RED) redright(); break; case RED_DO: if(turn==RED) reddo(); break; case RED_UNDO: if(turn==RED) rendo(); break; case BLACK_UP: if(turn==BLACK) blackup(); break; case BLACK_DOWN: if(turn==BLACK) blackdown(); break; case BLACK_LEFT: if(turn==BLACK) blackleft(); break; case BLACK_RIGHT: if(turn==BLACK) blackright(); break; case BLACK_DO: if(turn==BLACK) blackdo(); break; case BLACK_UNDO: if(turn==BLACK) blackundo(); break; case ESCAPE: finish=1;break; } }}main(){ init(); initpos(); initchessmap(); drawbmp(0,0,"bmp\\board.wfb"); initdrawchess(); /*初始化游標位置*/ redcurpos.x=redoldpos.x=redtemppos.x=9; redcurpos.y=redoldpos.y=redtemppos.y=8; blackcurpos.x=blackoldpos.x=blacktemppos.x=0; blackcurpos.y=blackoldpos.y=blacktemppos.y=0;/*開始*/ start(); if(winner==RED) drawbmp(200,200,"bmp\\redwin.wfb"); else if(winner==BLACK) drawbmp(200,200,"bmp\\blackwin.wfb"); else drawbmp(200,200,"bmp\\exit.wfb"); getch(); end();}

7. 誰有中國象棋源代碼

是編寫象棋軟體需要? 還是發布動態棋譜需要?

如果是前者可以去黃博士的《象棋網路全書》《 計算機博弈》等,現在的中象象棋軟體編寫程序有的是來自國象的開源代碼

如果是後者可以去 東萍象棋網,參看東萍動態代碼

8. c++程序設計 中國象棋源代碼

我提供兩個功能完善,而且最重要的,我認為演算法設計比較好的中國象棋源代碼,因為是源碼網的,所以可以學習參考下:
http://www.codefans.net/soft/1466.shtml
http://www.codefans.net/soft/1289.shtml

9. 求個C++國際象棋的源代碼!!!!

請參考博弈演算法,此為象棋的主要演算法。望採納

10. 急求C++設計象棋打譜程序的源代碼

這是一個簡單的程序,會自動計算提子,但不會數目。其它的運行一次估計就差不多會用了。稍微寫了點注釋。

#include<stdio.h>
#include<stdlib.h>

char board[21][21];
char move[5][2]=,,,,};

void initBoard();//初始化棋盤
void showBoard();//輸出棋盤
char set(int x,int y,char color);//下子
void process(int xx,int yy);//計算提子

int main()
{
FILE * fptr=NULL;
char pufile[256]=;
char op;
int s;
int x,y,r;
char color;
char win;
int cnt;

start:
s=8;
while(s!=1 && s!=2)
{
printf("選擇模式:\n1---下棋\n2---看棋譜\n0---退出\n");
printf("下棋模式下,下子請輸入s x y(x,y為位置),認輸輸入g,和棋輸入h\n選擇:");
scanf("%d",&s);
if(s==0) return 0;
//Egg1
if(s==10) printf("Programmer: swordlance :)\n");
//Egg1 end
}
getchar();
printf("輸入棋譜路徑:");
gets(pufile);

if(s==1) fptr=fopen(pufile,"w");
else fptr=fopen(pufile,"r");

if(!fptr)
{
printf("文件無法打開(創建)!\n");
system("PAUSE");
return -1;
}

initBoard();
cnt=0;
color='B';
while(op!='g')
{
system("CLS");
showBoard();
printf("(第%d手)",++cnt);
if(s==1)
{
printf("%c 方:",color);
scanf("%c",&op);
//printf("[%c]",op);
if(op=='s')
{
scanf("%d %d",&x,&y);
getchar();
if(set(x,y,color)!=0)
{
printf("該處不能落子!\n");
cnt--;
system("PAUSE");
}
else
{
process(x,y);
fprintf(fptr,"%d %d\n",x,y);
if(color=='B') color='W';
else color='B';
}
}
else if(op=='g')
{
printf("%c 方認輸。\n",color);
if(color=='B') fprintf(fptr,"0 1\n");
else fprintf(fptr,"0 -1\n");
fflush(fptr);
fclose(fptr);
system("PAUSE");
goto start;
}
else if(op=='h')
{
printf("和棋。\n");
fprintf(fptr,"0 0\n");
fflush(fptr);
fclose(fptr);
system("PAUSE");
goto start;
}
else
{
printf("參數錯誤,下子請輸入s x y(x,y為位置),認輸輸入 g,和棋輸入h");
cnt--;
system("PAUSE");
}
}
else
{
fscanf(fptr,"%d %d",&x,&y);
if(x==0)
{
if(y>0) printf("W 方勝!\n");
else if(y<0) printf("B 方勝!\n");
else printf("和棋!\n");
system("PAUSE");
goto start;
}
else
{
printf("%c 方落子(%d,%d)\n",color,x,y);
set(x,y,color);
process(x,y);
if(color=='B') color='W';
else color='B';
}
system("PAUSE");
}
}

system("PAUSE");
return 0;
}

void initBoard()
{
int i,j;
board[0][0]='O';
for(i=1;i<=19;i++) board[0][i]='-';
board[0][20]='O';
for(i=1;i<=19;i++)
{
board[i][0]='|';
for(j=1;j<=19;j++) board[i][j]='+';
board[i][20]='|';
}
board[20][0]='O';
for(i=1;i<=19;i++) board[20][i]='-';
board[20][20]='O';
board[4][4]=board[4][10]=board[4][16]=
board[10][4]=board[10][10]=board[10][16]=
board[16][4]=board[16][10]=board[16][16]='*';
}

void showBoard()
{
int i,j;
for(i=0;i<=20;i++)
{
for(j=0;j<=20;j++)
{
printf("%c",board[i][j]);
}
printf("\n");
}
}

char set(int x,int y,char color)
{
if(board[x][y]=='W' || board[x][y]=='B') return -1;//不能落子
else board[x][y]=color;
return 0;
}

//計算提子
void process(int xx,int yy)
{
char his[21][21]=;//記錄算過的棋子以節約效率
char Q[400][2]=;//某一片棋
int e;//Q的長度。
char mcolor;//這片棋的顏色
char ecolor;//另一種顏色
int QI=0;//氣數
int i,j,k,l,m;
int x,y;

for(m=0;m<5;m++)
{
i=xx+move[m][0];//為了能夠完成打劫,先算別人再算自己
j=yy+move[m][1];
if(his[i][j]==0 && (board[i][j]=='W' || board[i][j]=='B')) //該位置有子開始算氣
{
QI=0;
his[i][j]=1;
mcolor=board[i][j];
ecolor=(board[i][j]=='W'?'B':'W');
//printf("m=%c e=%c\n",mcolor,ecolor);
Q[0][0]=i;
Q[0][1]=j;
e=1;
for(k=0;k<e;k++)
{
for(l=0;l<4;l++)
{
x=Q[k][0]+move[l][0];
y=Q[k][1]+move[l][1];
//printf("x=%d y=%d\n",x,y);
//system("PAUSE");
if(x>0 && y>0 && x<20 && y<20 && his[x][y]==0)
{
if(board[x][y]==mcolor)//己方,長氣
{
Q[e][0]=x;
Q[e][1]=y;
e++;
his[x][y]=1;
}
else
{
if(board[x][y]=='+') QI++; //空地,加氣,忽略重復計算
}
}
}
}
//printf("QI=%d\n",QI);
//system("PAUSE");
if(!QI)//死棋,提子
{
for(k=0;k<e;k++)
{
board[Q[k][0]][Q[k][1]]='+';
his[Q[k][0]][Q[k][1]]=0;
}
}
}
}
}

熱點內容
睿教育密碼是多少位數 發布:2024-06-26 15:38:50 瀏覽:185
androidsqlite條件查詢 發布:2024-06-26 15:37:36 瀏覽:616
淘寶上傳圖片文件夾 發布:2024-06-26 15:19:21 瀏覽:685
需要配置認證伺服器地址 發布:2024-06-26 15:00:49 瀏覽:240
c語言鏈接錯誤 發布:2024-06-26 15:00:39 瀏覽:244
安卓相冊在哪裡設置 發布:2024-06-26 15:00:38 瀏覽:471
dhcp伺服器如何固定ip地址 發布:2024-06-26 15:00:38 瀏覽:433
Python數據分析實例 發布:2024-06-26 14:32:31 瀏覽:27
尚學堂java培訓課程 發布:2024-06-26 14:19:45 瀏覽:472
樂視視頻手機緩存 發布:2024-06-26 13:49:12 瀏覽:378