} }
.setMessage(\五子棋起源于中国古代的传统黑白棋种之一,它不仅能增强思维能力 提高智力,.setPositiveButton(\确定\new DialogInterface.OnClickListener() { }
new AlertDialog.Builder(biye.this) .setTitle(\退出\
.setIcon(R.drawable.icon) .setMessage(\确定离开游戏吗?\.setPositiveButton(\确定\
new DialogInterface.OnClickListener() { }
).setNegativeButton(\取消\
new DialogInterface.OnClickListener() { }
).show();
public void onClick(DialogInterface dialog, int which) { }
public void onClick(DialogInterface dialog, int which) { }
finish();
public void onClick(DialogInterface dialog, int which) {
}
而且富含哲理,有助于修身养性。\
}).show();
if(v==b5){
};
b1.setOnClickListener(oc1); b3.setOnClickListener(oc1); b4.setOnClickListener(oc1); b5.setOnClickListener(oc1); } }
新游戏的开始到结束:
import java.util.ArrayList; import java.util.List;
import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint;
- 33 -
import android.graphics.drawable.Drawable; import android.os.Handler; import android.os.Message; import android.util.AttributeSet; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; import android.widget.TextView; import five.itcast.cn.player.AiFactory;
import five.itcast.cn.player.concrete.HumanPlayer; import five.itcast.cn.player.interfaces.IPlayer; //棋盘
public class Chessboard extends View implements IChessboard{ //游戏状态常量: //已准备好,可开局
private static final int READY = 1; //已开局
private static final int RUNNING = 2; //已结束
private static final int PLAYER_TWO_LOST = 3; private static final int PLAYER_ONE_LOST = 4;
//当前状态,默认为可开局状态 private int currentMode = READY;
//画笔对象
private final Paint paint = new Paint();
//代表黑色
private static final int BLACK = 0;
private static final int NEW_BLACK = 1;
//白色
private static final int WHITE = 2; //黄色
private static final int NEW_WHITE = 3;
//点大小
private static int pointSize = 20;
//用于提示输赢的文本控件
private TextView textView = null;
- 34 -
//不同颜色的Bigmap数组
private Bitmap[] pointArray = new Bitmap[4];
//屏幕右下角的坐标值,即最大坐标值
private static int maxX;
private static int maxY;
//第一点偏离左上角从像数,为了棋盘居中
private static int yOffset; private static int xOffset;
//两个玩家
//第一个玩家默认为人类玩家
private IPlayer player1 = new HumanPlayer();
//第二个则根据选择人机战还是对战模式来初始化 private IPlayer player2; //预先初始两个第二玩家 //电脑玩家
private static final IPlayer computer = AiFactory.getInstance(2); //人类玩家
private static final IPlayer human = new HumanPlayer();
// 所有未下的空白点
private final List
public Chessboard(Context context, AttributeSet attrs) { super(context, attrs); setFocusable(true);
//把三个颜色的点准备好,并放入数组
Resources r = this.getContext().getResources();
fillPointArrays(BLACK,r.getDrawable(R.drawable.Black_point));
fillPointArrays(NEW_BLACK,r.getDrawable(R.drawable.new_Black_point)); fillPointArrays(WHITE,r.getDrawable(R.drawable.White_point));
fillPointArrays(NEW_WHITE,r.getDrawable(R.drawable.new_White_point));
//设置画线时用的颜色 paint.setColor(Color.LTGRAY); }
//初始横线和竖线的数目 @Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
- 35 -
maxX = (int) Math.floor(w / pointSize); maxY = (int) Math.floor(h / pointSize);
//设置X、Y座标微调值,目的整个框居中 xOffset = ((w - (pointSize * maxX)) / 2); yOffset = ((h - (pointSize * maxY)) / 2); //创建棋盘上的线条 createLines();
//初始化棋盘上所有空白点 createPoints(); }
//产生棋盘上所有的线
private void createLines(){ for (int i = 0; i <= maxX; i++) {//竖线
lines.add(new Line(xOffset+i*pointSize-pointSize/2, xOffset+i*pointSize-pointSize/2, yOffset+maxY*pointSize)); } for (int i = 0; i <= maxY; i++) {//横线 lines.add(new Line(xOffset, xOffset+maxX*pointSize, yOffset+i*pointSize-pointSize/2)); } }
//画棋盘
private List
}
//线类 class Line{
}
//画点
float xStart,yStart,xStop,yStop;
public Line(float xStart, float yStart, float xStop, float yStop) { this.xStart = xStart;
}
this.yStart = yStart; this.xStop = xStop; this.yStop = yStop;
for (Line line : lines) {
canvas.drawLine(line.xStart, line.yStart, line.xStop, line.yStop, paint); }
yOffset,
yOffset+i*pointSize-pointSize/2,
- 36 -
相关推荐: