java电子宠物_JAVA大神来帮忙啊,ECLIPSE编写一个小程序类似于电子宠物的。弄完截图过来也行,行了就加大悬赏,谢谢!...
展开全部
其实是很简单的程序,就是无限循环和条件表达式的运用e68a843231313335323631343130323136353331333335346131而已。代码如下:import java.util.Scanner;
public class ElectronicDog {
private static double timeLeft = 0; // 剩余时间
private static int happiness = 1; // 幸福值(初始为1)
private static int energy = 2; // 能量值(初始为2)
private static Scanner sc;
private static double sleepTimeLeft = 10; // 睡眠时间间隔,超过则小狗离开
private static double feedTimeLeft = 0; // 饲养时间间隔,小于间隔则无效
public static void main(String[] args) {
sc = new Scanner(System.in);
int days = 0;
// 输入天数
while(days <= 0) {
System.out.print("Play time (day(s)): ");
days = sc.nextInt();
if(days <= 0) {
System.out.println("Please input a valid time.");
}
}
// 剩余时间就是天数乘以24小时
timeLeft = days * 24;
while(timeLeft > 0) { // 如果剩余时间小于0则游戏结束
showState();
if(happiness <= 0) { // 幸福值小于0时结束
System.out.println("The dog is out of happiness and has left.");
break;
}
if(energy <= 0) { // 能量值小于0时结束
System.out.println("The dog is out of energy and has died.");
break;
}
if(sleepTimeLeft <= 0) { // 睡眠时间超过时结束
System.out.println("The dog does not sleep within 10 hours and has left.");
break;
}
Command ops = getCommand();
if(ops == Command.Sleep) { // 如果是让宠物睡觉则睡眠时间重置
sleepTimeLeft = 10;
} else { // 如果不是让宠物睡觉则睡眠时间减去任务消耗时间
if(ops == Command.Feed) {
if(feedTimeLeft > 0) { // 如果太过频繁喂养,则本次命令无效
continue;
} else { // 如果喂养有效,则喂养时间重置
feedTimeLeft = 3;
}
}
sleepTimeLeft -= ops.timeSpent;
}
feedTimeLeft -= ops.timeSpent;
happiness += ops.happinessGained;
energy += ops.energyConsumed;
timeLeft -= ops.timeSpent;
}
if(timeLeft <= 0) { // 如果是正常游戏时间结束才能看到这一句
System.out.println("Play time is over.");
}
}
/**
* 显示宠物状态
*/
private static void showState() {
System.out.println("--------------------------------");
System.out.println("Time left: " + getTime());
System.out.println("Dog's happiness: " + happiness);
System.out.println("Dog's energy: " + energy);
}
/**
* 命令宠物行为
* @return 返回操作明细
*/
private static Command getCommand() {
System.out.println("1. Walk\r\n2. Feed\r\n3. Sleep\r\n4. Play");
int choice = 0;
while(choice <= 0 || choice > 4) {
System.out.print("Choice: ");
if(sc.hasNextInt()) {
choice = sc.nextInt();
}
}
Command cmd = Command.values()[choice - 1];
return cmd;
}
private static String getTime() {
int hour = (int) Math.floor(timeLeft);
double min = timeLeft - hour;
return String.format("%02d : %02d", hour, (int) (min * 60));
}
}
/**
* 对小狗发出的命令
*/
enum Command {
Walk(1, 3, -2), Feed(0.5f, 1, 5), Sleep(8, -8, -4), Play(2, 2, -1);
public float timeSpent;
public int happinessGained;
public int energyConsumed;
private Command(float timeSpent, int happinessGained, int energyConsumed) {
this.timeSpent = timeSpent;
this.happinessGained = happinessGained;
this.energyConsumed = energyConsumed;
}
}
部分截图如下
java电子宠物_JAVA大神来帮忙啊,ECLIPSE编写一个小程序类似于电子宠物的。弄完截图过来也行,行了就加大悬赏,谢谢!...相关推荐
- 使用Eclipse编写Processing小程序
更多精彩的Processing编程语言相关的资讯,可以扫码关注公众号:Processing学习部落,欣赏好玩的Processing艺术作品: 使用Processing自家的PDE进行sketch的写作 ...
- java期末考试编程题 界面_救急啊!!!期末考试!怎样用JAVA的GUI(图形用户界面)来设计一个小程序!...
展开全部 给你找了一个,我试过,可以用 import java.awt.*; import javax.swing.*; import java.awt.event.*; import javax.s ...
- .java编写一个梯形类lader_能够完成相关计算above为高_【Java】编写一个应用程序计算梯形和圆形的面积...
说明:这是武汉理工大学计算机学院[Java语言程序设计]课程实验1:编写一个应用程序计算梯形和圆形的面积. 谨记:纸上得来终觉浅,绝知此事要躬行. Java语言程序设计--实验1:类的设计与对象使用 ...
- 编写java程序计算梯形面积_【Java】编写一个应用程序计算梯形和圆形的面积。...
说明:这是武汉理工大学计算机学院[Java语言程序设计]课程实验1:编写一个应用程序计算梯形和圆形的面积. >>点击查看WUTer计算机专业实验汇总 谨记:纸上得来终觉浅,绝知此事要躬行. ...
- 如何使用eclipse编写一个简单的java程序
用eclipse编写一个简单的java程序,输出hello world 在使用eclipse编写程序之前先保证jdk安装的完成,才能正确运行程序 1.打开eclipse,选择工作空间,工作空间就是你新 ...
- java类求圆的面积周长_java编程 1. 设计一个求圆的面积和周长的类,要求:1计算当半径r,JAVA编程题。编写一个应用程序计算圆的周长和面积,设圆的半...
问题标题 java编程 1. 设计一个求圆的面积和周长的类,要求:1计算当半径r,JAVA编程题.编写一个应用程序计算圆的周长和面积,设圆的半 2019-5-23来自ip:15.196.194.53的 ...
- 用eclipse开发android小程序,【转】Eclipse 开发Android小程序遇到的问题总结
用Eclipse 开发Android小程序遇到些小问题,在一边学习的过程中,将遇到的问题就记录一下,方面挺杂的,有关于程序出错的,关于linux应用的,有eclipse设置等- 1.ERROR: Ap ...
- 用java编写一个故事的程序_使用Java怎么编写一个递归程序
使用Java怎么编写一个递归程序 发布时间:2021-02-20 16:05:44 来源:亿速云 阅读:52 作者:Leah 这篇文章将为大家详细讲解有关使用Java怎么编写一个递归程序,文章内容质量 ...
- Java后端服务器点餐系统的部署+前端微信小程序开发(13)
Java后端服务器点餐系统的部署+前端微信小程序开发(13) 编译运行小程序 1,本地调试 这和你上面java的运行要保持一致,如果是本地的java项目运行你就用 localhost 后台Java直接 ...
最新文章
- 大盘过4000,注意风险~
- php能力模型,ThinkPHP5--基础篇(模型)
- 有python基础先学c还是c+-初学者学python好还是c
- 算法竞赛入门经典(第二版) | 例题4-4 信息解码 (紫皮书牛啤!)(UVa213,Message Decoding)
- 数据库连接数过多 too many
- java栈的实现_栈的实现(Java)
- phoneinfo界面翻译_phone info +下载-三星验机神器phone info samsung下载v3.6.4 安卓版-西西软件下载...
- BZOJ 4143 The Lawyer
- (转载)Hadoop map reduce 过程获取环境变量
- 查看oracle数据库的连接情况
- 网上预约订餐系统(联网可用)
- java简历项目经验范文
- select获取下拉框的值 下拉框默认选中
- jquery实现登录成功界面_【jQuery实例】Ajax登录页面
- thinkphp5 模板使用php,模板 · ThinkPHP5.1完全开发手册 · 看云
- php1蛋白质带电情况,拿到一个蛋白以后,首先需要对蛋白进行全面的了解,所谓知彼知己方能百战不殆:...
- Python 文件的读写操作
- 仿牛客网论坛项目资料整理
- Linux命令-su-用户
- Linux —— 基础开发工具的基本使用 —— yum、vim、gcc、make和makefile,gdb的简单应用
热门文章
- 技巧:永久屏蔽谷歌浏览器上的网站通知功能
- elasticsearch + geo地理位置附近的站点查询
- 容器docker(CentOS8)使用SSH配合Xming显示图形GUI界面
- 一句话木马@eval($_POST[“cmd“]);是什么意思(超详细)
- oracle 弱口令扫描器,超级弱口令检查工具,检查SSH/FTP/MySQL/Oracle/SQLServer弱口令
- 五子棋——人机博弈(Java实现)
- Verilog通过锁相环实现倍频,分频,相位偏移
- CSP应用开发-将USBkey中的证书注册到Windows系统
- 服务器加速访问,配置锐速加速模块(2020实测可用)
- 小组自评、互评及反馈