一、题目:面向对象文字花钱格斗游戏
二、重难点:
1)掌握JavaBean的写法,及相关快捷键或插件生成。
包含缺省及含参构造器、getter和setter、成员方法等。
2)掌握创建对象、方法后的栈、堆、this内存变化。
三、感叹:
今天敲代码脖子疼……写if条件就很累。
笑,爱古风题材和双十一!
四、代码:
1)人物bean

import java.util.Random;public class Role {private String name;private int money;private char gender;private String face;String[] maleAppearance = {"面目清秀", "温文尔雅", "玉树临风", "风度翩翩", "英俊潇洒"};String[] femaleAppearance = {"沉鱼落雁", "闭月羞花", "倾国倾城", "仪态万千", "如花似玉"};//花钱描述String[] spend_desc = {"%s买了高性价比大容量滚筒洗衣机,%s的钱包受到了攻击","%s买了冰箱三开门 253升一级能效 节能变频,%s的钱包受到了攻击","%s买了电视 55E8 55英寸 2+32GB 4K超高清全面屏 智慧屏,%s的钱包受到了攻击","%s买了大1匹 云佳 新一级能效 变频冷暖 自清洁壁挂式空调,%s的钱包受到了攻击","%s买了洗碗机台式家用4-6套高温除菌烘干智能超快洗易安装刷碗机,%s的钱包受到了攻击","%s买了洗衣液和洁面慕斯,%s的钱包受到了攻击"};//被花钱的人感受描述String[] injure_desc = {"%s认为洒洒水啦","%s说明天不吃晚饭了","%s取消了买私人飞机的计划","%s痛苦地闷哼了一声","%s摇摇晃晃,辞退了管家","%s开始找贷款消息","%s把大别墅换成小房子","%s收拾行李回家啃老",};public Role() {}public Role(String name, int money, char gender) {this.name = name;this.money = money;this.gender = gender;setFace(gender);}public char getGender() {return gender;}public void setGender(char gender) {this.gender = gender;}public String getFace() {return face;}public void setFace(char gender) {Random r = new Random();if (gender == '男') {int index = r.nextInt(maleAppearance.length);this.face = maleAppearance[index];} else if (gender == '女') {int index = r.nextInt(femaleAppearance.length);this.face = femaleAppearance[index];} else {this.face = "面目狰狞";}}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getMoney() {return money;}public void setMoney(int money) {this.money = money;}//定义一个方法用于使用对方的钱public void spendMoney(Role role) {Random r = new Random();int index = r.nextInt(spend_desc.length);String shopping = spend_desc[index];//输出一个花钱的效果System.out.printf(shopping, this.getName(), role.getName());System.out.println();//每次花掉的钱int spend = r.nextInt(10000) + 1000;//剩余金钱int remainMoney = role.getMoney() - spend;//对剩余金钱做一个验证,如果为负数,就修改为0remainMoney = remainMoney < 0 ? 0 : remainMoney;//修改一下被花掉钱后那个人的金钱余额role.setMoney(remainMoney);//被花钱的描述if (remainMoney > 90000) {System.out.printf(injure_desc[0], role.getName());} else if (remainMoney > 80000 && remainMoney <= 90000) {System.out.printf(injure_desc[1], role.getName());} else if (remainMoney > 70000 && remainMoney <= 80000) {System.out.printf(injure_desc[2], role.getName());} else if (remainMoney > 60000 && remainMoney <= 70000) {System.out.printf(injure_desc[3], role.getName());} else if (remainMoney > 40000 && remainMoney <= 60000) {System.out.printf(injure_desc[4], role.getName());} else if (remainMoney > 20000 && remainMoney <= 40000) {System.out.printf(injure_desc[5], role.getName());} else if (remainMoney > 10000 && remainMoney <= 20000) {System.out.printf(injure_desc[6], role.getName());} else {System.out.printf(injure_desc[7], role.getName());}System.out.println();}public void showRoleInfo() {System.out.println("姓名为" + getName());System.out.println("余额为" + getMoney());System.out.println("性别为" + getGender());System.out.println("长相为" + getFace());}
}

2)花钱游戏

