Java设计模式之从[剪刀石头布AI策略]分析策略(Strategy)模式

本文介绍了策略模式的应用,通过创建剪刀石头布游戏的AI策略来展示。游戏设有普通和无法战胜两个难度等级,普通难度AI随机选择手势,而无法战胜难度AI会根据玩家选择反向选择,确保胜利。这两种策略都实现了同一接口,体现了策略模式的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  策略模式是一个非常简单的模式。它定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。

  考虑到我在做一个剪刀石头布的游戏,可以和计算机对战。计算机的难度等级分为2个等级:普通难度和无法战胜难度。普通难度是指电脑会随机出石头、剪刀、布,而无法战胜难度是指电脑会“作弊”,电脑会事先知道玩家出的是什么手势。如果玩家出的是剪刀,那么电脑会出石头,玩家永远的无法取胜。

  那么,这两个难度分别代表两种算法,为了使得它们能够被游戏的主类装载,它们都应该继承于同一个接口或类,并暴露出电脑出手势的方法,代码如下:

import java.util.Random;
import java.util.Scanner;

interface GameStrategy{
    int play(int player);
}

class FingerGuessing{
    Scanner playerScanner = new Scanner(System.in);
    public String toString(int finger){
        switch (finger){
        case 1:
            return "石头";
        case 2:
            return "剪刀";
        case 3:
            return "布";
        default:
            return "错误!";
        }
    }
    public void start(GameStrategy comStrategy){
        boolean gameOver = false;
        while (!game
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值