佰落暑期java自学记录-11
记录时间:2019-8-3
记录内容摘要:
用图形对话框来实现皇帝选妃

今天借助图形对话框来代替文本对话;实现皇帝选妃的图形对话框。
合理调试音乐,图片,对话框内容。

public class Kingpro
{public static void main(String[] args) throws MalformedURLException, InterruptedException {
//      Scanner input = new Scanner(System.in);AudioClip sound = Applet.newAudioClip(new File("皇帝选妃音效\\背景音乐.wav").toURL());sound.play();//开始界面JOptionPane.showMessageDialog(null, "欢迎来到皇帝选妃游戏", "游戏开始",0, new ImageIcon("images\\title.jpg"));int count = 5;         //存放当前娘娘的总数int currday = 1;    //游戏进行到了第几天final int DAY_COUNT = 10;   //游戏一共进行10天int choice;          //存放用户选择int tempCount;      //临时变量,存放好感度低于60的个数int index = -1;      //用来存放删除,查找时的索引String name = null ;     //存放用户输入的姓名Object op ;//姓名数组,最多容纳六个字符串,每个字符串的最大长度位8个字符(英文)String[] names = {"西施","貂蝉","王昭君","杨玉环","赵飞燕",""};//级别数组,最多容纳五个字符串,每个字符串的最大长度位8个字符(英文)String[] levelNames = {"贵人","嫔妃","贵妃","皇贵妃","皇后",""};//用来存放妃子的等级,与leaveName联用,-1表示未启用int level[] = { 0, 0, 0, 0, 0, -1};//用来存放每个妃子的好感度,-1表示未启用int loves[] = {100, 100, 100, 100, 100, -1};do{//主界面String menu = "1、皇帝下旨选妃\n2、翻牌宠幸\n3、打入冷宫!\n4、朕的爱妃呢?\n陛下请选择:";op = JOptionPane.showInputDialog(null, menu, "游戏进行到第" + currday +"天", 0, new ImageIcon("images\\宝座.jpg"), new String[] {"1","2","3","4"}, 1);if(op == null){currday ++;continue;}elsechoice = Integer.parseInt(op.toString());sound.stop();switch(choice){case 1://新增妃子,其他人好感度-10sound = Applet.newAudioClip(new File("皇帝选妃音效/选妃.wav").toURL());sound.play();//首先判断数组长度是否可以增加元素if(count >= level.length){JOptionPane.showMessageDialog(null, "后宫人满为患,皇帝还是在等等吧", "后宫满员",0,new ImageIcon("images/人满.jpg"));break;}op = JOptionPane.showInputDialog(null, "请皇上下旨选妃", "下旨选妃", 0, new ImageIcon("images/待选妃子.jpg"),new String[] {"褒姒","钟无艳","陈圆圆","苏小小"}, 1);name = op.toString();//将新增元素放在count处;names[count] = name;level[count] = 0;loves[count] = 100;JOptionPane.showMessageDialog(null, "皇帝又选妃了,众爱妃好感度-10", "", 0, new ImageIcon("images/打入冷宫.jpg"));for(int i = 0; i < count; i ++){loves[i] -= 10;}count ++;break;case 2://翻拍宠幸,宠幸的妃子好感度+20,其他人-10;sound.stop();sound = Applet.newAudioClip(new File("皇帝选妃音效/翻牌.wav").toURL());sound.play();op = JOptionPane.showInputDialog(null, "请选择宠幸的妃子", "翻牌宠幸", 0 , new ImageIcon("images/选妃翻牌.jpg"),names,1);name = op.toString();for(int i = 0; i < count; i ++){if(name.equals(names[i])){index = i;continue;}loves[i] -= 10;}if(index == -1)//没有找到JOptionPane.showMessageDialog(null, "皇帝不要做梦了,你没有这个妃子!", "找不到" + name +"妃子!", 0, new ImageIcon("images/做梦.jpg"));else{loves[index] += 20;//每临幸一次,级别提升1级,最高为4级,皇后;if(level[index] == 4)level[index] = 4;elselevel[index] ++;JOptionPane.showMessageDialog(null, "Duang~"+ names[index] +"等级提升为:"+ levelNames[level[index]] +"\n憔悴容华怯对春,寂寥宫殿锁闭门。\n此身却羡宫中树\n其她娘娘好感-10!", "翻牌结算", 0, new ImageIcon("images/嬉戏.jpg"));}index = -1;break;case 3://打入冷宫,执行删除操作,其她妃子好感度+10;sound.stop();sound = Applet.newAudioClip(new File("皇帝选妃音效/冷宫.wav").toURL());sound.play();op = JOptionPane.showInputDialog(null,"皇上要将哪位娘娘打入冷宫呢?", "打入冷宫", 0, new ImageIcon("images/打入冷宫.jpg"), names, null);name = op.toString();for(int i = 0; i < count;i ++){if(name.equals(names[i])){index = i;break;}}if(index == -1)//未找到要删除的姓名{JOptionPane.showMessageDialog(null, "虚惊一场,无人打入冷宫,该吃吃该喝喝~", "", 0, new ImageIcon("image/嬉戏.jpg"));break;}//执行删除操作for(int i = index; i < count - 1; i ++){names[i] = names[i + 1];level[i] = level[i + 1];loves[i] = loves[i + 1];}count--;//总人数-1index = -1;//变量用完重置为初始值,方便下次使用JOptionPane.showMessageDialog(null, name + "已被打入冷宫!\n人情冷暖,所有娘娘好感度+10", "成功打入冷宫!", 0, new ImageIcon("images/成功打入冷宫.jpg"));for(int i = 0; i < count; i++){loves[i] += 10;}index = -1;break;case 4://姓名查找,好感+10sound.stop();sound = Applet.newAudioClip(new File("皇帝选妃音效/一笑倾城.wav").toURL());sound.play();op = JOptionPane.showInputDialog(null, "请选择搜寻的妃子!", "搜寻妃子", 0,new ImageIcon("images/朕的爱妃呢.jpg"), names , null);name =op.toString();for(int i = 0; i < count; i ++){if(name.equals(names[i])){JOptionPane.showMessageDialog(null, "微微一笑很倾城,"+ name +"娘娘的好感度+10",  name +"娘娘在此",0,new ImageIcon("images/"+ name +".jpg"));loves[i] += 10;break;}}break;default: JOptionPane.showMessageDialog(null, "皇帝不要做梦了,你没有这个妃子!", "找不到" + name +"妃子!", 0, new ImageIcon("images/做梦.jpg"));}//end of switchsound.stop();sound = Applet.newAudioClip(new File("皇帝选妃音效\\背景音乐.wav").toURL());sound.play();String daymessage = "";//输出每日结算的娘娘信息for(int i = 0; i < count; i ++){daymessage += String.format("%s    %s    %d\n", names[i],levelNames[level[i]],loves[i]);}JOptionPane.showMessageDialog(null, daymessage, "每日结算", 0, new ImageIcon("images/选妃.jpg"));currday ++;//每天结算好感度,一旦有三个或以上的嫔妃好感度低于60,则发生暴乱,游戏结束tempCount = 0;//存放好感度低于60的个数for(int i = 0; i < count; i++){if(loves[i] < 60)tempCount ++;}if(tempCount >= 3){//借用时间函数来输出相应时间Calendar cal = Calendar.getInstance();JOptionPane.showMessageDialog(null, "皇上荒淫无度,后宫叛乱!\n"+"公元"+cal.get(Calendar.YEAR)+"年"+(cal.get(Calendar.MONTH) + 1)+"月" +cal.get(Calendar.DATE)+"日皇帝驾崩!共执政"+currday+"天", "皇帝驾崩",0, new ImageIcon("images/皇上被害.jpg"));System.exit(0);}}while(currday < DAY_COUNT);//当天数达到设定天数时结束sound.stop();sound = Applet.newAudioClip(new File("皇帝选妃音效\\背景音乐.wav").toURL());sound.play();String end = "";//输出游戏结束的结算信息for(int i = 0; i < count; i ++){end += String.format("%s    %s    %d\n", names[i],levelNames[level[i]],loves[i]);}JOptionPane.showMessageDialog(null, end, "游戏结束", 0, new ImageIcon("images/选妃.jpg"));System.exit(0);}

佰落暑期java自学记录-11相关推荐

  1. 佰落暑期java自学记录-1

    佰落暑期java自学记录-1 自我介绍: 我是一名准大二学生,来自桂林某高校. 大一一个学期也只是按照学校安排按部就班,并没有什么特别发展.早就听闻java在编程界的大名,故借暑假时间在家自学java ...

  2. 【错误记录】Android Studio 编译报错 ( Could not determine java version from ‘11.0.8‘. ② | 升级 Gradle 版本 )

    文章目录 一.报错信息 二.解决方案 解决 Could not determine java version from '11.0.8'. 问题 , 有两种方案 , 方案一 : Android Stu ...

  3. java多线程阶乘_【java学习记录】11.用多线程实现阶乘的计算过程和结果的读取(thread类ReadThread )...

    (源码在上传的压缩包"[java学习记录]11.多线程实现阶乘计算(Thread类和Runnable接口)"中可看到,该压缩包可下载)java * 采用Thread类的子类实现线程 ...

  4. 【错误记录】Android Studio 编译报错 ( Could not determine java version from ‘11.0.8‘. | Android Studio 降级 )

    文章目录 一.报错信息 二.解决方案 一.报错信息 编译 VirtualApp 报如下错误 : Could not determine java version from '11.0.8'.The p ...

  5. 【错误记录】Android Studio 编译报错 ( Could not determine java version from ‘11.0.8‘. | 仅做参考 | 没有解决实际问题 )

    文章目录 一.报错信息 二.解决方案 一.报错信息 编译 VirtualApp 报如下错误 : Could not determine java version from '11.0.8'.The p ...

  6. java 数组 参数 ppt,Java自学课件-数组.ppt

    <Java自学课件-数组.ppt>由会员分享,可在线阅读,更多相关<Java自学课件-数组.ppt(23页珍藏版)>请在人人文库网上搜索. 1.Java程序设计,第6章 数组, ...

  7. 五万字15张导图Java自学路线,小白零基础入门,程序员进阶,收藏这篇就够了

    本文收录于<技术专家修炼> 文中配套资料合集 路线导图高清源文件 点击跳转到文末点击底部卡片回复「资料」领取 哈喽,大家好,我是一条~ 最近粉丝问我有没有Java自学路线,有了方向才能按图 ...

  8. 零基础 Java 自学之路(2021年最新版)

    前言 无论你是否想自学 Java,认真看完本文,你以后的职场生涯至少少走1年弯路. 本文会持续更新,建议收藏. 初衷 在 CSDN 上经常有同学私聊我询问 "如何自学 Java". ...

  9. LeetCode刷题记录11——290. Word Pattern(easy)

    LeetCode刷题记录11--290. Word Pattern(easy) 目录 LeetCode刷题记录11--290. Word Pattern(easy) 题目 语言 思路 源码 后记 题目 ...

  10. 机械转行java自学经历,零基础学java,血泪总结的干货

    机械转行java自学经历,零基础学java,血泪总结的干货 1.我为什么转行 2.转行之路 3.面试之路 自学路上的网站 Java教程 实践项目一站式学习 bilibili 自学书籍 <Java ...

最新文章

  1. 【iCore3 双核心板】例程二十一:LAN_TCPS实验——以太网数据传输
  2. NSUserDefaults 简介,使用 NSUserDefaults 存储自定义对象
  3. TabActivity中的Tab标签详细设置
  4. 【游山玩水】三清山旅游行程
  5. ubuntu16.04 配置nginx支持redis
  6. WCF消息之XmlDictionaryWriter
  7. Vue开发中有着原声app效果的滚动的第三方插件better-scroll在github的上面的运用方法及地址
  8. Switch语句的参数是什么类型的?
  9. postman rpc本地调用_什么是RPC,你知道嘛?
  10. 数据湖实践 | Iceberg 在网易云音乐的实践
  11. 新手看Mockplus
  12. 介绍几种初学者学习电脑入门知识的方法
  13. 博客园添加导航目录(转)
  14. 鸿蒙系统投影仪,投影仪有系统和无系统的区别 当贝OS好在哪里?体验完明白了!...
  15. 类之间的继承java,Java类与类之间的继承关系
  16. Word插入的表格如何拆分单元格
  17. 计算机 教授级职称评定,工程技术应用研究员(俗称正高,教授级高工等等)职称评定...
  18. Android恢复出厂命令
  19. 懂商业的技术合伙人(1):你是怎样成为打工仔的
  20. 2.4.2 小型机状态

热门文章

  1. mysql 导入工具 php_MySQL数据导入导出方法与工具介绍_PHP教程
  2. 网络服务(5)——usb网卡名称修改(RK3399 Ubuntu)
  3. 【华为OD机试真题 JS】统计射击比赛成绩
  4. 系统安装-U盘安装Windows XP SP3纯净版简述
  5. 小米手机通过USB连接电脑,共享使用电脑的网络
  6. 项目管理要分解目标,明确每个人的任务
  7. 5月27日股市趋势追踪策略分析
  8. 利用java打印心型图案
  9. python 对称加密_常见加密方式及Python实现
  10. 致远OA漏洞学习——帆软组件 ReportServer 目录遍历漏洞