稀疏陣列經典案例之五子棋

2021-10-03 11:18:25 字數 1737 閱讀 4810

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...