黑白棋遊戲程式

2021-07-14 19:52:33 字數 3479 閱讀 5976

#include

#include

#include

#include

#include

#include

using namespace std;

int qi[8][8];

#define size 8

void display(char board[size])}}

}}return no_of_moves;

}void make_move(char board[size],int row,int col,char player)//改變棋子}}

}}int get_score(char board[size],char player)

}printf("\n");

}void print()

void xiugai(int hang, int lie, int heng, int zong, int num)

}int panduan(int count, int shu, int se)

bool chuli(int se, int i, int j, bool leixing)

if (flag==2) if (leixing)

else ctrl=true;

flag=1;

count=0;

hang=i; lie=j;

while (hang<7 && flag==1) // 向下判斷

if (flag==2) if (leixing)

else ctrl=true;

flag=1;

count=0;

hang=i; lie=j;

while (lie>0 && flag==1) // 向左判斷

if (flag==2) if (leixing)

else ctrl=true;

flag=1;

count=0;

hang=i; lie=j;

while (lie<7 && flag==1) // 向右判斷

if (flag==2) if (leixing)

else ctrl=true;

flag=1;

count=0;

hang=i; lie=j;

while (hang>0 && lie>0 && flag==1) // 向左上判斷

if (flag==2) if (leixing)

else ctrl=true;

flag=1;

count=0;

hang=i; lie=j;

while (hang<7 && lie<7 && flag==1) // 向右下判斷

if (flag==2) if (leixing)

else ctrl=true;

flag=1;

count=0;

hang=i; lie=j;

while (hang>0 && lie<7 && flag==1) // 向右上判斷

if (flag==2) if (leixing)

else ctrl=true;

flag=1;

count=0;

hang=i; lie=j;

while (hang<7 && lie>0 && flag==1) // 向左下判斷

if (flag==2) if (leixing)

else ctrl=true;

if (ctrl && leixing) qi[i][j]=se;//leixing為真且滿足條件該處落子

return ctrl;

}int main()

;int moves[size][size]=;//可移動位置陣列

int row=0;

int col=0;

int no_of_games=0;

int no_of_moves=0;//落子個數

int invalid_moves=0;

int comp_score=0;

int user_score=0;

char y=0;

char x=0;

char again=0;

int player=0;

double start,finish;

int i;

system("color b0");

printf("選擇人人對戰按 1 ,選擇人機對戰按 0 \n");

scanf("%d",&b);

if(b)//人人函式

}if (ctrl_1 && ctrl_2) break;//進行全盤判定如果存在可下點則跳出

}if (!(ctrl_1 || ctrl_2)) break;//無可下點

if ((!ctrl_1) && ctrl_2 && (se==1)) continue;//白棋pass,黑棋接著下

if ((!ctrl_2) && ctrl_1 && (se==2)) continue;//黑棋pass,白棋接著下//不進行落子處理只進行判定

count_hei=0; count_bai=0;

for (i=0; i<8; i++)

for (j=0; j<8; j++)

print();//初始棋盤生成

cout << "     黑方 " << count_bai << " : " << count_hei << " 白方" << endl;

if (se==1) cout << "     白方下子" << endl;

else cout << "     黑方下子" << endl;

while (!ctrl)

ctrl=false; ctrl_1=false; ctrl_2=false;//重置

n++;

}count_hei=0; count_bai=0;

for (i=0; i<8; i++)

for (j=0; j<8; j++)

//最終計數

print();

cout << "     白方 " << count_hei << " : " << count_bai << " 黑方" << endl;

if (count_hei>count_bai) cout << "     白方勝!" << endl;

else if (count_hei> i;

}//人人函式結束

else//人機函式開始

{start = clock();//取開始時間

printf("\nreversi\n\n");

printf("  你執白先行 - (o)\n  電腦為黑色 - (*).\n");

printf("\n按回車鍵開始\n");

scanf("%c",&again);do{

player=++no_of_games%2;

no_of_moves=4;

for(row=0;row=0&&y>=0&&xreturn 0;

黑白棋遊戲

黑白棋遊戲 time limit 10000ms memory limit 65536k total submit 9 accepted 5 case time limit 1000ms description 問題描述 黑白棋遊戲的棋盤由4 4方格陣列構成。棋盤的每一方格中放有1枚棋子,共有8枚白...

黑白棋遊戲

用c 封裝了一下,只完成了乙個雛形,有很多功能沒有新增上,但 的行數已經縮短了很多了。include include include includeusing namespace std class chess int counter 計數器,計算棋子個數 const friend void dra...

黑白棋遊戲

include include using namespace std char e 30 30 int a 30 30 int c 30 int x 30 int y 30 intf int n,int sum int pos sum 2 n int cnt 0 int flag 0 int w ...