华容道问题

本文介绍如何设计一个控制台版本的华容道游戏,包括人物类的设计和移动判断。用户输入人物和方向,系统判断是否可移动并执行移动。提供ChessBoard和Test类的实现,以及实验运行结果。虽然目前的算法仅支持曹操移动,但可通过修改完善。

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

注意:
因为曹操的移动是整体的移动,所以在判断时候四个位置是同时的
这里的算法只能第一个曹操进行移动,所以会有不足之处,仅供参考,
不过思想都是差不多的,
所以如果想完善的可以进行修改。

设计控制台版本的华容道游戏,用户输入人物和移动方向,能够判断可否移动,并且根据给定方向和人物,进行移动。请自行设计人物类,并实现相应的功能。

实现代码:

 

 

package HuaRongSetDone;

public class Person {
    private String name;
    private int flag=0;//用来标记状态
    private int sign=0;
    Person(String name,int flag){
        this.name=name;
        this.flag=flag;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
    public void setFlag(int flag) {
    	this.flag=flag;
    }

    public int getFlag() {
        return flag;
    }
   
}

 

ChessBoard类:

package HuaRongSetDone;

public class ChessBoard {
    Person[][] board=new Person[5][4];
    //空参构造,初始化二维数组
    public ChessBoard(){
        board[0][0]=new Person("马",1);
        board[1][0]=new Person("超",1);
        board[0][1]=new Person("曹",2);
        board[0][2]=new Person("操",2);
        board[1][1]=new Person("曹",3);
        board[1][2]=new Person("操",3);
        board[0][3]=new Person("张",4);
        board[1][3]=new Person("飞",4);
        board[2][0]=new Person("赵",5);
        board[3][0]=new Person("云",5);
        board[2][1]=new Person("关",6);
        board[2][2]=new Person("羽",6);
        board[3][1]=new Person("丙",7);
        board[3][2]=new Person("丁",8);
        board[2][3]=new Person("黄",9);
        board[3][3]=new Person("忠",9);
        board[4][0]=new Person("甲",10);
        board[4][3]=new Person("乙",11);
        board[4][1]=new Person("空", 0);
        board[4][2]=new Person("空", 0);
    }
    //判断玩家输入的对象名字是否正确
    public int judegname(String personname){
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值