win8 开发之旅(5) --五子棋游戏开发
上节说道了对这个游戏 面向对象的分析,各位读者 ,有什么不懂,尽情给我留言把!!!!!!
闲话少说,这节我们对 游戏的实体类,先进行伪代码分析,然后进行源代码的分析。
我们先看这些类的整体的架构如下图所示:
Piece类 代表相应的棋子的类, 他应该有 位置这个属性,而位置的最好的体现是通过纵坐标横坐标来体现;相应形状这个属性代表是黑色用户控件还是白棋的用户控件。
类型属性代表代表这是黑棋, 还是白棋;
索引属性 插入相应的索引的位置。 相应源代码如下:
private UserControl _shape;
private Position _position;
/// <summary>
/// Gets or sets the X.
/// </summary>
/// <value>The X.</value>
public int X
{
get { return _position.X; }
set { _position.X = value; }
}
/// <summary>
/// Gets or sets the Y.
/// </summary>
/// <value>The Y.</value>
public int Y
{
get { return _position.Y; }
set { _position.Y = value; }
}
/// <summary>
/// Gets or sets the position.
/// </summary>
/// <value>The position.</value>
public Position Position
{
get { return _position; }
set { _position = value; }
}
public PieceType Type { get; set; }
public int Index { get; set; }
/// <summary>
/// Initializes a new instance of the <see cref="Piece"/> class.
// </summary>
public Piece()
{
_position = new Position(0,0);
}
/// <summary>
/// Gets the shape.
/// </summary>
/// <value>The shape.</value>
public UserControl Shape
{
get
{
if (_shape == null)
{
if (Type == PieceType.Black)
_shape = new BlackPieceComponent();
if (Type == PieceType.White)
_shape = new WhitePieceComponent();
}
return _shape;
}
}
PieceBoard(棋盘) 这个类 是用于对棋盘进行面向对象的处理后的类, 他有那些属性和方法了
首先,考虑整块游戏只需要一块棋盘,因此我们是不是用单例模式来产生这快棋盘。 说道单例模式的话,有一个 相应类事例和产生单独一个对象的方法。
棋盘棋盘本身就是盛放棋子的容器,因此我们这里需要一个盛放棋子的数组,为什么是数组啊? 因为棋盘是15*15方格子。
相应的源代码如下
public class PieceBoard
{
static PieceBoard _Instance { get; set; }
public Piece[,] pieces { get; set; }
private PieceBoard()
{
Init();
}
private void Init()
{
pieces = new Piece[AppConfig.BoardWidth, AppConfig.BoardWidth];
}
public static PieceBoard GetPieces()
{
lock (_Instance)
{
if (_Instance==null)
{
_Instance = new PieceBoard();
}
}
return _Instance;
}
}
怎么知道谁赢了,当然是有一套复杂判断连五子的方法,显然,我们需要一套复杂,的算法。这节我们不说他,说一说储存胜利结果的类。
WinningResult 他有哪些属性,谁取胜的一个枚举的属性,一个那种棋子属性,一个棋子的泛型数组。可能读者就纳闷了,前两个属性需要
还好理解,而一个棋子的泛型数组 是干嘛的,首先他不是吃饭的。他是把每个胜利结果下的棋子储存起来,以做以后判断使用。
相应的源代码如下:
public class WinningResult
{
public WinningType wtype { get; set; }
public PieceType ptype { get; set; }
public List<Piece> piecs;
public WinningResult()
{
piecs = new List<Piece>();
}
}
这里说他两个枚举类型,源代码就不用多贴了,PieceType棋子的类型分别 代表的 白色、黑色类型。 WinningType 胜利的类型, 有水平,垂直,斜起方向。
你会问我为什么要枚举,简而言之,就是避免魔鬼数字, 更好的见名之义。 增强源代码的可读性。 是1更好理解, 还是Black更好的理解,你说了
我这节说的够多了,就此休笔把!!! 欲知后事如何,且听下回分解。
win8 开发之旅(5) --五子棋游戏开发相关推荐
- win8 开发之旅(3) --五子棋游戏开发 前奏
真的是好久.好久没有写博客了,手都生了.我有在国庆这七天的时间更进一步的学习了xaml语言,熟悉了win8的开发的过程. 因此我会把我这些天开发的一些心得陆陆续续的分享给大家. 经过前几次我写相应的开 ...
- 元宇宙游戏开发公司 深圳元宇宙游戏开发
splinterlands元宇宙游戏开发,upland元宇宙游戏开发,CryptoBlades元宇宙游戏开发,SecondLive元宇宙游戏开发,PROSPECTORS元宇宙游戏开发,Office L ...
- 游戏开发入门(一)游戏开发概述
视频链接:游戏开发入门(一)游戏开发概述(3节课 时常:约1小时03分钟) 该视频围绕电子游戏的发展与开发简单介绍了一些基本常识,同时提出并解决了几个问题 笔记与总结(请先学习视频内容): 1.游戏机 ...
- [libGDX游戏开发教程]使用LibGDX进行游戏开发(1)-游戏设计
声明:本章是一个系列的开始,英文原文是<Learning libGDX Game Development>,大家请周知. [libgdx游戏开发教程]使用Libgdx进行游戏开发(2)-游 ...
- Java五子棋游戏开发博客
一.项目简介 五子棋是大家喜闻乐见的小游戏,规则很简单,但又变化多端,具有趣味性,可玩性很强.五子棋游戏程序可以让人们方便快捷的下五子棋,让人们可以随时通过下棋提高思维能力.功能如下:在点击鼠标时,可 ...
- 结对-五子棋游戏-开发环境搭建过程
项目名称:五子棋游戏 参加项目人员:李一轩.程吉 环境搭建:下载HBuilder软件,下载Google浏览器:依次安装即可使用 转载于:https://www.cnblogs.com/SirL/p/7 ...
- 【Android游戏开发二十七】讲解游戏开发与项目下的hdpi 、mdpi与ldpi资源文件夹以及游戏高清版本的设置...
今天一个开发者问到我为什么游戏开发要删除项目下的hdpi.mdpi和ldpi文件夹:下面详细给大家解答一下: 首先童鞋们如果看过我写的<[Android游戏开发二十一]Android os设备谎 ...
- [libGDX游戏开发教程]使用libGDX进行游戏开发(12)-Action动画
前文章节列表: 使用libGDX进行游戏开发(11)-高级编程技巧 使用libGDX进行游戏开发(10)-音乐音效不求人,程序员也可以DIY 使用libGDX进行游戏开发(9)-场景过渡 使用li ...
- 安卓游戏开发用什么引擎_游戏开发学习第一天————用什么软件
今天开始了虚幻学习的第一天! 好的,那我们就开始学习做游戏吧! 始学习做游戏吧 学习做游戏吧 习做游戏吧 做游戏吧 游戏吧 戏吧 吧 等等,要学做游戏啊...... 第一步要做什么,我还完全不知道啊喂 ...
最新文章
- EasyExcel中输出为时间格式
- 电压压力蕊片_一文让你知道什么是压力变送器
- (37)System Verilog类外方法示例
- OpenShift 4 - 查看关键证书到期日期
- ASCII码表对照图
- 磨刀不误砍柴工,掌握DEVC++的一些实用技巧
- 【ubuntu使用排坑】fsckd-cancel-msg:Press Ctrl+C to cancel all filesystem checks
- 单词首字母变大写-vue
- VMWare 设置CentOS虚拟机固定IP地址
- Firefox plugin
- 互联网晚报 | 10月14日 星期四 | 钉钉宣布用户数破5亿;顺丰王卫将出任嘉里物流董事会主席;字节跳动巨量引擎进军职业教育...
- 我的世界服务器个体值怎么修改,我的世界神奇宝贝个体值指令 | 手游网游页游攻略大全...
- 解决ubuntu12.04安装air微博错误
- Remote Desktop Connection Manager2.92 安装+基本使用
- java计算机毕业设计ssm智慧小区团购系统4x45g(附源码、数据库)
- 新概念英语的学习方法
- 【向生活低头】将flv格式文件转为mp4
- 【成为一个优秀的软件测试工程师】
- 解决电脑不显示桌面图标问题
- 另类方法----不刷BIOS为9600的软改9550成为T2
热门文章
- Active Directory备份与还原
- 《计算机网络:自顶向下方法(原书第6版)》一2.7 TCP套接字编程
- AST语法结构树初学者完整教程
- windows server 2008配置之AD域服务器 1
- [转]没有找到 MFC42D.DLL,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题。解决方法!...
- Centos 7 密码重置
- flutter安装教程(win7)
- 发展需要大师,繁荣更需批评——GIS现状堪忧
- IIS6.0 + openssl执行版 + Windows2003--配置篇
- storm1.x介绍