一起用C#做个五子棋的小游戏 增加了程序对战功能
玩C# 業(yè)余時間多 有興趣一起做個五子棋或黑白棋的小游戲? GDI+ 只用最簡單的技術? 11-29開始報名哦? QQ群號碼42183401
?
?
?
????????????? 采用 分散式 耦合 結構???? ?開發(fā)此游戲?
?
部分代碼?http://files.cnblogs.com/feathersky/Chess.rar
?
每個模塊可以多個人開發(fā),每個人也可以開發(fā)多個模塊,全憑個人興趣。
在開發(fā)過程中不斷完善并標準化各函數接口,所有人員參與這個完善的過程,練習一下自己的模塊組織能力。
?
完成自己的模塊后 ,上傳到群共享里就可以了。不規(guī)定時間,格式等等 ,完全松散式管理,如果是沒人有興趣寫代碼,那么也就自然而然的夭折掉了。
?
通用表示
Int M=10;???????? 棋盤 長
Int N=10;???????? 棋盤 寬
Int[M,N] board;??? 棋盤
?
Int empty=0, black=1, white=2;???? // 表示空 ,黑棋,白棋
?
Int playerRole=black/white;
?
模塊一?界面交互:
實現功能
ShowBoard(int[,] board);??顯示棋盤
PlayerClick????????????? 玩家點擊鼠標處理
?
?
?
模塊二?計算當前局勢
實現功能
Int[ ] Calculate(int[,] board)
計算出黑白雙方的雙三,單三,雙四,單四等等(例如單四是一頭被堵死的,還是兩頭都是自由的)。?返回不同的值,此值自定義。
?
?
?
模塊三?搜索最佳電腦應落子的位子
實現功能
根據Calculate 得到的結果賦予棋盤不同的權值
Weight(Int[2]situation)
?
?
先實現一個最簡單的一步搜索算法
FindBestPosition(int[,] board, int color)
如果當前輪到color顏色的棋走,找到此棋應落下的位置,找不到的話就先隨機生成一個點
?
搜索
假設color棋子落下不同的點,計算其局勢Calculate,計算權重weight, 找到最大的權重所對應的點。
?
?
?
程序對戰(zhàn) 所有策略作成如下類庫,放入player目錄 即可自動調用
即實現如下3個函數即可,其他的函數可任意添加,程序只調用這3個函數? 大家可以試試誰的程序比較強
?
目前主要代碼編寫者: 絕〓無情, ? 羽天
?
?
代碼namespace?ChessPlayer{
????public?class?Player
????{
????????int?color?=?0;
????????public?string?GetName()
????????{
????????????return?"Computer";
????????}
????????public?void?SetColor(int?_color)
????????{
????????????color?=?_color;
????????}
????????public?int[]?PlaceChess(int[,]?board)??????//輪到你走棋,傳入?棋盤,??傳出?你要走哪里
????????{
????????????
????????????int?M?=?board.GetLength(0);
????????????int?N?=?board.GetLength(1);
????????????//隨機產生一個空位
????????????Random?rand?=?new?Random();
???????????
????????????for?(int?i?=?0;?i?<?500;?i++)
????????????{
????????????????int?x?=?rand.Next(M);
????????????????int?y?=?rand.Next(N);
????????????????if?(board[x,?y]?==?0)?return?new?int[]?{?x,?y?};
????????????}
????????????return?new?int[]?{?0,?0?};
????????}
????}
}
?
?
轉載于:https://www.cnblogs.com/feathersky/archive/2009/11/29/1612919.html
總結
以上是生活随笔為你收集整理的一起用C#做个五子棋的小游戏 增加了程序对战功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为服务器默认什么系统,云服务器默认系统
- 下一篇: 商品订单表怎么设计_三级分销系统系统设计