虚拟宠物猫(java)
package virtualpet;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.Scanner;
/**
* 虚拟宠物类
* @author liuhu
*
*/
public class VirPet {
//前三个为全局变量
public static VirPet p = new VirPet(100, 0, 100, "我在睡觉..."); // 数据初始化4r0/
public static int count = 0;
public static boolean judgeStop = false;
public String name = "Tommy";
public int Happiness;
public int Hungry;
public int Health;
public String status;
// 构造方法
public VirPet(int Happiness,int Hungry,int Health,String status) {
this.Happiness = Happiness;
this.Hungry = Hungry;
this.Health = Health;
this.status = status;
}
private void printInfo(int data) {
for(int i = 1;i <= (data / 2);i++) {
System.out.print("*");
}
for(int i = (data / 2 + 1);i <= 50;i++) {
System.out.print("-");
}
}
public void sleep() {
this.status = "我在睡觉...";
// System.out.println(this.status);
}
public void wake() {
this.status = "我醒着但我很无聊...";
// System.out.println(this.status);
}
public void walk() {
this.status = "我在散步...";
System.out.println(this.status);
}
public void play() {
this.status = "我在玩耍...";
System.out.println(this.status);
}
public void feed() {
this.status = "我在吃饭...";
System.out.println(this.status);
}
public void seeDoctor() {
this.status = "我在看医生...";
System.out.println(this.status);
}
public void curStatus() {
System.out.println("\n当前时间:" + count);
System.out.println("我当前的状态:" + this.status);
System.out.print("Happiness : Sad");
printInfo(this.Happiness);
System.out.println("Happy(" + this.Happiness + ")");
System.out.print("Hungry : Full");
printInfo(this.Hungry);
System.out.println("Hungry(" + this.Hungry + ")");
System.out.print("Health : Sick");
printInfo(this.Health);
System.out.println("Health(" + this.Health + ")");
}
public void orderWakePet(String order) {
if(order.equals("walk")) {
walk();
}else if(order.equals("play")) {
play();
}else if(order.equals("feed")) {
feed();
}else if(order.equals("seedoctor")) {
seeDoctor();
}else if(order.equals("letalone")) {
wake();
System.out.println(this.status);
}else {
System.out.println("我不懂你在说什么");
}
}
public void orderSleepPet(String order) {
if(order.equals("letalone")) {
sleep();
System.out.println(this.status);
}else {
System.out.println("你确定要吵醒我吗?我在睡觉,你要是坚持吵醒我,我会不高兴的!(y表示是/其他表示不是)");
Scanner s = new Scanner(System.in);
String ans = s.nextLine();
if(ans.equals("y")) {
if(order.equals("walk")) {
walk();
}else if(order.equals("play")) {
play();
}else if(order.equals("feed")) {
feed();
}else if(order.equals("seedoctor")) {
seeDoctor();
}else {
System.out.println("我不懂你在说什么");
}
}
}
}
// 从文件中读取数据
public void readFromPath() throws Exception {
File file = new File("D:\\java\\eclipse\\demo\\src\\virtualpet\\Data.txt");
if(!file.exists()) { // 如果文件不存在,则创建并初始化
file.createNewFile();
writeToPath();
}
FileReader r = new FileReader("D:\\java\\eclipse\\demo\\src\\virtualpet\\Data.txt");
BufferedReader br = new BufferedReader(r);
char[] c = new char[50];
int len = 0;
String s = null;
while((len = br.read(c)) != -1) {
s= new String(c, 0, len);
}
String[] str = s.split(" ");
int[] a = new int[4];
for(int i = 0;i < 4;i++) {
a[i] = Integer.parseInt(str[i]);
}
count = a[0];
Happiness = a[1];
Hungry = a[2];
Health = a[3];
status = str[4];
br.close();
r.close();
}
// 保存宠物数据到文件中
public void writeToPath() throws Exception {
FileWriter w = new FileWriter("D:\\java\\eclipse\\demo\\src\\virtualpet\\Data.txt");
BufferedWriter bw = new BufferedWriter(w);
bw.write(count + " ");
bw.write(Happiness + " ");
bw.write(Hungry + " ");
bw.write(Health + " ");
bw.write(status + " ");
bw.flush();
bw.close();
w.close();
}
public static void main(String[] args) {
// 先读取数据
try {
p.readFromPath();
} catch (Exception e1) {
e1.printStackTrace();
}
System.out.println("我的名字叫Tommy,一只可爱的猫咪....");
System.out.println("你可以和我一起散步玩耍,你也可以给我好吃的东西,带我去看病,也可以让我发呆....");
System.out.println("Commands:");
System.out.println("1.walk:散步");
System.out.println("2.play:玩耍");
System.out.println("3.feed:喂我");
System.out.println("4.see doctor:看医生");
System.out.println("5.letalone:让我独自一人");
System.out.println("6.status:查看我的状态");
System.out.println("7.bye:不想看到我\n");
// 时钟的线程
new Thread(new Runnable() {
private int rangeData(int num) {
if(num > 100) {
num = 100;
}else if(num < 0) {
num = 0;
}
return num;
}
@Override
public void run() {
if(count == 23) {
p.sleep();
}else if(count == 7) {
p.wake();
}
if(p.status.equals("我在散步...")) {
p.Hungry += 3;
p.Health += 1;
}else if(p.status.equals("我在玩耍...")) {
p.Hungry += 3;
p.Happiness += 1;
}else if(p.status.equals("我在吃饭...")) {
p.Hungry -= 3;
}else if(p.status.equals("我在看医生...")) {
p.Health += 4;
}else if(p.status.equals("我在睡觉...")) {
p.Hungry += 1;
}else if(p.status.equals("我醒着但我很无聊...")) {
p.Hungry += 2;
p.Happiness -= 1;
}
if((!p.status.equals("我在睡觉...")) && count < 8) {
p.Happiness -= 4;
}
if(p.Happiness < 20) {
p.Health -= 1;
}
if(p.Hungry > 80 || p.Hungry < 20) {
p.Health -= 2;
}
p.Hungry = rangeData(p.Hungry);
p.Health = rangeData(p.Health);
p.Happiness = rangeData(p.Happiness);
// System.out.println(count);
count += 1;
if(judgeStop == false) {
if(count < 24) {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
run();
}else {
count = 0;
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
run();
}
}
}
}).start();
// 宠物的线程
new Thread(new Runnable() {
@Override
public void run() {
while(true) {
System.out.print("你想做什么:");
Scanner s = new Scanner(System.in);
String ans = s.next();
if(ans.equals("bye")) {
try {
p.writeToPath();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
judgeStop = true;
System.out.println("记得来找我!Bye...");
break;
}else if(ans.equals("status")) {
p.curStatus();
}else {
if(count >= 8) {
p.orderWakePet(ans);
}else {
p.orderSleepPet(ans);
}
}
}
}
}).start();
}
}
虚拟宠物猫(java)相关推荐
- 【虚拟宠物猫 Python】
虚拟宠物猫 Python 要求 代码 要求 编写一个虚拟宠物猫的游戏,具体实现功能如下: Tommy 的一天分成 24 个部分,每一部分称为一个"滴答",它在第 8 个滴答(8 点 ...
- Java学习(86)Java集合——案例:宠物猫信息管理(HashSet增删改查)
案例:宠物猫信息管理(HashSet增删改查) 需求分析 1. 功能需求 2. 属性 3. 方法 创建宠物猫Cat类,定义构造方法,定义get/set方法 主方法内定义宠物猫对象,将宠物猫对象放入Ha ...
- Java学习(90)Java集合排序——Comparator接口介绍、案例:对宠物猫分别按名字升序、年龄降序进行排列
Java集合排序--Comparator接口介绍.案例:对宠物猫分别按名字升序.年龄降序进行排列 Comparator接口介绍 1. Comparator接口: 2. Comparator接口中的co ...
- java学习4:案例:宠物猫信息管理
案例:宠物猫信息管理 需求: --添加和显示宠物猫信息 --查找某只宠物猫信息并输出 --修改宠物猫信息 --删除宠物猫信息 类: 属性 --名字 name --年龄 month --品种 speci ...
- (附源码)基于Spring Boot的宠物猫店管理系统的设计与实现 毕业设计140909
springboot宠物猫店管理系统的设计与实现 摘 要 在信息飞速发展的今天,网络已成为人们重要的信息交流平台.宠物猫店管理系统公司每天都有大量的信息需要通过网络发布,为此,本人开发了一个基于B/S ...
- 虚拟宠物以AR形式来到你身边
几年前,一款名为<精灵宝可梦Go>的LBS AR引爆全球玩家,从此掀起了一股LBS游戏的热潮.它并不是普通的游戏,它的 特色是需要玩家亲自到各种户外环境,才能收集补给和捕捉小精灵,有的人通 ...
- ios 摇一摇不走响应方法_猫咪不和主人亲近?这几种方法让它变得黏人,赶都赶不走|猫|宠物猫|主人...
现代人逐渐把猫狗当成伴侣动物.它们都是毛茸茸的,但除此之外,它们之间似乎没有其他相似之处.换句话说,猫不是狗!猫是一个非常独特的物种,不同于其他动物和其他动物.每只猫都有自己的好恶. 说了这么多,只要 ...
- ▷Scratch课堂丨【编程趣味卡11】虚拟宠物
授权转载 | Geekid 原文作者 | Mr.炎 原文标题 | 少儿编程 教程丨Scratch编程趣味卡 - 11.虚拟宠物 标签:难度初级:适合年龄段:8+: Scratch介绍 Scratch融 ...
- 虚拟宠物手机游戏《我的安吉拉2》上线华为AppGallery;Airbiquity宣布将扩张到非汽车市场 | 全球TMT...
大公司动向 热门虚拟宠物手机游戏<我的安吉拉>的续作<我的安吉拉 2>已在华为AppGallery全球上线.该游戏的第一个版本已大获成功,下载量达到数百万次.这款由虚拟宠物手机 ...
最新文章
- flask-blueprint的简单使用
- 20180530更新
- html filter 在线预览,HTML Filter
- latex表格名的引用问题
- Redis 阶段总结
- GoogleTest测试C++代码
- 模糊神经网络算法matlab,模糊神经网络算法原理
- 算法设计与分析第四章习题解答与学习指导(第2版)屈婉婷 刘田 张立昂 王捍贫编著 清华大学出版社
- “Computer_Breaker”旁的“惊险”旅程——JSOI2021受虐记
- 关于电信重组(华为中兴观察员出品,必属精品)
- 医学院交换去计算机学院,2017年北京协和医学院阜外心血管病医院823计算机原理考研强化模拟题...
- 岁月温柔-18 妈妈在市ICU第8天
- 7-1 用格里高利公式求给定精度的PI值
- 华为手机设置微信气泡
- SparseArray与ArrayMap
- 做裂变新增全靠运气吗?绝对不是哦!
- 普氏分析在生信中的应用
- SSL P2325 最小转弯
- A-Z,a-z,0-9的unicode编码表
- 卫星热分析实例仿真001:篮球太空中的温度