玩C# 业余时间多 有兴趣一起做个五子棋或黑白棋的小游戏 GDI+ 只用最简单的技术 11-29开始报名哦 QQ群号码42183401
采用 分散式 耦合 结构 开发此游戏
部分代码 https://files.cnblogs.com/feathersky/Chess.rar
每个模块可以多个人开发,每个人也可以开发多个模块,全凭个人兴趣。
在开发过程中不断完善并标准化各函数接口,所有人员参与这个完善的过程,练习一下自己的模块组织能力。
完成自己的模块后 ,上传到群共享里就可以了。不规定时间,格式等等 ,完全松散式管理,如果是没人有兴趣写代码,那么也就自然而然的夭折掉了。
通用表示
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, 找到最大的权重所对应的点。
程序对战 所有策略作成如下类库,放入player目录 即可自动调用
即实现如下3个函数即可,其他的函数可任意添加,程序只调用这3个函数 大家可以试试谁的程序比较强
目前主要代码编写者: 绝〓无情, 羽天
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
{
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 };
}
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步