第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;@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实现五子棋游戏(四)棋子类和主类相关推荐
- 第30篇 Android Studio实现五子棋游戏(一)杂记
第30篇 Android Studio实现五子棋游戏(一) 1.需求分析 1.1.判断胜负 1.2.AI拦截及获取落子位 2.界面 2.1.布局 2.2.名称和资源图片 3.接口联系 1.需求分析 五 ...
- 基于Android Studio的五子棋游戏的简单设计
[摘要]: 随着时代的发展,现代科技的飞跃,我们的日常娱乐生活变得丰富多彩.而手机游戏被业内人士称为继通信之后的有一座"金矿",手机休闲娱乐应用将成为PC休闲娱乐之后又一重要业务增 ...
- 第46篇 Android Studio实现生命数字游戏(一)数据分析
第46篇 Android Studio实现生命数字游戏(一)数据分析 1.数据 1.1.生日 1.2.生日数 1.3.天赋数 1.4.命数 1.5.星座数 2.数字对应的解析 1.数据 数据是在生命数 ...
- 第50篇 Android Studio实现生命数字游戏(五)计算星座数
第50篇 Android Studio实现生命数字游戏(五)计算星座数 1.变量说明: 1.1.统计圈数 2.计算命数 2.1.使用的数据 2.2.星座对应日期和数字 2.3.说明 2.4.代码 1. ...
- 第52篇 Android Studio实现生命数字游戏(七)ListView与适配器
第52篇 Android Studio实现生命数字游戏(七)ListView与适配器 1.ListView 1.1.适配界面 1.2.适配器 1.ListView 在布局中直接添加. 没有什么好说明, ...
- Android Studio实现五子棋小游戏
项目目录 一.项目概述 二.开发环境 三.详细设计 1.布局设计 2.验证码 3.AI人机 4.背景音乐 四.运行演示 五.项目总结 六.源码获取 一.项目概述 五子棋是一种两人对弈的策略型棋类游戏, ...
- 使用Android Studio 写骰子游戏
使用Android Studio 写骰子游戏 骰子游戏## 标题 详细代码如下: class MainActivity : AppCompatActivity() {override fun onCr ...
- 第37篇 Android Studio实现点击图片显示信息(四)布局及资源文件
第37篇 Android Studio实现点击图片显示信息(四)布局及资源文件 4.布局文件 4.1.strings.xml 4.布局文件 整体是一个垂直布局,然后在设置一些水平布局就行了. < ...
- 第18篇 Qt实现简单五子棋游戏(二)算法说明
第18篇 Qt实现简单五子棋游戏(二)算法说明 5.算法说明 5.1.画棋盘: void drawChessboard(); 5.2.画棋子:void drawChess(); 5.3.鼠标点击响应: ...
最新文章
- MPB:河湖着生硅藻样品采集、永久玻片制作及鉴定
- Linux负载均衡--LVS(IPVS)
- 深度学习入门教程UFLDL学习实验笔记三:主成分分析PCA与白化whitening
- Unity 5 来了!引领开发引擎进入次时代
- n分频器 verilog_基于Verilog的分频器实现
- 滑动窗口最大值--单调队列
- Vue.js开发环境搭建的介绍
- python去重语句_Python Dataframe 指定多列去重、求差集的方法
- 第一章、第一节 Angular基础
- XML:DTD:Schema
- Linux进程间通信之管道(pipe)、命名管道(FIFO)与信号(Signal)
- MCollective架构篇1-MCollective架构的引入
- 水声方位估计 - MUSIC算法
- 编写一个程序,给出汉字“你” “我” “他”在Unicode表中的位置
- 什么是用户故事 (User Story)?
- 五一劳动节,讲讲NEO智能合约的调试
- 冷冻水和冷却水的区别
- 《德鲁克管理思想精要》读书笔记8 - 时间
- ndnSIM学习(八)——examples之ndn-simple.cpp每个函数逐行剖析
- 浏览器默认主页被360篡改解决办法
热门文章
- 第二代机器人操作系统课程资料汇总 Course Learning Materials for ROS2 2019.10.23
- 397高校毕业设计选题
- 数据库 多表 查询练习题
- 南京大学计算机学院商琳,【开甲书院】南京大学开甲书院顺利召开2020级新生年级大会...
- 安装命令:pip install xlrd ,pandas操作Excel学习笔记__7000
- nginxgrafana监控面板显示nodatatoshow
- 跳转微信小程序和支付宝小程序
- 国内外视频编解码标准体系-我们在音视频标准化组织的工作,唯有坚持、主动、投入
- 一套策划正确的网页配色方案
- win10怎么修复dns配置?DNS配置错误无法上网怎么解决