电子宠物加强版

1、Pet 父类

package com.hanqi.maya.model;

import java.util.Date;

/**
 * 宠物类
 * 健康值不能小于5
 * 饥饿值5~95
 * 开心值:如果小于30,每次有活动,健康值-2
 *
 * @author asus
 *
 */
public abstract class Pet {
    private String name;
    private String sex;
    private int age;
    private Date createtime;
    private int happy;
    private int healthy;
    private int hungry;
    private boolean isAlive;

    public Pet(String name, String sex) {
        super();
        this.name = name;
        this.sex = sex;
        this.age = 1;
        this.createtime = new Date();  //注意Date
        this.happy = 90;
        this.healthy = 100;
        this.hungry = 80;
        this.isAlive = true;
    }

    public abstract void eat();//含有抽象方法的类必须声明为抽象类,所以类名那里也要加上abstract
    public abstract void play();
    public abstract void hospital();

    public void check(){
        if(healthy < 5 || hungry < 5 || hungry > 95){
            isAlive = false;
        }
        if(happy < 30){
            healthy -= 2;
        }
        if(healthy > 100){
            healthy = 100;
        }
        if(happy > 100){
            happy = 100;
        }
        this.setAge((int)((System.currentTimeMillis() - createtime.getTime()) /1000 /5) + 1);
    }

    public void showInfo(){
        check();
        System.out.println("宠物信息:");
        System.out.println("\t名字: "+name+",性别: "+sex+",年龄: "+age);//  \t转义制表符,相当于Tab键
        System.out.println("\t开心值: "+ happy);
        System.out.println("\t健康值: "+ healthy);
        System.out.println("\t饥饿值: "+ hungry);
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public Date getCreatetime() {
        return createtime;
    }
    public void setCreatetime(Date createtime) {
        this.createtime = createtime;
    }
    public int getHappy() {
        return happy;
    }
    public void setHappy(int happy) {
        this.happy = happy;
    }
    public int getHealthy() {
        return healthy;
    }
    public void setHealthy(int healthy) {
        this.healthy = healthy;
    }
    public int getHungry() {
        return hungry;
    }
    public void setHungry(int hungry) {
        this.hungry = hungry;
    }

    public boolean isAlive() {
        return isAlive;
    }

    public void setAlive(boolean isAlive) {
        this.isAlive = isAlive;
    }
}

2、Rabbit 子类

package com.hanqi.maya.model;

public class Rabbit extends Pet {

    public Rabbit(String name, String sex) {
        super(name, sex);
    }

    @Override
    public void eat() {
        if(this.isAlive()){
            check();
            System.out.println(this.getName() + "拿到一根萝卜在吃,饥饿值-20");
            this.setHungry(this.getHungry() - 20);
            check();
        }else{
            System.err.println("你的宠物挂了");
        }
    }

    public void play() {
        if(this.isAlive()){
            check();
            System.out.println(this.getName() + "玩了一个魔方,饥饿值+5,开心值+10");
            this.setHungry(this.getHungry() + 5);
            this.setHappy(this.getHappy() + 10);
            check();
        }else{
            System.err.println("你的宠物挂了");
        }    

    }

