第一范文网 - 专业文章范例文档资料分享平台

(只要10分)基于Android的五子棋游戏设计

来源:用户分享 时间:2025/5/19 20:16:14 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

} }

.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 allFreePoints = new ArrayList();

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 lines = new ArrayList(); private void drawChssboardLines(Canvas canvas){

}

//线类 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 -

(只要10分)基于Android的五子棋游戏设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c1v9th2jl2g4x67j2pupj_9.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top