機試真題 五子棋判定問題

2022-06-24 17:57:14 字數 1152 閱讀 2860

兩種主流思想:

1.直接全部掃瞄棋盤,按四個方向逐個遍歷,不僅麻煩而且很傻;

2.每落乙個子,直接對該子進行四個方向判定,且判定的時可以乙個方向左右加和;

#include#include

#include

using

namespace

std;

const

int maxn = 13

;int

ma[maxn][maxn];

void

printma()

else

if (ma[i][j] == -1

)

else

cout

<< "";

}cout

<}

}int henc(int x, int

y)

for (int i = x - 1; i >= 0 && ma[x][y] == ma[i][y]; i--)

cnt++;

return

cnt;

}int shuc(int x, int

y)

for (int i = y - 1; i >= 0 && ma[x][y] == ma[x][i]; i--)

cnt++;

return

cnt;

}int xzc(int x, int

y)

for (int i = x-1, j = y-1; i >=0&&y >= 0&&ma[x][y] == ma[i][j]; i--, j--)

return

cnt;

}int xyc(int x, int

y)

for (int i = x, j = y; i < maxn && y >= 0 &&ma[x][y] == ma[i][j]; i++, j--)

return

cnt;

}bool charge(int x,int

y) int

main()

else

break

; }

f = -f;

}return1;

}

下五子棋的bot 五子棋演算法

include include include include include include jsoncpp json.h c 編譯時預設包含此庫 define n 7 每個節點的分支數 以下為各棋型的識別碼 權重 define win 1 4000 define lose 2 4000 defi...

窮舉五子棋

本想窮舉五子棋必勝點,可惜呀,這貨窮舉太不現實了,寫出來了,根本沒辦法執行出來結果 include include include define rl 17 char s 14 int five rl rl void init void void print void int cs int i,in...

普通 五子棋

五子棋 五子棋是世界智力運動會競技專案之一,是一種兩人對弈的純策略型棋類遊戲,是世界智力運動會競技專案之一,通常雙方分別使用黑白兩色的棋子,下在棋盤直線與橫線的交叉點上,先形成5子連線者獲勝。棋具與圍棋通用,起源於中國上古時代的傳統黑白棋種之一。主要流行於華人和漢字文化圈的國家以及歐美一些地區,是世...