IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 第33篇 Android Studio实现五子棋游戏(四)棋子类和主类 -> 正文阅读

[移动开发]第33篇 Android Studio实现五子棋游戏(四)棋子类和主类

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

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,只能做到这了。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-10-06 12:20:40  更:2021-10-06 12:22:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 1:53:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码