安卓studio五子棋代码详细解释版本(转载或需要apk文件请联系)

//这个安卓项目在300行左右
package com.example.myapplication;
//import关键字是用来导入包的,package就相当于我们的姓,类class就相当于我们的名,接着在代码中就只用使用类,而不用写包名(姓)
import android.content.Context; //Context描述的是一个应用程序环境的信息,即上下文,代表与操作系统的交互的一种过程,比如具体到某一个界面activity,对于view也属于一种context
import android.graphics.Bitmap; //bitmap位图图像格式
import android.graphics.BitmapFactory; //对我们导入的图片做一些操作
import android.graphics.Canvas; //画图canvas类必备,确定画线还是画什么东西
import android.graphics.Paint; //绘图,比如设置颜色
import android.graphics.Point; //点
import android.os.Bundle; //后方我将这个做注释
import android.os.Parcelable; //后方我将这个做注释
import android.util.AttributeSet; //使用AttributeSet来完成控件类的构造函数,自定义的view也需要这个支持
import android.view.MotionEvent; //触摸必须要用到的类
import android.view.View; //view视图
import android.widget.Toast; //toast显示浮动窗口
import androidx.annotation.Nullable; //有了这个之后,比如参数可以空
import java.util.ArrayList; //数组,可以插入各种类型的数据
import java.util.List; //数组,不能插入其他数据类型的数据
//extends view是一个父类(基类/超类),新的类是子类(派生类),实例就是一个例子,一个特定的变量值
//类是不能用private修饰的,当类被修饰成private没有任何意思,因为外部想要这个类时由于private的存在而无能为力
public class WuziqiPanel extends View //声明的公共类WuziqiPanel,在其他类中可以调用,但是private类型只能在本类(本java文件)中使用
{
//new&delete;free&malloc
private int mPanelWidth;//一个格子宽度
private float mLineHeight;//一个格子高度,由于是正方形,当然一样了,我这里要用mlineheight去后面做计算所以使用float类型
private int MAX_LINE = 12;//棋盘的画线最多需要多少列/多少行,这个意思是每行最多下几个棋子,或者每列最多下几个棋子
private float ratioPieceOfLineHight=3*1.0f/4; //我们绘制的棋子不能连在一块,这个意思是占半个宽度或者高度的3/4,所以最后的每个方块还有1/4个mlineheight长度
//转化为浮点数的方法是×1.0f
private Paint mPaint=new Paint(); //new是开辟一片内存空间,Paint类之后是mPaint(我定义的成员变量)
private Bitmap mWhitePiece; //Bitmap类声明,白色棋子
private Bitmap mBlackPiece; //Bitmap类声明,黑色棋子
private boolean mIsWhite= true; //白棋先手或者当前轮到白棋
private ArrayList mWhiteArray= new ArrayList<>(); //新建一个数组保存Point类型的数据
private ArrayListmBlackArray= new ArrayList<>();
private boolean mIsGameOver; //游戏是不是结束
private boolean mIsWhiteWinner; //true白棋胜利,false黑棋胜利
private int MAX_COUNT_IN_LINE=5; //五子连珠定义
//下面是核心代码WuziqiPanel是自定义的view
public WuziqiPanel(Context context,AttributeSet attrs) {//@Nullable注解:参数可为空值
super(context, attrs);
//setBackgroundColor(0x44ff0000);这是当时的测试view是否成功,使用的背景颜色(半透明)
//super只在子类中出现
,而且super有三种用法
【1】 super.xxx;
xxx可以是类的属性。
例如super.name;即从子类中获取父类name属性的值

    //【2】 super.xxx();

xxx()可以是类中的方法名。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值