IT第十一天、第十二天、第十三天 - 数组的应用、飞行棋游戏的编写和总结
| NIIT第十一天 | ||
| 上午 | 多维数组 | 1.数组是引用数据类型 | 
| 排序 | 1.冒泡排序法 2.类冒泡排序法 | |
| 下午 | 飞行棋游戏 | 1.项目策划 2.项目规则确认 3.项目模块确认 | 
| 晚上 | 1.飞行棋游戏,项目框架的编写 | |
| 笔记 | 1.数组也是引用数据类型 2.冒泡排序法:嵌套for循环,外层循环控制冒泡的轮数,内层循环负责将本轮循环的最小值调换到末尾 3.在equals()方法使用上,应该将不会发生空值写在前面,因为在a.equals(b)时,如果a是空值,将不可能调用equals()方法,导致空指针报错,而b为空则不会 | |
| NIIT第十一天、第十二天、第十三天 | ||
| 飞行棋游戏 | 《游戏设置》 (1)游戏素材 普通格子:【∷】幸运轮盘:【◎】地雷:【※】暂停:【▉】时空隧道:【〓】 玩家角色:【野、辅、力、魔、控】说明:用于在地图上显示玩家的位置图标 (2)游戏规则 1.玩家初始位置在第一个位置处,如:玩家第一次投掷骰子点数为1,则玩家进入到第二个格子(在地图中的索引是1) 2.如果玩家投掷骰子,在最终行进到某位置后,与其他玩家重叠,则其他玩家被踩回到初始位置,即第一位置处(最终位置:是指玩家在经历:点数、幸运轮盘、地雷等后,最后所在的位置) 3.玩家赢的标准:玩家移动后最终落在终点,则玩家赢,游戏结束;如果玩家落在了地图外,则倒退超出终点的格数 4.地图图标说明,以下均为玩家最后停留的位置为判定依据: 【◎】:幸运轮盘,玩法:会额外得到一次投掷骰子的机会,如果点数是1、2、3,则该玩家与此刻最前面的玩家互换位置,如果点数是4、5、6,则玩家再投掷一次骰子,根据点数前进一定位置 【※】:地雷,玩法:玩家会被炸晕,倒退6格,但是玩家不能被炸出地图外 【▉】:坐牢,玩法:玩家会被暂停投掷筛子一轮 【〓】:时空隧道,玩法:玩家会被传送到下一个时空隧道的位置,如果玩家所在时空隧道是最后一个,则玩家什么都不做,停留在该时空隧道 5.其他待定的规则 (3)游戏模块设置 1.游戏会分为两个循环模块:游戏菜单循环模块+轮回投掷点数模块 2.在游戏菜单循环模块中,主要会包含:菜单的显示方法、有些基本的菜单项显示(游戏说明、关于游戏)、游戏退出方法、开始游戏的入口,在本模块中还会确定玩家的数量,即是几人局,因为在存储玩家时,使用的是数组,而数组的长度是不可变的,因此,这个只需要确认一次,玩家之后再来一局的话,就不需要再重新选择了(强制不可再选择) 3.在开始游戏模块中个,主要负责游戏的所有逻辑处理,这里分为主方法、地图打印方法、游戏逻辑判断方法、其他辅助的方法;主方法负责每一轮的控制,地图打印负责实时的显示玩家在地图上的位置,游戏逻辑判断是本游戏的关键,负责玩家所行进格数的判断,及玩家在落点处会经历幸运轮盘、坐牢等玩法,其他辅助方法是为了避免可能在多处存在相同的代码,如:玩家在地图的位置,可以独立写成方法,用于实时的计算 (4)游戏目前的BUG 到目前游戏代码的编写结束和简单的测试,发现以下的缺陷或程序设计的错误: 1.地图的打印或玩家的位置的实时确定:在本程序中,在玩家掷完点数后,不是立即加到玩家的位置信息上,而是尽力虚拟的位置信息,待其他(坐牢、时空隧道等)信息都确认后,再将最后的真是位置加到玩家的位置信息上;经检测,这样会导致玩家“自己踩自己”的情况发生,如:玩家行进6格,结果踩到地雷被炸回6格,因为是采用虚拟的位置,这时系统会判断6格前有玩家的存在,因此发生自己踩自己的情况 解决办法:不采用虚拟的位置,每次掷点结束后即加到玩家的位置信息上,然后进行该位置的判断,继续进行玩家位置信息的加减 2.在玩家获得幸运转盘,并且和最前面的玩家交换时,发生了传递参数的出错,即最前面的玩家被拉到当前玩家的位置,但是由于参数传递错误,当前的玩家行进的格数并不是两者之间的差距,因此导致当前的玩家并没有行进到最前玩家的位置,待修复 3.游戏开始,玩家在选择角色的时候,应该动态的减去被选择的角色,即游戏不允许存在相同的角色 4.特定索引被玩家占用后的恢复问题,这个问题需要修复打印地图的一个缺陷,即不应该在地图信息中存入玩家的信息,而应该在打印地图时,动态的替代 5.比赛结束后,对于比赛的评价功能暂未编写 6.其他暂未发现的BUG (5)游戏源码 http://www.kuaipan.cn/file/id_68788844752798025.htm (6)评价 做项目,学的不是写代码,而是这个项目该如何实现,和在项目中能或学到了什么! | |
IT第十一天、第十二天、第十三天 - 数组的应用、飞行棋游戏的编写和总结的更多相关文章
- Java开发笔记(二十三)数组工具Arrays
		数组作为一种组合形式的数据类型,必然要求提供一些处理数组的简便办法,包括数组比较.数组复制.数组排序等等.为此Java专门设计了Arrays工具,该工具包含了几个常用方法,方便程序员对数组进行加工操作 ... 
