為了實現連珠六子及六子以上自殺的功能,中間沒有使用break及return 語句,執行效率有所降低。
注:1、使用的是c#語法。
2、如果「五(子)、六(子)連」按自殺處理。
3、三三禁軍功能還沒有實現,以後會進一步完善。
晚輩學習c#的時間不長,還望前輩們多多指教。
///
/// 是否贏
///
/// 棋盤中的所有棋子
/// 所下棋子的最後乙個位置
/// 是否贏
public virtual bool win(color[,] arrcol,point p,out int maxnum)
bo = true;
}else if(num > 5)//標識六子及六子以上自殺
bo = false;}}
else
num = 0;//(*****)
}num = 0;//歸零(*****)
/*幾乎所有注釋下同*/
for (int i = 0; i < 9; i++)//從 左下角 到 右上角
bo = true;
}else if (num > 5)
bo = false;}}
else
num = 0;
}num = 0;
for (int i = 0; i < 9; i++)//從 左 到 右
bo = true;
}else if (num > 5)
bo = false;}}
else
num = 0;
}num = 0;
for (int i = 0; i < 10; i++)//從 上 到 下
bo = true;
}else if (num > 5)
bo = false;}}
else
num = 0;
}return bo;
}今後會實現「三三自殺」 的演算法!
下五子棋的bot 五子棋演算法
include include include include include include jsoncpp json.h c 編譯時預設包含此庫 define n 7 每個節點的分支數 以下為各棋型的識別碼 權重 define win 1 4000 define lose 2 4000 defi...
乙個連珠五子棋判斷是否取勝的方法(二)
是否贏 棋盤中的所有棋子 要檢索的棋子的位置 返回連續棋子的最大個數 是否贏 public virtual bool win color arrcolor,point p,out int maxnum num 0 歸零 for int i 0 i 9 i 從 左下角 到 右上角 的九子範圍內檢索連續...
寫了個五子棋
還沒放假的時候想著寫乙個可以聯網對戰的五子棋,主要是剛剛學了些mfc,想動動手,結果一下子就把本地的給寫了出來,但是根本沒有考慮有關結構,還有哪些該做乙個類,類與類之間的繼承等關係,外加要考慮到多執行緒,以及不知道類裡面的postmessage怎麼寫 結果當輪到寫網路部分的時候就卡住了,客戶端這邊有...