栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

第33篇 Android Studio实现五子棋游戏(四)棋子类和主类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第33篇 Android Studio实现五子棋游戏(四)棋子类和主类

第33篇 Android Studio实现五子棋游戏(四)棋子类和主类
  • 1.棋子类
  • 2.主类
    • 2.1.变量
    • 2.2.重写方法
    • 2.3.代码
  • 3.效果
    • 3.1.进去界面
    • 3.2.赢棋
    • 3.3.提示
    • 3.4.帮助

1.棋子类

棋子类主要用于表示棋子,便于我们获取棋子的位置和棋子的颜色等信息。
代码如下:

package com.example.myapplication;

public class ChessActivity {
    private int x;
    private int y;
    private int color;

    ChessActivity() {
        this.x = 0;
        this.y = 0;
        this.color = 0;
    }

    ChessActivity(ChessActivity chessActivity) {
        this.x = chessActivity.x;
        this.y = chessActivity.y;
        this.color = chessActivity.color;
    }

    public void setInfo(int x, int y, int color){
        this.x = x;
        this.y = y;
        this.color = color;
    }

    public String getInfo(){
        return String.valueOf(x) + " " + String.valueOf(y) + " " + String.valueOf(color);
    }

    public int getX() {
        return this.x;
    }

    public void setX(int x) {
        this.x = x;
    }

    public int getY() {
        return this.y;
    }

    public void setY(int y) {
        this.y = y;
    }

    public int getColor() {
        return this.color;
    }

    public void setColor(int color) {
        this.color = color;
    }
}

2.主类

用于实现按钮功能等。

2.1.变量

就只有一个棋盘对象:ChessBoardActivity chess_board;
Android便捷的地方在于,只要通过获取id去实现某些功能就行了,没有必要为这个类添加那么多变量。

2.2.重写方法

这几个就是回调的函数。

@Override
public void callBackInfo(String info) {
    Toast.makeText(MainActivity.this,info,Toast.LENGTH_SHORT).show();
}

@Override
public void chessBoardChange(int current_x, int current_y) {
    Toast.makeText(MainActivity.this,"落子",Toast.LENGTH_SHORT).show();
}

@Override
public String getMode(){
    Spinner spi_mode = findViewById(R.id.spinner_mode);
    return spi_mode.getSelectedItem().toString();
}
2.3.代码
package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.app.alertDialog;
import android.os.Bundle;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements GameCallBack {
    ChessBoardActivity chess_board;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        chess_board = findViewById(R.id.view_five_chess_board);
        chess_board.setCallBack(this);

        init();
    }

    public  void init() {
        Button btn_begin = findViewById(R.id.btn_begin);
        Button btn_prompt = findViewById(R.id.btn_prompt);
        Button btn_repent = findViewById(R.id.btn_repent);
        Button btn_help = findViewById(R.id.btn_help);

        btn_begin.setOnClickListener(view -> {
            chess_board.init();
            chess_board.postInvalidate();
        });

        btn_prompt.setOnClickListener(view-> new alertDialog.Builder(MainActivity.this)
                .setIcon(android.R.drawable.ic_dialog_alert)
                .setTitle("提示")
                .setMessage("看看有没有三子或四子相连的地方喔!")
                .setPositiveButton("确定", (dialogInterface, i) -> {

                }).show());

        btn_repent.setOnClickListener(view -> chess_board.subChess());

        btn_help.setOnClickListener(view -> new alertDialog.Builder(MainActivity.this)
                .setIcon(android.R.drawable.ic_dialog_alert)
                .setTitle("帮助")
                .setMessage("点击开始可以刷新棋盘重新开始。")
                .setPositiveButton("确定", (dialogInterface, i) -> {

                }).show());
    }

    @Override
    public void callBackInfo(String info) {
        Toast.makeText(MainActivity.this,info,Toast.LENGTH_SHORT).show();
    }

    @Override
    public void chessBoardChange(int current_x, int current_y) {
        Toast.makeText(MainActivity.this,"落子",Toast.LENGTH_SHORT).show();
    }

    @Override
    public String getMode(){
        Spinner spi_mode = findViewById(R.id.spinner_mode);
        return spi_mode.getSelectedItem().toString();
    }
}

还有一个值得注意的是,提示对话框,第一次用,还不知道怎么用,先列举出来看看。

btn_help.setOnClickListener(view -> new alertDialog.Builder(MainActivity.this)
     .setIcon(android.R.drawable.ic_dialog_alert)
     .setTitle("帮助")
     .setMessage("点击开始可以刷新棋盘重新开始。")
     .setPositiveButton("确定", (dialogInterface, i) -> {

     }).show());

view->xxx,相当于指向执行函数,或者执行的具体的某一个东西,你可以直接写一个函数,然后指向就行,有QT那种信号与槽关联的意思。

3.效果 3.1.进去界面

3.2.赢棋

3.3.提示

3.4.帮助


ok,只能做到这了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/292917.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号