攻击DotCom小游戏
2015-10-14 22:48
369 查看
许久都没写博客了,些许是前段时间有些懈怠,今天来写博客,想记录下做过的事情,怕以后电脑换了,以前做的小项目也跟着丢了,总结下最近做的一个小游戏:
游戏目的:建立一个7X7的网格,选择其中的连续的三格来作为一个目标,一共有3个目标,对每次的猜数,给一个hit,miss,kill,如果三个目标都杀完了,返回猜测次数,给个分数
游戏核心:类之间的交流 private对属性设置后部分代码的重构 ArrayList的使用
要求:main()作为一个启动程序 基本上所有的代码都放到各类中
一个类里面:属性propety和方法method
property method main 三者居然就构建了java的世界 佩服OO
headfirst中提及极限编程:意在对课题有基本了解后,先写只重功能的测试码,却不去想怎么实现,再去一一写各类,在我写这个游戏时,确也不只一次的先联想到测试码,而后再去想各类的编写,竟是如此自然
注意:这其中却遇到了一个for循环,在逻辑上一定会对res变量赋值,愚蠢的电脑却只有在运行的时候才能知道,可是由于res的赋值在for循环中,因此编译器只能报错
因此如果以后遇到这种情况姑且给变量赋值,因为既然逻辑上会被赋值,想必也会更改他的值,我们就姑且打消编译器的疑虑吧,啊哈哈哈哈
Game类:
View Code
游戏目的:建立一个7X7的网格,选择其中的连续的三格来作为一个目标,一共有3个目标,对每次的猜数,给一个hit,miss,kill,如果三个目标都杀完了,返回猜测次数,给个分数
游戏核心:类之间的交流 private对属性设置后部分代码的重构 ArrayList的使用
要求:main()作为一个启动程序 基本上所有的代码都放到各类中
一个类里面:属性propety和方法method
property method main 三者居然就构建了java的世界 佩服OO
headfirst中提及极限编程:意在对课题有基本了解后,先写只重功能的测试码,却不去想怎么实现,再去一一写各类,在我写这个游戏时,确也不只一次的先联想到测试码,而后再去想各类的编写,竟是如此自然
注意:这其中却遇到了一个for循环,在逻辑上一定会对res变量赋值,愚蠢的电脑却只有在运行的时候才能知道,可是由于res的赋值在for循环中,因此编译器只能报错
因此如果以后遇到这种情况姑且给变量赋值,因为既然逻辑上会被赋值,想必也会更改他的值,我们就姑且打消编译器的疑虑吧,啊哈哈哈哈
Game类:
package twoClass; import java.util.*; import java.io.*; public class GameHelper { private static final String alphabet = "abcdefg"; private int gridLength= 7; private int gridSize = 49; private int [] grid = new int[gridSize]; private int comCount; public String getUserInput(String prompt){ String inputLine = null; System.out.print(prompt + " "); try{ BufferedReader is = new BufferedReader( new InputStreamReader(System.in)); inputLine = is.readLine(); if(inputLine.length() == 0 ) return null; }catch (IOException e) { System.out.println("IOException: " + e); } return inputLine; } public ArrayList<String> placeDotCom(int comSize) { ArrayList<String> alphaCells = new ArrayList<String>(); String [] alphacoords = new String [comSize]; String temp = null; int [] coords = new int[comSize]; int attempts = 0; boolean success = false; int location = 0; comCount++; int incr = 1; if((comCount % 2) == 1){ incr = gridLength; } while( !success & attempts++ < 200 ){ location = (int) (Math.random() * gridSize); int x = 0; success = true; while(success && x<comSize){ if(grid[location] == 0){ coords[x++] = location; location += incr; if(location >= gridSize){ success = false; } if(x>0 && (location % gridLength == 0)){ success = false; } }else{ success = false; } } } int x = 0; int row = 0; int column = 0; while(x < comSize){ grid[coords[x]] = 1; row = (int) (coords[x] / gridLength); column = coords[x] % gridLength; temp = String.valueOf(alphabet.charAt(column)); alphaCells.add(temp.concat(Integer.toString(row))); x++; } return alphaCells; } }
View Code
相关文章推荐
- 【软/自考】算法写作思路
- 5位选手说两个猜测,都说对一半,预测比赛名次问题
- 【Oracle】Oracle 11g 中的自动数据库维护任务管理
- pg_shard PostgreSQL数据库分片
- Model Builder空间选址建模技术
- js判断鼠标是否停止移动
- volatile
- 说说epoll
- 说说epoll
- WaitForMultipleObjects使用详解
- WaitForMultipleObjects使用详解
- Ubuntu下apt-get失败的原因
- Ubuntu下apt-get失败的原因
- AT&T汇编格式
- AT&T汇编格式
- 2014年12月01日
- 2014年12月01日
- socket阻塞与非阻塞,同步与异步、…
- socket阻塞与非阻塞,同步与异步、…
- unix网络编程环境