Java实践(一)之击船游戏
来源:《Head First Java》第二版
一、游戏描述
随机生成连续3个10内的整数当做船坐标,玩家输入坐标,全部猜对算通关,最后返回猜坐标的次数。
二、流程图
三、分析
设计三个类GameDrive,Game,Player.
GameDrive:游戏驱动类;
Player:玩家猜的数值、猜的次数、猜的动作;
Game:船坐标,游戏开始动作。
四、Code.
Player类:
import java.util.*;public class Player {private int allNum = 0;private int guessNum ;void guess() {Scanner scanner = new Scanner(System.in);guessNum = scanner.nextInt();allNum++;}int getGuessNum() {return guessNum;}int getAllNum() {return allNum;}
}
Game类:
import java.util.ArrayList;public class ShipHitGame {private ArrayList<Integer> locationCell = new ArrayList<Integer>();void gameStart() {setLocation();Player p1 = new Player();int allNum;while(!locationCell.isEmpty()) {System.out.println("please input your guess:");p1.guess();int guessNum = p1.getGuessNum();System.out.println("your number is "+guessNum);if(locationCell.contains(guessNum)){System.out.println("hit");locationCell.remove((Integer)guessNum);}else {System.out.println("miss");}}System.out.println("Hit all!");allNum = p1.getAllNum();System.out.println("your guess : "+allNum+" times.");}private void setLocation() {int n = (int)(Math.random()*8);for(int i=0;i<3;i++)locationCell.add(n+i);}
}
GameDrive类:
public class ShipHitDrive {public static void main(String[] args) {// TODO Auto-generated method stubShipHitGame game = new ShipHitGame();game.gameStart();}}
五、总结
1.收获了面向对象编程体验,整个游戏有2个对象:Player 和 Game,然后二者在整个游戏中担任的角色和动作体现达到整个游戏要求;
2. ArrayList<>基本运用:
a: 声明与初始化: ArrayList<Object> locationCell = new ArrayList<Object>();
b. 当ArrayList remove 其中对象Integer时,如果直接输入Int 会报错,要转换为对象Integer.
Java实践(一)之击船游戏相关推荐
- 我的世界java一直点不开_游戏我的世界点击启动没反应的解决办法
如果当你遇到启动游戏后无法打开游戏,甚至游戏没有任何反应时,可以尝试以下方法解决. 1.首先确认你的电脑是否安装了JAVA程序,如果没有就去装一个(直接网页搜索按提示安装即可). 2.如果即使安装了J ...
- 【java毕业设计】基于java+Socket+Eclipse的坦克大战游戏设计与实现(毕业论文+程序源码)——坦克大战游戏
基于java+Socket+Eclipse的坦克大战游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Socket+Eclipse的坦克大战游戏设计与实现,文章末尾附有本毕业设 ...
- 【java毕业设计】基于java+swing+Eclipse的推箱子游戏设计与实现(毕业论文+程序源码)——推箱子游戏
基于java+swing+Eclipse的推箱子游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+swing+Eclipse的推箱子游戏设计与实现,文章末尾附有本毕业设计的论文 ...
- java毕业设计——基于java+J2ME+sqlserver的打飞机游戏设计与实现(毕业论文+程序源码)——打飞机游戏
基于java+J2ME+sqlserver的打飞机游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+J2ME+sqlserver的打飞机游戏设计与实现,文章末尾附有本毕业设计的 ...
- 北邮自考JAVA实践考试
昨天参加了北邮java实践考试,考试时间一小时,两个题.记录一下. 第一个题是图形化界面的题. 两个文本框,两个按钮,一个按钮写字符串反转,另一个写关闭.点击字符串反转按钮,文本框一的内容,会反转出现 ...
- 对对碰java_Java开发学习之用Java打造一款对对碰游戏(下篇)
本文主要向大家介绍了Java开发学习之用Java打造一款对对碰游戏,通过具体的内容向大家展现,希望对大家Java开发的学习有所帮助. 在之前的文章介绍了对对碰游戏的理论部分和介绍了JLabel.JBu ...
- 横版java_Project4 自己用java写的横版格斗游戏
功能还不是很复杂
可以作为参考~ Other Games 其他 238万源代码下载- www.pudn.com...
文件名称: Project4下载 收藏√ [ 5 4 3 2 1 ] 开发工具: Java 文件大小: 5963 KB 上传时间: 2013-07-17 下载次数: 4 提 供 者: lyk ...
- 基于Java+Swing实现《扫雷》游戏
基于Java+Swing实现<扫雷>游戏 一.系统介绍 二.功能展示 三.其他系统 四.获取源码 一.系统介绍 windows自带的游戏<扫雷>是陪伴了无数人的经典游戏,本程序 ...
- 祖玛java代码_androidzuma 基于java开发的安卓祖玛龙珠游戏代码,可帮助 的 学习。 Develop 238万源代码下载- www.pudn.com...
文件名称: androidzuma下载 收藏√ [ 5 4 3 2 1 ] 开发工具: Java 文件大小: 1174 KB 上传时间: 2013-11-27 下载次数: 1 提 供 者: ...
最新文章
- Fckeditor常见漏洞的挖掘与利用整理汇总
- Quartus II14.1安装教程
- 【转载】从30岁到35岁,为你的生命多积累一些厚度
- 终于知道以后该咋办了!
- mysql科目成绩百分比_Mysql学习经验总结【2】
- linux常用命令技巧
- 28-地理空间数据云下载
- 可能是目前最全的《Android面试题及解析》(379页)
- 服务器虚拟化后有几个io地址,CPU虚拟化,内存虚拟化和IO虚拟化
- gmm聚类python_GMM-实现聚类的代码示例
- 震碎认知!将原理融会贯通到顶点的SpringBoot实战项目,面试涨薪的神器
- 区块宝周报:区块链一周大事排行榜10.16
- 解决safari浏览器拦截window.open
- 第五章、epub文件处理 -- 解压epub文件
- 未来计算机畅想英语作文,畅想未来的生活life in the future
- python爬取笔趣阁
- How Broswer Work
- 可见性,原子性,有序性的源头(一)
- python设计模式(一)创建型模式
- 电磁场与电磁波(二、电磁场的基本规律)
热门文章
- 669. 修剪二叉搜索树
- HTML获取动态音乐,使用Html5绘制动感音乐频谱教程
- kepware KEPServerEX与西门子1200通讯(OPC UA)
- 【Scratch】青少年蓝桥杯_每日一题_12.09_地球绕太阳转,月球绕地球转
- mybatis的oracle批量添加,Mybatis实现Oracle批量插入
- 电感(29)之铁氧体磁珠工作原理透彻详解
- 轻松学习JavaScript二十二:DOM编程学习之节点操作
- 轻松学习JavaScript二十:DOM编程学习之获取节点
- Java基础【之】JDK环境配置(Windwos)
- NTR1czU1bTk= 1