ok,上棋盤
轉化為二維陣列的模樣:
正常使用二維陣列進行訪問,會有很多重複資料0,陣列的大小也就是11 * 11
假如我們用稀疏陣列的話,會相應地減少陣列大小,當然還是看具體情況。
這裡我們用另外乙個二維陣列演示:
轉成稀疏陣列
第一行為二維陣列的 長 寬 以及 有幾個不為預設值的值
後續的為每個棋子的座標以及值(黑棋或白棋)
最後介紹二維陣列轉稀疏陣列,稀疏陣列轉二維陣列
public
static
void
main
(string[
] args)
system.out.
println()
;}//二維陣列轉稀疏陣列
int num =0;
for(
int i =
0; i < chessarray1.length; i++)}
}//建立對應的稀疏陣列
int[
] sparsearray =
newint
[num+1]
[3];
//給稀疏陣列賦值
sparsearray[0]
[0]= chessarray1.length;
sparsearray[0]
[1]= chessarray1[0]
.length;
sparsearray[0]
[2]= num;
//二維陣列非0資料存到稀疏陣列中
int sum =1;
//控制行
for(
int i =
0; i < chessarray1.length; i++)}
}//輸出稀疏陣列
system.out.
println
("輸出稀疏陣列");
for(
int[
] row: sparsearray)
system.out.
println()
;}//恢復成原始的二維陣列
int[
] chessarray2 =
newint
[sparsearray[0]
[0]]
[sparsearray[0]
[1]]
;for
(int i =
1; i < sparsearray.length; i++
)//輸出二維陣列
system.out.
println
("輸出二維陣列");
for(
int[
] row: chessarray2)
system.out.
println();}}
ok! 五子棋小案例
include include include define max 20 using namespace std bool flag true int temp 1 為了實現黑白棋子的交替,使用全域性變數 void qizi int array2 max int array3 max int ar...
下五子棋的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...