第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;@Overrideprotected 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());}@Overridepublic void callBackInfo(String info) {Toast.makeText(MainActivity.this,info,Toast.LENGTH_SHORT).show();}@Overridepublic void chessBoardChange(int current_x, int current_y) {Toast.makeText(MainActivity.this,"落子",Toast.LENGTH_SHORT).show();}@Overridepublic 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,只能做到这了。

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

  1. 第30篇 Android Studio实现五子棋游戏(一)杂记

    第30篇 Android Studio实现五子棋游戏(一) 1.需求分析 1.1.判断胜负 1.2.AI拦截及获取落子位 2.界面 2.1.布局 2.2.名称和资源图片 3.接口联系 1.需求分析 五 ...

  2. 基于Android Studio的五子棋游戏的简单设计

    [摘要]: 随着时代的发展,现代科技的飞跃,我们的日常娱乐生活变得丰富多彩.而手机游戏被业内人士称为继通信之后的有一座"金矿",手机休闲娱乐应用将成为PC休闲娱乐之后又一重要业务增 ...

  3. 第46篇 Android Studio实现生命数字游戏(一)数据分析

    第46篇 Android Studio实现生命数字游戏(一)数据分析 1.数据 1.1.生日 1.2.生日数 1.3.天赋数 1.4.命数 1.5.星座数 2.数字对应的解析 1.数据 数据是在生命数 ...

  4. 第50篇 Android Studio实现生命数字游戏(五)计算星座数

    第50篇 Android Studio实现生命数字游戏(五)计算星座数 1.变量说明: 1.1.统计圈数 2.计算命数 2.1.使用的数据 2.2.星座对应日期和数字 2.3.说明 2.4.代码 1. ...

  5. 第52篇 Android Studio实现生命数字游戏(七)ListView与适配器

    第52篇 Android Studio实现生命数字游戏(七)ListView与适配器 1.ListView 1.1.适配界面 1.2.适配器 1.ListView 在布局中直接添加. 没有什么好说明, ...

  6. Android Studio实现五子棋小游戏

    项目目录 一.项目概述 二.开发环境 三.详细设计 1.布局设计 2.验证码 3.AI人机 4.背景音乐 四.运行演示 五.项目总结 六.源码获取 一.项目概述 五子棋是一种两人对弈的策略型棋类游戏, ...

  7. 使用Android Studio 写骰子游戏

    使用Android Studio 写骰子游戏 骰子游戏## 标题 详细代码如下: class MainActivity : AppCompatActivity() {override fun onCr ...

  8. 第37篇 Android Studio实现点击图片显示信息(四)布局及资源文件

    第37篇 Android Studio实现点击图片显示信息(四)布局及资源文件 4.布局文件 4.1.strings.xml 4.布局文件 整体是一个垂直布局,然后在设置一些水平布局就行了. < ...

  9. 第18篇 Qt实现简单五子棋游戏(二)算法说明

    第18篇 Qt实现简单五子棋游戏(二)算法说明 5.算法说明 5.1.画棋盘: void drawChessboard(); 5.2.画棋子:void drawChess(); 5.3.鼠标点击响应: ...

最新文章

  1. MPB:河湖着生硅藻样品采集、永久玻片制作及鉴定
  2. Linux负载均衡--LVS(IPVS)
  3. 深度学习入门教程UFLDL学习实验笔记三:主成分分析PCA与白化whitening
  4. Unity 5 来了!引领开发引擎进入次时代
  5. n分频器 verilog_基于Verilog的分频器实现
  6. 滑动窗口最大值--单调队列
  7. Vue.js开发环境搭建的介绍
  8. python去重语句_Python Dataframe 指定多列去重、求差集的方法
  9. 第一章、第一节 Angular基础
  10. XML:DTD:Schema
  11. Linux进程间通信之管道(pipe)、命名管道(FIFO)与信号(Signal)
  12. MCollective架构篇1-MCollective架构的引入
  13. 水声方位估计 - MUSIC算法
  14. 编写一个程序,给出汉字“你” “我” “他”在Unicode表中的位置
  15. 什么是用户故事 (User Story)?
  16. 五一劳动节,讲讲NEO智能合约的调试
  17. 冷冻水和冷却水的区别
  18. 《德鲁克管理思想精要》读书笔记8 - 时间
  19. ndnSIM学习(八)——examples之ndn-simple.cpp每个函数逐行剖析
  20. 浏览器默认主页被360篡改解决办法

热门文章

  1. 第二代机器人操作系统课程资料汇总 Course Learning Materials for ROS2 2019.10.23
  2. 397高校毕业设计选题
  3. 数据库 多表 查询练习题
  4. 南京大学计算机学院商琳,【开甲书院】南京大学开甲书院顺利召开2020级新生年级大会...
  5. 安装命令:pip install xlrd ,pandas操作Excel学习笔记__7000
  6. nginxgrafana监控面板显示nodatatoshow
  7. 跳转微信小程序和支付宝小程序
  8. 国内外视频编解码标准体系-我们在音视频标准化组织的工作,唯有坚持、主动、投入
  9. 一套策划正确的网页配色方案
  10. win10怎么修复dns配置?DNS配置错误无法上网怎么解决