java android五子棋_基于android实现五子棋开发

基于Android的五子棋的开发,供大家参考,具体内容如下

需求分析

1 棋盘和棋子绘制

2 按照五子棋的规则制定游戏胜负规则

3 鼠标响应 在对战中 需要通过鼠标点击下棋 进行游戏的基本操作

4 游戏模式 双人对战 两人交替落子 双方孰先孰后随机决定

5 棋子的形式和作用 棋子分为黑白两种棋子 双方各持一种棋子 通过黑先白后的方式来进行对局

6 通过棋子完成五连珠结束游戏

流程图

cdae1767737170ab21ecf5a928dd6f57.png

android stdio中的基本架构

1dfa4cca358c1e157d37f6f0b22c81b1.png

CheckWinner.java

package com.example.wuziqi;

import android.graphics.Point;

import java.util.List;

/**

* Created by Linux on 2016/4/8.

*/

public class CheckWinner {

private Point point1, point2;

private int checkModel = Constants.HORIZONTAL;

public boolean checkFiveInLineWinner(List points) {

for (Point point : points) {

int x = point.x;

int y = point.y;

if (checkHorizontal(x, y, points)) {

return true;

} else if (checkVertical(x, y, points)) {

return true;

} else if (checkLeftDiagonal(x, y, points)) {

return true;

} else if (checkRighttDiagonal(x, y, points)) {

return true;

}

}

return false;

}

private boolean check(int x, int y, List points, int checkOri) {

int count = 1;

for (int i = 1; i < Constants.MAX_COUNT_IN_LINE; i++) {

switch (checkOri) {

case Constants.HORIZONTAL:

point1 = new Point(x - i, y);

break;

case Constants.VERTICAL:

point1 = new Point(x, y - i);

break;

case Constants.LEFT_DIAGONAL:

point1 = new Point(x - i, y + i);

break;

case Constants.RIGHT_DIAGONAL:

point1 = new Point(x + i, y + i);

break;

}

if (points.contains(point1)) {

count++;

} else {

break;

}

}

for (int i = 1; i < Constants.MAX_COUNT_IN_LINE; i++) {

switch (checkOri) {

case Constants.HORIZONTAL:

point2 = new Point(x + i, y);

break;

case Constants.VERTICAL:

point2 = new Point(x, y + i);

break;

case Constants.LEFT_DIAGONAL:

point2 = new Point(x + i, y - i);

break;

case Constants.RIGHT_DIAGONAL:

point2 = new Point(x - i, y - i);

break;

}

if (points.contains(point2)) {

count++;

} else {

break;

}

}

if (count == Constants.MAX_COUNT_IN_LINE) {

return true;

}

return false;

}

// 横向判断

private boolean checkHorizontal(int x, int y, List points) {

checkModel = Constants.HORIZONTAL;

return check(x, y, points, checkModel);

}

// 竖向判断

private boolean checkVertical(int x, int y, List points) {

checkModel = Constants.VERTICAL;

return check(x, y, points, checkModel);

}

// 左斜判断

private boolean checkLeftDiagonal(int x, int y, List points) {

c

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值