五子棋总结

1、五子棋需要三个类:
Chessman,Chessboard,GobangGame

2、准备知识
1>其中Chessman使用的是枚举类
enum 枚举类跟class,interface是等级一样的。适用于一个类的对象有限而且固定,比如季节类只有春夏秋冬四个对象。
用法:所有实例必须在枚举类的第一行显示列出,否则这个枚举类永远都不能产生实例,列出的实例自动添加public static final修饰。一旦为枚举类显示定义了带参数的构造器,列出枚举值时就必须对应地传入参数。在枚举类中列出枚举值时,实际上就是调用构造器创建枚举类对象 。并且枚举类的构造方法是private修饰的, 保证只有本类才能创建其对象,为了安全性

2>Math.random(),产生的随机数是在[0,1)之间,而且使用强制转化为int类型的时候,是将整数部分直接截断。比如4.9就是4.因为这个问题,所以原书附送光盘的代码中有这个错误。

3、系统分析:
下棋,需要一个棋子类,需要一个棋盘类,还需要一个游戏类。棋盘和棋子都准备好后,真正难的是游戏类。
1>要获得输入的字符串,使用BufferedReader(new InputStreamReader(System.in))包装。
2>判断获得的字符串是否合法,增加异常处理,增加程序的健壮性。
3>用户开始动棋子。每动一步都要用以棋子为中心进行左右,上下,斜线的扫描,这样避免每次都遍历棋盘,减少程序的性能开销
4>决定是否重新玩。

以下是代码:

public enum Chessman {
    BLACK("●"),WHITE("○");
    private String chessman;

    //私有构造器,枚举类只能使用private访问控制符
    private Chessman(String chessman){
        this.chessman=chessman;
    }

    public String getChessman(){
        return this.chessman;
    }
}
package aaa;
//棋盘类
public class Chessboard {
    //定义一个二位数组来充当棋盘
    private String[][] board;
    //定义棋盘的大小
    public static final int BOARD_SIZE=5;

    //初始化棋盘
    public void initBoard(){
        //初始化棋盘数组
        board=new String[BOARD_SIZE][BOARD_SIZE];
        //把每个元素赋值为“十”,用于控制台输出棋盘
        for(int i=0;i<BOARD_SIZE;i++){
            for(int j=0;j<BOARD_SIZE;j++){
                board[i][j]="十";
            }
        }

    }

    public void test(){
        Object[][] array=new Object[10][10];
        for(int i=0;i<array.length;i++){
            for(int j=0;j<array[i].length;j++){
                array[i][j]=new Object();
            }
        }
    }


    //在控制台输出棋盘的方法
    public void printBoard(){
        //打印每个数组元素
        for(int i=
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
android canvas五子棋通过绘制棋盘、绘制棋子以及判断胜利来实现游戏的功能。在onDraw方法中,首先绘制棋盘,然后添加棋盘上的点,接着绘制随手指滑动的棋子,最后绘制棋子。 在FiveChessView的构造方法中,主要对一些参数进行初始化。其中,chessArray数组用于保存游戏的棋子信息,通过判断各个位置的棋子状态来判断胜利。whiteChess和blackChess是代表黑白棋子的图片。rect用于指定绘制的棋子的大小。同时,还添加了OnTouchListener来处理用户的触摸事件。 棋子对象ChessMan用于表示一个棋子,其中包含了棋子所在的位置、颜色以及编号等信息。 总结来说,android canvas五子棋通过绘制棋盘、绘制棋子以及判断胜利来实现游戏的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Android自定义View实现五子棋](https://blog.csdn.net/qq_36405665/article/details/86238421)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Android实现五子棋游戏(一) 游戏基本逻辑](https://blog.csdn.net/a512337862/article/details/74165085)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值