package entity;
import javafx.scene.control.Alert;
public class FiveChess{
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
public double getCellLen() {
return cellLen;
}
public void setCellLen(double cellLen) {
this.cellLen = cellLen;
}
/**
* 维度
*/
private int n;
private double width;
private double height;
private double cellLen;
private char currentSide='B';
public char getFlag() {
return flag;
}
private char flag=' ';
private char[][] chess;
public char[][] getChess() {
return chess;
}
public void setChess(char[][] chess) {
this.chess = chess;
}
public char getCurrentSide() {
return currentSide;
}
public void setCurrentSide(char currentSide) {
this.currentSide = currentSide;
}
//其他请补充
public FiveChess(double width,double height,double cellLen){
this.width=width;
this.height=height;
this.cellLen=cellLen;
chess=new char[(int)height][(int)width];
for(int i=0;i<height;i++)
for(int j=0;j<width;j++)
chess[i][j]=' ';
}
public void play(int x,int y){
//将当前的棋子放置到(x,y)
if(chess[x][y]==' '){
chess[x][y]=currentSide;
if(!judgeGame(x,y,currentSide)){
//游戏结束弹出信息框
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("五子棋游戏");
alert.setHeaderText("提示信息");
alert.setContentText(currentSide+"方取得胜利!");
alert.showAndWait();
}
changeSide();
}
}
public void changeSide(){
//更换下棋方
setCurrentSide(currentSide=='B'?'W':'B');
}
public boolean judgeGame(int row, int col, char chessColor){
//判断游戏是否结束
if(rowJudge(row,col,chessColor)&&colJudge(row,col,chessColor)&&mainDiagonalJudge(row,col,chessColor)&&DeputyDiagonalJudge(row,col,chessColor))
return true;
return false;
}
public boolean rowJudge(int row,int col,char chessColor){
//判断一行是否五子连线
int count=0;
for(int j=col;j<width;j++){
if(chess[row][j]!=chessColor)
break;
count++;
}
for(int j=col-1;j>=0;j--){
if(chess[row][j]!=chessColor)
break;
count++;
}
if(count>=5)
return false;
return true;
}
public boolean colJudge(int row,int col,char chessColor){
//判断一列是否五子连线
int count=0;
for(int i=row;i<height;i++){
if(chess[i][col]!=chessColor)
break;
count++;
}
for(int i=row-1;i>=0;i--){
if(chess[i][col]!=chessColor)
break;
count++;
}
if(count>=5)
return false;
return true;
}
public boolean mainDiagonalJudge(int row,int col,char chessColor){
//判断主对角线是否五子连线
int count=0;
for(int i=row,j=col;i<height&&j<width;i++,j++){
if(chess[i][j]!=chessColor)
break;
count++;
}
for(int i=row-1,j=col-1;i>=0&&j>=0;i--,j--){
if(chess[i][j]!=chessColor)
break;
count++;
}
if(count>=5)
return false;
return true;
}
public boolean DeputyDiagonalJudge(int row,int col,char chessColor){
//判断副对角线是否五子连线
int count=0;
for(int i=row,j=col;i>=0&&j<width;i--,j++){
if(chess[i][j]!=chessColor)
break;
count++;
}
for(int i=row+1,j=col-1;i<height&&j>=0;i++,j--){
if(chess[i][j]!=chessColor)
break;
count++;
}
if(count>=5)
return false;
return true;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于JAVA的五子棋游戏设计
共29个文件
xml:10个
class:8个
png:4个
需积分: 5 0 下载量 120 浏览量
2024-10-14
14:16:43
上传
评论
收藏 12.19MB ZIP 举报
温馨提示
本项目适合于JAVA游戏开发的实战入门和相关课程设计
资源推荐
资源详情
资源评论
收起资源包目录
五子棋.zip (29个子文件)
五子棋
src
controller
PlayAction.java 1KB
view
ChessPane.java 2KB
enums
entity
FiveChess.java 5KB
icon
xx.png 6.04MB
icon.png 44KB
Test.java 4KB
out
production
JavaFxApplication
Test.class 2KB
Test$1.class 2KB
Test$2.class 2KB
controller
PlayAction.class 2KB
Test$4.class 2KB
view
ChessPane.class 2KB
entity
FiveChess.class 4KB
icon
xx.png 6.04MB
icon.png 44KB
Test$3.class 2KB
.idea
description.html 189B
uiDesigner.xml 9KB
libraries
jdk1_8.xml 215B
javaFX.xml 425B
vcs.xml 173B
workspace.xml 13KB
misc.xml 411B
compiler.xml 734B
modules.xml 285B
gradle.xml 142B
encodings.xml 164B
test.iml 563B
JavaFxApplication.iml 433B
共 29 条
- 1
资源评论
一只枫林
- 粉丝: 136
- 资源: 23
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功