    public void hospital() {
        if(this.isAlive()){
            check();
            System.out.println(this.getName() + "在医院里哇哇叫,饥饿值+20,健康值+50");
            this.setHungry(this.getHungry() + 20);
            this.setHealthy(this.getHealthy() + 50);
            check();
        }else{
            System.err.println("你的宠物挂了");
        }    

    }

}

3、Main方法

package com.hanqi.maya.text;

import java.util.Scanner;

import com.hanqi.maya.model.Pet;
import com.hanqi.maya.model.Rabbit;

public class Main {
    public static void main(String[] args) {
        //Pet p = new Rabbit("旺财", "男");
        //p.showInfo();
        Pet p = null;

        Scanner scanner = new Scanner (System.in);

        boolean selectFlag = true;
        boolean circleFlag = true;
        /*
        System.out.println("请输入宠物类型");
        System.out.println("1--兔子");
        */
        while(circleFlag){
            if(selectFlag){
                String s = scanner.nextLine();
                System.out.println("输入宠物的姓名和性别,用逗号分开");
                String info = scanner.nextLine();
                String[] infos = info.split(",");
                if("1".equals(s)){
                    p = new Rabbit(infos[0],infos[1]);
                    selectFlag = false;
                }
            }
            printControl();
            String ss = scanner.nextLine();
            if("1".equals(ss)){
                p.showInfo();
            } else if("2".equals(ss)){
                p.eat();
            } else if("3".equals(ss)){

            } else if("4".equals(ss)){

            } else if("5".equals(ss)){
                System.out.println("再见");
                circleFlag = false;
            } else{
                System.out.println("无此操作");
            }
        }
        scanner.close();
    }
    private static void printControl(){
        System.out.println("输入想进行的操作");
        System.out.println("1---显示信息");
        System.out.println("2---吃饭");
        System.out.println("3---玩游戏");
        System.out.println("4---去医院");
        System.out.println("5---退出");
    }
}
时间: 2024-10-27 13:49:03

电子宠物加强版的相关文章

BZOJ4407: 于神之怒加强版

4407: 于神之怒加强版 Time Limit: 80 Sec  Memory Limit: 512 MBSubmit: 779  Solved: 368[Submit][Status][Discuss] Description 给下N,M,K.求 Input 输入有多组数据,输入数据的第一行两个正整数T,K,代表有T组数据,K的意义如上所示,下面第二行到第T+1行,每行为两个正整数N,M,其意义如上式所示. Output 如题 Sample Input 1 2 3 3 Sample Outp

同步函数 生产者和消费者模式 加强版(多人生产和多人消费)

曾经搞了半天, 生产者和消费者模式  加强版(多人生产 多人消费 ).. 以前的代码格式就不再吐槽了(以后努力改进) //输出结果是一个无限循环 import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * 多个生产者&多个消费者模式 * 多个生产者不断生产,多个消费者不停的消费

从零开始iOS8编程【UI设计之按钮加强版的HelloWold】

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源码下载:点我传送 加强版Hello World 实现步骤 1.创建HelloHaoMengZhu工程 在Xcode中创建HelloHaoMengZhu工程, 基于iPhone视图基础应用程序. iPhone OS ->Application ->Single View Application 2.修改HelloHaoMengZ

ILSpy搜索功能加强版

1.修改搜索功能,增加如下的额外搜索选项 A.按文本搜索(默认选项) B.按通配符搜索 C.按正则表达式搜索 2.搜索增加如下特性: A.可以按照名字空间检索特定名字空间下的所有类. B.修正了官方版本无法搜索泛型类型的功能. 警告: A.此版本为非官方版本. B.本软件为第三方修改软件,此软件的著作权及版权归原作者所有. C.原软件的任何版权声明及相关权益声明同样适用于本软件. 下载地址: https://onedrive.live.com/?cid=e0560144122a3b9d&id=E

洛谷P1368 均分纸牌(加强版)

P1368 均分纸牌(加强版) 题目描述 有 N 堆纸牌,编号分别为 1,2,…, N.每堆上有若干张,纸牌总数必为 N 的倍数.可以在任一堆上取1张纸牌,然后移动. 移牌规则为:在编号为 1 堆上取的纸牌,能移到编号为 2和N 的堆上:在编号为 N 的堆上取的纸牌,能移到编号为 N-1和1 的堆上:其他堆上取的纸牌,可以移到相邻左边或右边的堆上. 现在要求找出一种移动方法,使每堆上纸牌数都一样多且牌的移动次数尽量少. 输入输出格式 输入格式: 第一行一个整数n 第二行为n个空格分开的正整数,为

BZOJ 4407 于神之怒加强版

题目链接:于神之怒加强版 这个式子还是很妙的,只是我已经思维僵化了 \begin{aligned} &\sum_{i=1}^n\sum_{j=1}^m\gcd(i,j)^k \\=&\sum_{g=1}^ng^k\sum_{i=1}^{\lfloor \frac{n}{g} \rfloor}\sum_{j=1}^{\lfloor \frac{m}{g} \rfloor}\sum_{d|i,d|j}\mu(d) \\=&\sum_{g=1}^ng^k\sum_{d=1}^{\lflo

可持久化并查集加强版 BZOJ 3674

http://www.lydsy.com/JudgeOnline/problem.php?id=3674 3674: 可持久化并查集加强版 Time Limit: 15 Sec  Memory Limit: 256 MBSubmit: 3225  Solved: 1192[Submit][Status][Discuss] Description Description:自从zkysb出了可持久化并查集后--hzwer:乱写能AC,暴力踩标程KuribohG:我不路径压缩就过了!ndsf:暴力就可

那些年做过的ctf之加密篇(加强版)

MarkdownPad Document html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label

BZOJ 3514: Codechef MARCH14 GERALD07加强版

3514: Codechef MARCH14 GERALD07加强版 Time Limit: 60 Sec  Memory Limit: 256 MBSubmit: 1356  Solved: 514[Submit][Status][Discuss] Description N个点M条边的无向图,询问保留图中编号在[l,r]的边的时候图中的联通块个数. Input 第一行四个整数N.M.K.type,代表点数.边数.询问数以及询问是否加密.接下来M行,代表图中的每条边.接下来K行,每行两个整数L