状态模式

状态模式

案例

张三所在公司欲开发一款纸牌游戏软件,在该游戏软件中用户角色具有入门级(Primary)、熟练级(Secondary)和高手级(Professional)三种等级,角色的等级与其积分相对应,游戏胜利将增加积分,失败则扣除积分。入门级具有最基本的游戏功能 ,熟练级增加了游戏胜利积分加倍功能,高手级在熟练级基础上再增加换牌功能。用程序来表示如下:

1.首先定义了 Player 类:

public class Player {
   
    // 初始积分为 0
    private int integral = 0;

    // 初始等级为入门级
    private String grade = "入门级";

    public void play() {
   
        System.out.println("开始游戏");
        System.out.println("当前积分为:" + this.integral + "\t当前等级为:" + this.grade);
        System.out.println("游戏进行中");
        changeCards();
        System.out.println("游戏结束");
        // 这里方便演示结果,直接设置为胜利
        System.out.println("游戏胜利,获得100积分");
        score();
        changeGrade();
        System.out.println("当前积分为:" + this.integral + "\t当前等级为:" + this.grade);
    }

    // 换牌操作
    private void changeCards() {
   
        if (grade.equals("Primary") || grade.equals("Secondary")) {
   
            System.out.println("该等级太低,不支持换牌操作");
        } else if (grade.equals("Professional")) {
   
            System.out.println("换牌成功");
        }
    }

    // 计算得分
    private void score() {
   
        int integral = 100;
        if (grade.equals("Primary")) {
   
            System.out
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值