public class SpendMoneyGame {public static void main(String[] args) {//1.创建第一个角色Role r1 = new Role("尉迟轩", 100000, '男');//2.创建第二个角色Role r2 = new Role("晏乐儿", 100000, '女');//3.展示角色信息r1.showRoleInfo();r2.showRoleInfo();//4.开始花钱游戏while (true) {r1.spendMoney(r2);if (r2.getMoney() == 0) {System.out.println(r1.getName() + "花光了" + r2.getName() + "的钱");break;}r2.spendMoney(r1);if (r1.getMoney() == 0) {System.out.println(r2.getName() + "花光了" + r1.getName() + "的钱");break;}}}
}

五、效果:
虽然只是随机数,感觉情节还是很虐。┗|`O′|┛ 嗷~~

Java_题目_面向对象文字花钱格斗游戏相关推荐

  1. JAVA练习题17:文字版格斗游戏

    文字版格斗游戏 1. 规则:格斗游戏,每个游戏角色的姓名,血量,都不相同,在选定任务的时候(new对象的时候),这些信息就应该被确定下来 2. 举例: 姓名为:乔峰 姓名为:鸠摩智 血量为:100 血 ...

  2. Java系列 文字版格斗游戏

    写出两个对象 包括姓名和血量 然后赋予其方法,方法内容就是对对方角色进行攻击. 当血量为0后 游戏结束 (不一定非要按照我的方法 大概差不多能实现功能就行了) 我的编程分为两个类  这是Role类 ( ...

  3. Java学习-----文字版格斗游戏

    规则:格斗游戏,每个游戏角色的姓名,血量,都不相同,在选定任务的时候(new对象的时候),这些信息就应该被确定下来 我将它稍微修改了一下,改为可以键盘输入角色的名字和性别(血量的没写固定100,当然也 ...

  4. Java之文字版格斗游戏-乔峰PK鸠摩智

    package org.example;public class GameTest {public static void main(String[] args){/*文字格斗版游戏*///创建第一个 ...

  5. Java黑马程序员:文字版格斗游戏

    package 练习包;import java.lang.reflect.Member; import java.lang.reflect.Method;public class Day01 {pub ...

  6. Java_题目_抽奖的2种实现方法

    一.题目: 抽奖,分别有{2,588,888,1000,10000}五个奖金. 请使用代码模拟抽奖,打印出每个奖项.奖项的出现顺序要随机且不重复. 打印效果如下:可随机顺序. 888元的奖金被抽出. ...

  7. Java_题目_身份证号码信息查看

    一.题目: 身份证信息查看:321281202201011234 ->打印: 人物信息为: 出生年月日:2022年01月01日 性别为:男 二.重难点: 1.2位:省份 3.4位:城市 5.6位 ...

  8. java文字版格斗游戏。

    javabean类: package Test; import java.util.Random; class Role {     private String name;//创建角色属性      ...

  9. Java 文字版打斗游戏

    文章目录 一.题目描述 二.界面展示 1.第一次运行结果 英雄信息显示 攻击过程显示 2.第二次运行结果 英雄信息显示 攻击过程显示 三.功能实现 1.英雄类字段定义 2.长相描述定义 3.攻击方式和 ...

最新文章

  1. Python机器学习:训练Tesseract
  2. 网易云音乐的消息队列改造之路
  3. Science发现了改变情绪的大脑受体
  4. mysql mysqld_multi 单机多进程
  5. win7下设置cmd操作mysql的环境变量
  6. 安卓2.2系统上网设置
  7. 堆栈跟踪 堆栈跟踪_寻找缺少的堆栈跟踪
  8. AndroidStudio 3.4更新了啥?(转载)
  9. python子图之间的距离_python与图论的桥梁——igraph
  10. ECCV 2020 论文大盘点-图像与视频分割篇
  11. 3.程序员的自我修养---目标文件
  12. 占位智能家居市场,施耐德电气仅靠一个Wiser系统?
  13. OpenWRT - Makefile:31: *** missing separator. Stop.
  14. 【金猿产品展】沃丰科技GaussMind——用技术提升客户体验
  15. 卷积神经网络结构相关
  16. noip 2015 pj 普及组 第四题 推销员 salesman
  17. Android 和 iOS 实现录屏推流的方案整理
  18. linux手机刷机包制作工具_ROM制作工具如何制作手机刷机包?
  19. 软件工程结构化建模的方法和工具_软件工程导论复习题
  20. ElasticSearch入门

热门文章

  1. TCP连接的建立和释放过程详解(三次握手、四次挥手)
  2. 永澄:认知层次模型-道术器用
  3. flink案例之求TopN
  4. 你不知道的十个 JS 小技巧
  5. 浅谈SPA、SEO、SSR
  6. js 删除list中的某个元素 向list中添加某个元素
  7. O2O优惠券使用新人赛数据发掘工程
  8. *6-2 CCF 2015-03-3 节日
  9. logrotate - rotates, compresses, and mails system logs
  10. 多元统计分析及R语言建模(王斌会)第八、九、十章答案