我正在使用ACM库在

Java中编写一个简单的战舰游戏.

游戏开始后,应该将船只放在画布上的随机位置,但问题是船只可能会互相覆盖,这在游戏中是不允许的.如何避免将船放在彼此之上?

我的代码是:

private void putSmallShips() {

for (int i = 0; i < SMALL_SHIP_QUANTITY; i++){

smallShip = new GRect(SMALL_SHIP_WIDTH,SHIP_HEIGHT);

int x = rgen.nextInt(10,510);

int y = rgen.nextInt(10,510);

while (true){

gobj = getElementAt(x,y);

if (gobj == null) break;

x = rgen.nextInt(10,510);

y = rgen.nextInt(10,510);

}

smallShip.setLocation(x,y);

add(smallShip);

}

}

private void putMiddleShips() {

for (int i = 0; i < MIDDLE_SHIP_QUANTITY; i++){

middleShip = new GRect(MIDDLE_SHIP_WIDTH,530);

int y = rgen.nextInt(10,530);

while (true){

gobj = getElementAt(x,y);

if (gobj == null) break;

System.out.println("opa!");

x = rgen.nextInt(10,530);

y = rgen.nextInt(10,530);

}

x = x + i * 10;

y = y + i * 10;

middleShip.setLocation(x,y);

add(middleShip);

}

}

private void putBigShips() {

for (int i = 0; i < BIG_SHIP_QUANTITY; i++){

bigShip = new GRect(BIG_SHIP_WIDTH,550);

int y = rgen.nextInt(10,550);

while (true){

gobj = getElementAt(x,550);

y = rgen.nextInt(10,550);

}

bigShip.setLocation(x,y);

add(bigShip);

}

}

如你所见,我在for循环中放了一个while循环,但它没有帮助.

用java编写战舰 游戏吗_java – 战舰游戏 – 船舶重叠相关推荐

  1. 【源码+教程】Java课设项目_12款最热最新Java游戏项目_Java游戏开发_Java小游戏_飞翔的小鸟_王者荣耀_超级玛丽_推箱子_黄金矿工_贪吃蛇

    马上就要期末了,同学们课设做的如何了呢?本篇为大家带来了12款热门Java小游戏项目的源码和教程,助力大家顺利迎接暑假![源码+教程]Java课设项目_12款最热最新Java游戏项目_Java游戏开发 ...

  2. Java 编写推箱子报告,推箱子游戏用java怎么去写

    推箱子游戏用java怎么去写 发布时间:2020-06-22 16:31:07 来源:亿速云 阅读:100 作者:清晨 这篇文章将为大家详细讲解有关推箱子游戏用java怎么写,小编觉得挺实用的,因此分 ...

  3. Java ME游戏编程_Java ME游戏编程(第2版)

    Java ME游戏编程(第2版) 作者:(美)帕特里克(Patrick,J.J.)著 出版日期:2009年03月 文件大小:25.45M 支持设备: ¥25.00在线试读 适用客户端: 言商书局 iP ...

  4. 基于java设计小游戏目的_java小游戏设计

    华北科技学院计算机学院综合性实验 实 验 报 告 课程名称 JA VA A 程序设计 实验学期 20 14 至 20 15 学年 第 1 学期 学生所在院部 计算机学院 年级 专业班级 学生姓名 学号 ...

  5. java吃豆游戏_利用java编写的精灵吃豆的游戏

    学完线程的时候做了一个精灵吃豆的小游戏. 窗体类: package www.csdn.net.zuoye; //用窗体实现精灵吃豆子的小游戏 import java.awt.Color; import ...

  6. java输入数量扑克牌排序_Java扑克游戏(多人多牌数比较游戏)的实现

    具体实现步骤如下: 实现扑克Card类,用于储存扑克牌,1-13代表点数,4-1代表花色(黑桃,红桃,梅花,分块) 实现扑克列表CardList类,用于实现生成一副牌,洗牌,发牌的功能 实现玩家Pla ...

  7. java编写教师类输出_Java类和对象的区别和联系,超简单易懂!

    在面向对象的编程语言中,类和对象必然是最核心的特性之一.本文主要介绍Java中的类和对象. 示例 以班级成员为例,班上有小红.小明.小李,还有王老师.张老师和魏老师,我们认为他们都属于"人类 ...

  8. java弹弹球实验报告_Java弹球游戏实验报告—chen

    Java弹球游戏实验报告-chen 课 程 设 计 报 告 题 目 弹球小游戏 姓 名 方成 学 号 20 专 业 java 指导教师 陈华恩 2013年 12 月 30 目录 一.实验目的2 二.需 ...

  9. Java 编写推箱子报告_Java推箱子怎么写啊?

    展开全部 这是我之前写的一篇java实现推箱子算法的文章,简单的给你看一下: <推箱子游戏>是一款益智32313133353236313431303231363533e59b9ee7ad9 ...

最新文章

  1. 当一个解决方案下面有多个项目时,如果设置启动项?
  2. hadoop_单元测试Java Hadoop作业
  3. 判断二叉树是否是平衡二叉树(dp tree)
  4. 阻止浏览器自动填充input密码框
  5. php 字符串 中文,php 中文字符串截取乱码
  6. 面向Tableau开发人员的Python简要介绍(第2部分)
  7. 结不起婚生不起娃的低欲望社会来了?这份自救指南拿走不谢!
  8. table中的td内容过长显示为固定长度,多余部分用省略号代替
  9. 电子围栏原理解析---原理
  10. RouteDebug.dll
  11. 当使用tensorflow时出现“the requested device apperas to be a GPU, but CUDA is not enabled”的解决办法
  12. 给android开发者的rx,给Android开发者的RxJava 详解,解你多年困扰!
  13. UDK开发环境搭建完全流程
  14. tree 树 搜索关键字
  15. [2018大数据年终总决赛一等奖]金融市场板块划分与轮动规律挖掘与可视化问题
  16. mysql中获取时间的年月日_MySQL如何获取一个指定日期中的年份信息(YEAR函数)呢?...
  17. booster 框架学习(一)
  18. 网上买电信电话卡又被欺骗百元
  19. 关于Office365邮箱附件大小限制问题
  20. 使用Epubor Ultimate将Kindle电子书导出为PDF(仅Windows)

热门文章

  1. 终于有人把计算机视觉讲明白了
  2. 把「我的世界」马赛克变成逼真大片,英伟达又出黑科技
  3. 入机器学习大坑,我需要什么样的数学水平?
  4. 7 Papers Radios | GCN大佬公开博士论文;谷歌提出扩展型BERT架构
  5. 2020年1月Github上最热门的开源项目
  6. Python3.5源码分析-内建模块builtins初始化
  7. 所谓移动IP是指(58);实现移动IP的关键技术是(59)。【答案】D B
  8. ACMNO.25 C语言-间隔输出 写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出1 9 9 0。 输入 一个四位数 输出 增加空格输出
  9. python错误提示:TypeError: ‘builtin_function_or_method‘ object is not subscriptable
  10. 基于Pytorch的从零开始的目标检测 | 附源码