来源:《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实践(一)之击船游戏相关推荐

  1. 我的世界java一直点不开_游戏我的世界点击启动没反应的解决办法

    如果当你遇到启动游戏后无法打开游戏,甚至游戏没有任何反应时,可以尝试以下方法解决. 1.首先确认你的电脑是否安装了JAVA程序,如果没有就去装一个(直接网页搜索按提示安装即可). 2.如果即使安装了J ...

  2. 【java毕业设计】基于java+Socket+Eclipse的坦克大战游戏设计与实现(毕业论文+程序源码)——坦克大战游戏

    基于java+Socket+Eclipse的坦克大战游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Socket+Eclipse的坦克大战游戏设计与实现,文章末尾附有本毕业设 ...

  3. 【java毕业设计】基于java+swing+Eclipse的推箱子游戏设计与实现(毕业论文+程序源码)——推箱子游戏

    基于java+swing+Eclipse的推箱子游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+swing+Eclipse的推箱子游戏设计与实现,文章末尾附有本毕业设计的论文 ...

  4. java毕业设计——基于java+J2ME+sqlserver的打飞机游戏设计与实现(毕业论文+程序源码)——打飞机游戏

    基于java+J2ME+sqlserver的打飞机游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+J2ME+sqlserver的打飞机游戏设计与实现,文章末尾附有本毕业设计的 ...

  5. 北邮自考JAVA实践考试

    昨天参加了北邮java实践考试,考试时间一小时,两个题.记录一下. 第一个题是图形化界面的题. 两个文本框,两个按钮,一个按钮写字符串反转,另一个写关闭.点击字符串反转按钮,文本框一的内容,会反转出现 ...

  6. 对对碰java_Java开发学习之用Java打造一款对对碰游戏(下篇)

    本文主要向大家介绍了Java开发学习之用Java打造一款对对碰游戏,通过具体的内容向大家展现,希望对大家Java开发的学习有所帮助. 在之前的文章介绍了对对碰游戏的理论部分和介绍了JLabel.JBu ...

  7. 横版java_Project4 自己用java写的横版格斗游戏 功能还不是很复杂 可以作为参考~ Other Games 其他 238万源代码下载- www.pudn.com...

    文件名称: Project4下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 5963 KB 上传时间: 2013-07-17 下载次数: 4 提 供 者: lyk ...

  8. 基于Java+Swing实现《扫雷》游戏

    基于Java+Swing实现<扫雷>游戏 一.系统介绍 二.功能展示 三.其他系统 四.获取源码 一.系统介绍 windows自带的游戏<扫雷>是陪伴了无数人的经典游戏,本程序 ...

  9. 祖玛java代码_androidzuma 基于java开发的安卓祖玛龙珠游戏代码,可帮助 的 学习。 Develop 238万源代码下载- www.pudn.com...

    文件名称: androidzuma下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 1174 KB 上传时间: 2013-11-27 下载次数: 1 提 供 者: ...

最新文章

  1. Fckeditor常见漏洞的挖掘与利用整理汇总
  2. Quartus II14.1安装教程
  3. 【转载】从30岁到35岁,为你的生命多积累一些厚度
  4. 终于知道以后该咋办了!
  5. mysql科目成绩百分比_Mysql学习经验总结【2】
  6. linux常用命令技巧
  7. 28-地理空间数据云下载
  8. 可能是目前最全的《Android面试题及解析》(379页)
  9. 服务器虚拟化后有几个io地址,CPU虚拟化,内存虚拟化和IO虚拟化
  10. gmm聚类python_GMM-实现聚类的代码示例
  11. 震碎认知!将原理融会贯通到顶点的SpringBoot实战项目,面试涨薪的神器
  12. 区块宝周报:区块链一周大事排行榜10.16
  13. 解决safari浏览器拦截window.open
  14. 第五章、epub文件处理 -- 解压epub文件
  15. 未来计算机畅想英语作文,畅想未来的生活life in the future
  16. python爬取笔趣阁
  17. How Broswer Work
  18. 可见性,原子性,有序性的源头(一)
  19. python设计模式(一)创建型模式
  20. 电磁场与电磁波(二、电磁场的基本规律)

热门文章

  1. 669. 修剪二叉搜索树
  2. HTML获取动态音乐,使用Html5绘制动感音乐频谱教程
  3. kepware KEPServerEX与西门子1200通讯(OPC UA)
  4. 【Scratch】青少年蓝桥杯_每日一题_12.09_地球绕太阳转,月球绕地球转
  5. mybatis的oracle批量添加,Mybatis实现Oracle批量插入
  6. 电感(29)之铁氧体磁珠工作原理透彻详解
  7. 轻松学习JavaScript二十二:DOM编程学习之节点操作
  8. 轻松学习JavaScript二十:DOM编程学习之获取节点
  9. Java基础【之】JDK环境配置(Windwos)
  10. NTR1czU1bTk= 1