Java快速入门-05-数组循环条件 实例《延禧攻略》
《延禧攻略》如此火爆,蹭蹭热度,用 JAVA 最基础的数组,循环,条件,输入/输出,做了一个简单的小游戏,帮助初学者巩固 JAVA 基础,注释非常详细
动态图展示:

xuanfei.java 源代码:
//包名根据自己包修改,可以没有
package xuanfei;
//用 Scanner 做输入
import java.util.Scanner;
//public 类
public class appMain {
//main函数
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//后宫娘娘数组
String[] nnNameArray = {"西施", "甄嬛", "貂蝉", "甄宓", "王昭君", "杨玉环", "", "", ""};
//娘娘的人数默认为 6
int nnCount = 6;
//默认游戏天数
int gameDays = 1;
//级别数组>依次增大,默认为 0 : 贵人
String[] levelNames = {"贵人", "嫔妃", "贵妃", "皇贵妃", "皇后"};
//每个娘娘对应的级别
int[] level = new int[10];
//对应每个娘娘的好感度,默认100
int[] loves = new int[10];
for (int i = 0; i < loves.length; i++) {
loves[i] = 100;
}
//进入游戏最多 10 天
while(gameDays <= 10) {
System.out.println("**********************************\n游戏进行到第 " + gameDays + " 天");
System.out.println("1、皇上下旨选妃\t\t(增加)");
System.out.println("2、翻牌宠幸\t\t(修改状态)");
System.out.println("3、打入冷宫\t\t(删除)");
System.out.println("4、查看所有爱妃\t\t(查找、修改状态)");
System.out.println("陛下请选择:");
int choice = input.nextInt();
switch(choice) {
case 1:
//增加娘娘,原有娘娘好感度都 -10
System.out.println("请输入娘娘的名称:");
String newName = input.next();
//1.在姓名数组增加,2.好感度数组
if(nnCount == nnNameArray.length) {
System.out.println("后宫已满!");
break;
}
nnNameArray[nnCount] = newName;
loves[nnCount] = 100;
//原有娘娘好感度都 -10
for (int i = 0; i < loves.length; i++) {
loves[i] -= 10;
}
nnCount++;
break;
case 2:
//翻牌宠幸,选中娘娘好感度 +10,提升级别,其他好感度 -10
for (int i = 0; i < nnCount; i++) {
System.out.print((i+1) + nnNameArray[i] + "\t");
}
System.out.println("\n请输入娘娘编号:");
int select = input.nextInt();
select--;
//好感度 +20
loves[select] += 20;
//其他好感度 -10
for (int i = 0; i < nnCount; i++) {
if(i != select) {
loves[i] -= 10;
}
}
System.out.println(nnNameArray[select] + "娘娘好感度 +20,提升级别为:" + level[select] + "其他娘娘好感度 -10");
//级别 +1
if(level[select] < 4) {
level[select] += 1;
}
break;
case 3:
break;
case 4:
System.out.println("名字" + "\t" + "级别"+ "\t" + "好感度");
System.out.println("-------------------------");
for (int i = 0; i < nnCount; i++) {
System.out.println(nnNameArray[i] + "\t" + levelNames[level[i]] + "\t" + loves[i]);
}
break;
default:
System.out.println("必须输入 1-4 之间的整数");
continue;
}//switch
gameDays++;
}//while
input.close();
//www.cnblogs.com/xpwi
}//main
}//class
粘贴请自行修改包名、类名
Java快速入门-05-数组循环条件 实例《延禧攻略》的更多相关文章
- java基础入门之数组循环初始化
/* Name:数组循环化 Power by Stuart Date:2015-4-23 */public class ArrayTest02{ public static void main (St ...
- Java快速入门-03-小知识汇总篇(全)
Java快速入门-03-小知识汇总篇(全) 前两篇介绍了JAVA入门的一系小知识,本篇介绍一些比较偏的,说不定什么时候会用到,有用记得 Mark 一下 快键键 常用快捷键(熟记) 快捷键 快捷键作用 ...
- Java快速入门-02-基础篇
Java快速入门-02-基础篇 上一篇应该已经让0基础的人对 Java 有了一些了解,接一篇更进一步 使用 Eclipse 快捷键 这个老师一般都经常提,但是自己不容易记住,慢慢熟练 快捷键 快捷键作 ...
- Java快速入门-01-基础篇
Java快速入门-01-基础篇 如果基础不好或者想学的很细,请参看:菜鸟教程-JAVA 本笔记适合快速学习,文章后面也会包含一些常见面试问题,记住快捷键操作,一些内容我就不转载了,直接附上链接,嘻嘻 ...
- Java 快速入门-06-JDK 目录文件说明
Java 快速入门-06-JDK 目录文件说明 JDK:开发环境,搞技术的人或者应用服务器使用 JRE:运行环境,如浏览器插件或者Swing界面的客户端等最终用户需要使用 JDK自含一个JRE,并依赖 ...
- 拿nodejs快速搭建简单Oauth认证和restful API server攻略
拿nodejs快速搭建简单Oauth认证和restful API server攻略:http://blog.csdn.net/zhaoweitco/article/details/21708955 最 ...
- Kotlin学习快速入门(2)——条件 数组 循环 方法
条件 if条件判断 常用的判断和Java一样,这里提一下不同的用法 1.if可以作为三元运算符 val max = if (a > b) a else b 2.使用in判断是否在某个区间 val ...
- 从net到java:java快速入门
学习java那是不可能的,到为什么不学习一下呢.仅为总结.希望自己在不久的将来能书写优美的java程序.加油!奥利给 1.注释 注释的重要性不言而喻,我们不管写什么代码注释必不可少,那么java的注释 ...
- Java快速入门
Java 是什么? Java 的特点: 面向对象 平台无关(跨平台): 简单 安全 体系结构 - 中性 可移植 健壮 多线程 解释型 高性能 分布式 动态 Java环境设置: Java SE可免费提供 ...
随机推荐
- Vue中引入jquery方法
vue-cli webpack 引入jquery 今天费了一下午的劲,终于在vue-cli 生成的工程中引入了jquery,记录一下.(模板用的webpack) 首先在package.json里的 ...
- mono修改代码模板
新建android application是在这里修改模板D:\prostu\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplatesCach ...
- express后端和fetch前端的json数据传递
在使用express做后端,前端使用fetch API来请求后端时,一般都是用 JSON 数据进行通信的. 下面是一个简单的例子: 前端: if (up) { var passwordAgain = ...
- 在eclipse中启动Tomcat报端口被占用的错误
安装配置好Tomcat之后,在浏览器中输入localhost,能正取打开页面.然后在eclipse中建立项目,创建Servlet之后,启动Tomcat,报端口被占用的错误.如图: 原因:原来已经启动了 ...
- linux mint 19安装 kvm 软件包
1 我的处理器是2700x 首先安装cpu检测 sudo apt-get install cpu-checker 2 查看cpu内核 egrep -c '(vmx|svm)' /proc/cpuinf ...
- setTimeOut函数和setInterval函数
setTimeout( )是设定一个指定等候时间 (单位是千分之一秒, millisecond), 时间到了, 浏览器就会执行一个指定的 method 或 function, 有以下语法: 今次例子是 ...
- 介绍nodejs中的path模块的几个方法
webpack中常用的: var path = require('path') 是nodejs中的path模块,介绍一下webpack中常用的几个path模块的方法: 应用node环境的时候,这个pa ...
- C#中判断系统的架构(32位,还是64位)
一种很简单的方法就是根据IntPtr类型的Size属性来判断, //IntPtr.Size在64位为8,在32位为4 public static Boolean Is64Bit() { ) retur ...
- MySQL在创建数据表的时候创建索引
转载:http://www.baike369.com/content/?id=5478 MySQL在创建数据表的时候创建索引 在MySQL中创建表的时候,可以直接创建索引.基本的语法格式如下: CRE ...
- 【扫盲】】32位和64位Windows的区别
用户购买windows安装盘或者重新安装操作系统的时候,通常会遇到这个问题,就是不知道该如何选择使用32位操作系统和64位操作系统,有人说64位系统速度快,其实理论上确实是这样,不过具体还要根据你的个 ...