模拟回合制打怪游戏

文章目录

  • 一、问题具体描述
  • 二、分析
  • 三、代码编写

注:这是随机数的提升练习,不会生成随机数的 点这里。

一、问题具体描述

打怪游戏:玩家、怪物

玩家:血量值315

怪物:血量值500

玩家和怪物互砍。

玩家每次攻击怪物产生5~8点伤害,怪物每次攻击玩家产生3~5点伤害。

采用回合制(玩家和怪物互砍一刀为一个回合)。

一方挂掉,游戏结束。

要求:用程序模拟战斗过程。

二、分析

(1)可以定义两个变量,分别代表玩家(315)和怪物(500)。

(2)打斗过程是反复执行的,就要用到循环。

循环成立的条件:玩家和怪物都活着。

循环里面执行:玩家和怪物互砍。

(3)玩家攻击怪物

①生成玩家攻击力(5~8)。

②怪物血量值对应减少。

③输出:玩家攻击怪物,怪物掉了多少血量,还剩多少血量。

(4)怪物攻击玩家

①生成怪物攻击力(3~5)。

②玩家血量值对应减少。

③输出:怪物攻击玩家,玩家掉了多少血量,还剩多少血量。

(5)循环之后,判断玩家和怪物是否都活着,若都活着,就再循环,否则结束循环。

(6)游戏结束。

三、代码编写

(1)根据上面的分析,我们不难写出代码:

package Test1;public class demo2 {public static void main(String[] args) {/* 打怪游戏 *///1、定义两个变量,分别赋值相应的血量值int w=315; //玩家int g=500; //怪物int i=1;//回合计数变量//2、用循环模拟打斗回合while(w>0 && g>0){ //循环条件是两者都活着//循环里面执行两者互砍System.out.println("----------第"+i+"回合----------");i++;//每一次回合之后,让回合计数变量加一//3、玩家攻击怪物//生成玩家攻击力(5~8)int wg=(int)(Math.random()*4)+5;//减少怪物血量值g-=wg;//输出结果System.out.println("玩家攻击怪物,怪物掉了"+wg+"点血量值,"+"还剩"+g+"点血量值");//4、怪物攻击玩家//生成怪物攻击力(3~5)int gw=(int)(Math.random()*3+3);//减少玩家血量值w-=gw;//输出结果System.out.println("怪物攻击玩家,玩家掉了"+gw+"点血量值,"+"还剩"+w+"点血量值");}}
}

看一下执行结果,会出一点小意外:

我们会发现,最后一个回合中,怪物血量已经减少为负值了,即已经挂掉了。

但是最后还是攻击了玩家,“诈尸”了?

按照道理,本不应该再攻击玩家了。

(2)那刚才编写的代码究竟哪里出错了呢?

Java基础--用程序模拟打怪游戏相关推荐

  1. niit java证书_NIIT认证Java基础全真模拟试题

    NIIT认证Java基础全真模拟试题 一.判断题(每题2分,共16分) 1. Java的字符类型采用的是Unicode编码,但所占字节由具体软硬件环境决定. ( ) 2.Java的源代码中定义几个类, ...

  2. Java基础(飞机大战小游戏)

    学校课程作品,Java简易飞机大战 涉及Java基础知识,通过编写对基础能有不错的巩固和拓展. 首先,先编写出游戏的窗口.游戏获胜条件以及main方法 package com.Mygame3.Plan ...

  3. 【Java基础项目】经典小游戏黄金矿工制作

    Java初学者的小伙伴们,相信大家肯定缺少很多的练手项目吧!今天就给大家推荐一款特别好上手的一个Java小游戏--黄金矿工. 大家听到这个名字的时候,童年的回忆肯定一下子,涌上心头,那如果让大家制作一 ...

  4. java基础应用程序超市收银_超市收银程序(JAVA课程设计 2011)

    <超市收银程序(JAVA课程设计 2011)>由会员分享,可在线阅读,更多相关<超市收银程序(JAVA课程设计 2011)(15页珍藏版)>请在人人文库网上搜索. 1.软零件研 ...

  5. 四 【java基础】 程序流程控制- 分支结构

    目录 01 程序流程控制概述 02 顺序结构 03 分支结构 3.1 if-else 结构 3.2 从键盘输入数据(Scanner) 3.2 Switch-case结构 01 程序流程控制概述 流程控 ...

  6. python实现dnf自动刷怪_【python】模拟打怪游戏:怪兽(monster),玩家(hero)

    游戏模式: 假设有怪兽(monster)和英雄(hero)两个角色,二者为敌对状态 假设两个角色初始血量为100,攻击力的伤害服从随机分布(7,17),二者相互攻击,判断谁获胜? # # 定义精灵 c ...

  7. Java基础练习项目——英雄小游戏

    Java日报 部门:**大数据开发六部 姓名:cqmfx 日期:2020.10.27 练习--打怪小游戏 /*** 2020/10/27** @author cqmfx(阡陌飞絮)*/ import ...

  8. java界面小程序-模拟算卦六爻

    六爻八卦预测,是古人观察大自然运行规律总结出来的一项法则.起源于西汉京房的纳甲体系.起初是用50根蓍草,到宋朝时才有了"以钱代蓍".预测人将三枚铜钱放于手中,双手紧扣,思其所测之事 ...

  9. java基础案例-购物车模拟

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.需求 二.分析 三.代码 四.效果图 五.总结 一.需求 1.模拟购物车模块的功能,需要实现添加商品到购物车中去,同时需 ...

最新文章

  1. CB Insights发布最新AI 100排名,包含100家最有前景的AI初创公司
  2. 关于Android模拟器访问本地地址(转)
  3. Bootstrap -- 插件: 按钮状态、折叠样式、轮播样式
  4. 从美图、4399生根,到趣店、瑞幸落户,厦门离中国的西雅图还有多远?
  5. Android library projects cannot be launched问题的解决
  6. 教你打造Silverlight超酷翻页实例
  7. 支付牌照再获成功续展!支付宝:感谢央行的信任和认可
  8. 一行 Python 实现并行化 -- 日常多线程操作的新思路
  9. 项目团队中的五种人(之一)
  10. FPGA原理图设计----Arria II 系列FPGA设计(SATA)
  11. python三维转换教程_Python科学计算三维可视化【完结】
  12. Pygame实现”走四棋儿“双人对战小游戏
  13. 抖音是怎么做出来的?| 创业故事
  14. 科学道德与学风-2021雨课堂答案-第4章
  15. 批量修改图幅lisp_【CAD应用技巧】批量自动修改图形文件的程序
  16. oracle 错误实例分析(ORA-01078)
  17. Autoware感知瞎学笔记(一)lidar_kf_contour_track
  18. java版红石电路修改_我的世界红石数模互换电路【红石小课堂】
  19. python怎么打开图片_新手教学——python怎么打开图片
  20. 双指针、BFS与图论

热门文章

  1. 学习笔记 | 如何将 MathType 6.0 插入 Microsoft office 2016
  2. Visio 2016 MSI 与 Office 2016 Click-to-Run 冲突导致无法安装的解决方法
  3. 华章IT图书书讯(2012年第3期)
  4. 三维荧光平行因子学习记录--(二)荧光区域积分(FRI)
  5. Android studio实验体会,Android Studio 使用心得体会
  6. 关于ASL查找成功/失败的总结
  7. island of java_专业英语试卷
  8. H2 数据库入门和基本使用
  9. 版本中的GA的缩写和意思
  10. checkpoint机制,show engine innodb status