win8 开发之旅(6) --五子棋游戏开发

   上节,对实体类进行了较多篇幅的分析,这节我们来阐述两个代理类applicationProxy 类与PieceboardProxy类的内部或者外部的知识。

   首先要搞清楚这个问题吧!!!!!!!!为什么需要代理类型。 这是为了更好的使用代理模式。代理模式是什么东东?他有什么作用。

  百度百科上对代理模式解释这么样的。代理模式:为其他对象提供一个代理以控制对这个对象的访问。   就是在内存中

创建了一个代理对象,来控制其他的类对相应这个对象的访问。我们这里举个例子吧!最明显的体现就是webservice技术 。当程序员访问网络上一台计算机的资源时,我们正在跨越网

络障碍,跨越网络障碍有时候是非常复杂,因为要确保数据安全可靠地传输。如果真的要我们都去解决那些复杂网络问题,那么我估计程序员们疯了。还好代理模式(Proxy)帮我们

解决了其中的一些问题----WebService技术。  

     你会提醒我,跑偏了。 好,言归正卷。    革命是意义, applicationProxy类是对程序进行代理的类,PieceboardProxy类是对棋盘代理的类 

   我们瞧一瞧他们两究竟有什么了。

      先看applicationProxy类吧!他是啥摸样了  他里面应该是有效的监听这棋子数目的变化,为什么要监听棋子变化,我有这几个目的,目的一 我要看 是否是下满整个棋盘,

 显然,用这个类来监听。目的二,为什么白子下了,黑子又下。这是由于监听白子比黑子多一结果。   他有那几个属性了,有白子的数目,黑子的数目,以及总数目。

这些数目最好是用数据字典保存起来。 有一个更新的方法,重置的方法和更新棋子的方法。那为什么他来监听棋子变化,因为这是贯穿整个程序的,所以非她莫属。

            再看看PieceboardProxy类吧!    这是今天的重头戏了,  这主要是计算棋盘上如何走位,怎么是胜利的方法。 那里面结构如何。

   ①要向棋盘上添加棋子,因此有了个添加棋子的方法。怎么判断这个地方是否能够添加,难道我这个地方,被别人占了,也能添加,岂有此理。因此有个判断这个位置

是否为空的方法。

    ②五子棋,五子棋,也称连连棋。我这里有一个判断他在垂直、水平和斜线方向判断是否相连成5个方法。具体哪么做,就是扫描是否相连为5个

     ③最后,有一个对棋盘进行清空的方法。

  好,这节我就介绍在这,但愿能够大家带来帮助。

开源地址:http://51aspx.com/Code/win8Gobang

http://blog.csdn.net/xiaoxiao108/article/details/37882295 unity3d用的人挺多,本来写个3d游戏试试,额,貌似挺麻烦,先用unity写个简单的2d游戏吧 (adsw回车 或者 触摸屏虚拟摇杆) 开发环境 unity4.5.1f3 vs2013 express win8.1 实现方法如下 1.创建自己的坦克Sprite 2.创建敌方坦克Prefab 3.创建子弹Prefab 4.添加虚拟摇杆 5.碰撞检测 具体实现 1.控制自己坦克的代码 [csharp] view plaincopy if (Input.GetKey (KeyCode.W)) { Rotate (0); } else if (Input.GetKey (KeyCode.S)) { Rotate (180); } else if (Input.GetKey (KeyCode.A)) { Rotate (90); } else if (Input.GetKey (KeyCode.D)) { Rotate (270); } i++; if (i == 10) {i=0; if (Input.GetKey (KeyCode.Return)||rotateJoystick.tapCount > 0) { m.tag = "GOOD"; Instantiate (m, transform.position, transform.rotation); } } 2.控制地方坦克的代码 [csharp] view plaincopy if (step == 0) { int i=Random.Range(0, 4); Rotate(angles[i]); step = Random.Range(0, 20) + 85; if(Random.Range(0,50)>40) { m.tag="BAD"; Instantiate(m, transform.position, transform.rotation); } } else { step--; } transform.Translate (Vector3.up*Time.deltaTime*4); 3.控制子弹移动 transform.Translate (Vector3.up * Time.deltaTime * 10); 4.虚拟摇杆用的Untiy 里面 Standard Assets(Mobile).unityPackage自带的 5.碰撞检测代码 [csharp] view plaincopy void OnTriggerEnter2D(Collider2D mCollider) { if ((mCollider.gameObject.tag == "Enemy"&&gameObject.tag=="GOOD")||(mCollider.gameObject.tag == "Player"&&gameObject.tag=="BAD")) { Destroy(mCollider.gameObject); Destroy(this.gameObject); if(gameObject.tag=="BAD") { PlayerPrefs.SetString("key","OVER"); Application.LoadLevel(1); } } } 如果你发现有什么不合理的,需要改进的地方,请留言。 http://blog.csdn.net/xiaoxiao108/article/details/37882295
weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值