- java 基本语法(十三) 数组(六)数组的常见异常
		1.数组角标越界异常:ArrayIndexOutOfBoundsException int[] arr = new int[]{1,2,3,4,5}; // for(int i = 0;i <= ... 
- Labview学习之路(十三)数组函数
		本文章介绍一下函数选版中的数组函数,一眼看懂没什么特殊地方的就不说了 (一)数组大小 返回I32类型的数或者数组. 什么是I32类型?就是32位有符号整型, 有符号什么意思?就是在32位数据中最高做符 ... 
- C# 开源框架
		一.AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种 ... 
- PHP 汉字数字互转(100以内)| PHP 汉字转数字 | PHP数字转汉字
		<?php function numDatabase(){ $numarr =array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,2 ... 
- C#开源系统大汇总(个人收藏)
		C#开源系统大汇总 一.AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖 ... 
- C#常用开源类库
		一.AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种 ... 
- .NET平台下开源框架
		一.AOP框架Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种部署方面(asp ... 
- “K米” 软件产品评测
		第一部分 调研,评测 评测: 第一次上手体验:KTV相信很多人都有去过,大部分包厢只有哦一个点歌台,相信很多人都会烦恼于一堆人挤在小小的点歌台前点歌的样子,还有些人不太好意思跑到点歌台点歌,常常是碰到 ... 
随机推荐
- Jquery filter()方法简介
			利用filter函数可以从wrapper set中过滤符合条件的dom元素. 如下图html代码,假如我们要获取类名为filter的<a>标签,用filter方法可以很轻松的获得. < ... 
- entity framework 中一些常用的函数    转自http://www.cnblogs.com/williamzhu/
			一般查询 var Courses = db.Courses.Where(c => c.Title == "Physics").OrderBy(c => c.Title) ... 
- C#WebService 客户端通过Http调用请求(转)
			1.webservice帮助类 public class WebServiceHelper { public static string CallServiceByG ... 
- Android NDK开发(1)----- Java与C互相调用实例详解
			链接地址:http://www.cnblogs.com/lknlfy/archive/2012/03/13/2394153.html 一.概述 对于大部分应用开发者来说可能都不怎么接触到NDK,但如果 ... 
- js表格排序 &  去除字符串空格
			// a:列数 bool:排序升序判断参数 true false Str:支持多列 function newUnitSort(a, bool, str) { var oTable = document ... 
- 【转】DevExpress控件安装
			原文链接: DevExpress控件安装.汉化使用教程 - 田园里的蟋蟀 学习网址: 1.DevExpress控件中文网 2.DevExpress控件中文网使用教程 3.DevExpress控件使用经 ... 
- A Byte of Python 笔记(9) 面向对象编程
			第11章 面向对象编程 面向过程:根据操作数据的函数或语句块来设计程序. 面向对象(OOP, object-oriented programming):把数据和功能结合起来,用对象包裹组织程序. 类 ... 
- IOS 表视图(UITableVIew)的使用方法(5)表视图的编辑功能(删除)
			默认的,如果表视图支持编辑,那用户可以通过两种方式来删除某些行,其一为单击左侧的红色按钮后行右侧显示“Delete”按钮,其二为在单元行上的手指向左滑动,“Delete”按钮也会出现供用户单击.无论哪 ... 
- mysql读写分离
			严格意义上讲,MySQL 读.写分离确实存在上述情况,这是由Master-Slave 异步复制存在延迟所导致的,且Master binlog的写入为多线程,而Slave同步的sql_thread为单线 ... 
- IOS开发新手教程(一)-数据类型和运算符
			OC语法入门(一) 数据类型和运算符 1.1凝视 凝视和其它语言一样,同意单行 ,多行凝视,一份规范的代码里面须要有一些正式的凝视,例如以下凝视: /* 这是多行 凝视 */ //这是多行凝视 OC语 ... 
