我用三天时间开发了一款老少皆宜的国民级游戏,支持播放音乐,现开放完整源代码和注释(建议收藏)!!

关于实现类,我们就查看下兵和卒的棋子实现类,其他实现类,小伙伴们自行查看项目源码。

package io.binghe.chess.piece.impl;

import io.binghe.chess.piece.Chess;

import io.binghe.chess.utils.ImageTools;

import javax.swing.*;

import java.awt.*;

/**

  • @author binghe

  • @version 1.0.0

  • @description 士兵与卒的棋子

*/

public class SoldierChess implements Chess {

@Override

public boolean check(int[][] map, int currentRow, int currentColumn, int toRow, int toColumn, boolean isBlack) {

int columnDistance = toColumn - currentColumn;

int rowDistance = toRow - currentRow;

//黑色棋子

if(isBlack){

//当前棋子未过河,只能向下移动一格

if(currentRow <= 4){

//如果是向下移动一格,则返回true,否则,返回false

return (columnDistance == 0 && rowDistance == 1);

}

//当前棋子已经过河

columnDistance = Math.abs(toColumn - currentColumn);

//如果当前棋子已经过河,则前进一格,可以横向移动

boolean success = (columnDistance == 1 && rowDistance == 0) || (rowDistance == 1 && columnDistance == 0);

//如果不是向下,向左或向右移动,则失败

if(!success){

return false;

}

if(map[toRow][toColumn] == ‘G’){

JOptionPane.showMessageDialog(null, “黑方胜利!”);

}

return true;

}else{ //红色棋子

if(currentRow >= 5){ //红色棋子未过河

//红色棋子未过河,只能向上走

return (columnDistance == 0 && rowDistance == -1);

}

//当前棋子已经过河

columnDistance = Math.abs(toColumn - currentColumn);

//红卒过河后向上、向左、向右移动

boolean success = (columnDistance == 1 && rowDistance == 0) || (rowDistance == -1 && columnDistance == 0);

if(!success){

return false;

}

if(map[toRow][toColumn] == 1000 + ‘G’){

JOptionPane.showMessageDialog(null, “红方胜利!”);

}

return true;

}

}

@Override

public int getType() {

return ‘A’;

}

@Override

public String getName() {

return “卒”;

}

@Override

public Image getImage(boolean isBlack) {

return ImageTools.loadImage(isBlack?“black_soldier.gif”:“red_soldier.gif”);

}

}

其他棋子的实现类,小伙伴们自行查看源代码吧。

接下来,再看看运行效果,下载源代码之后,运行io.binghe.chess.starter包下的ChessStarter类,一个完整的棋盘就呈现出来了,注意:需要点击“新游戏”方可开始。

在这里插入图片描述

红方胜利。

在这里插入图片描述

点击新游戏,又会呈现出新摆好的棋盘。

在这里插入图片描述

不玩了,退出游戏。

在这里插入图片描述

可以看到,实现了中国象棋的整体功能。

建议小伙伴们自行下载源代码学习,这个项目可用作毕业设计,项目中使用了Java的基础数据结构和算法,也可作为学习Java的入门项目。

说了这么多,该如何下载这款游戏的源码呢?这款游戏的源码我已经上传到CSDN啦。

文末

我将这三次阿里面试的题目全部分专题整理出来,并附带上详细的答案解析,生成了一份PDF文档

  • 第一个要分享给大家的就是算法和数据结构

网易严选Java开发三面面经:HashMap+JVM+索引+消息队列

  • 第二个就是数据库的高频知识点与性能优化

网易严选Java开发三面面经:HashMap+JVM+索引+消息队列

  • 第三个则是并发编程(72个知识点学习)

网易严选Java开发三面面经:HashMap+JVM+索引+消息队列

  • 最后一个是各大JAVA架构专题的面试点+解析+我的一些学习的书籍资料

网易严选Java开发三面面经:HashMap+JVM+索引+消息队列

还有更多的Redis、MySQL、JVM、Kafka、微服务、Spring全家桶等学习笔记这里就不一一列举出来

353)]

  • 第三个则是并发编程(72个知识点学习)

[外链图片转存中…(img-a04VJxGi-1720108651353)]

  • 最后一个是各大JAVA架构专题的面试点+解析+我的一些学习的书籍资料

[外链图片转存中…(img-psTHNO3T-1720108651354)]

还有更多的Redis、MySQL、JVM、Kafka、微服务、Spring全家桶等学习笔记这里就不一一列举出来

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
E:. │ 1.txt │ ├─千锋Python教程:第01章 第一个Python程序与数据存储及数据类型(9集) │ │ .DS_Store │ │ │ ├─code │ │ 1、数据存储.txt │ │ 2、第一个python程序.py │ │ 3、注释.py │ │ 4、输出与输入.py │ │ 5、Python数据类型.py │ │ 6、标识符.py │ │ 7、变量与常量.py │ │ │ ├─file │ │ │ MindManager_64bit_17.2.208.exe │ │ │ Python安装.pdf │ │ │ Python概述.pdf │ │ │ submit 2.0.rar │ │ │ │ │ ├─pycharm专业版 │ │ │ pycharm-professional-2017.2.3.exe │ │ │ Pycharm.txt │ │ │ │ │ └─python3.6 │ │ └─windows │ │ python-3.6.0-amd64.exe │ │ │ └─video │ 千锋Python教程:01.python概述和工具的安装.mp4 │ 千锋Python教程:02.数据存储与二进制操作1.mp4 │ 千锋Python教程:03.数据存储与二进制操作2.mp4 │ 千锋Python教程:04.第一个Python程序与注释及输入输出.mp4 │ 千锋Python教程:05.Python数据类型,标识符,变量与常量以及Number数据类型1.mp4 │ 千锋Python教程:06.Python数据类型,标识符,变量与常量以及Number数据类型2.mp4 │ 千锋Python教程:07.Python数据类型,标识符,变量与常量以及Number数据类型3.mp4 │ 千锋Python教程:08.数学功能与数字类型转换的使用1.mp4 │ 千锋Python教程:09.数学功能与数字类型转换的使用2.mp4 │ ├─千锋Python教程:第02章 运算符与表达式(7集) │ │ .DS_Store │ │ │ ├─code │ │ 1、运算符与表达式.py │ │ 2、运算符与表达式.py │ │ │ └─video │ 千锋Python教程:10.算术&赋值&位&关系运算符与表达式1.mp4 │ 千锋Python教程:11.算术&赋值&位&关系运算符与表达式2.mp4 │ 千锋Python教程:12.逻辑运算符与表达式1.mp4 │ 千锋Python教程:13.逻辑运算符与表达式2.mp4 │ 千锋Python教程:14.成员&身份运算符&字符串1.mp4 │ 千锋Python教程:15.成员&身份运算符&字符串2.mp4 │ 千锋Python教程:16.成员&身份运算符&字符串3.mp4 │ ├─千锋Python教程:第03章 字符串&布尔&空值(7集) │ │ .DS_Store │ │ │ ├─code │ │ 1、String(字符串).py │ │ 2、String的内置函数.py │ │ 3、布尔值和空值.py │ │ 4、变量的类型问题.py │ │ │ └─video │ 千锋Python教程:17.运算符&字符串1.mp4 │ 千锋Python教程:18.运算符&字符串2.mp4 │ 千锋Python教程:19.字符串的使用1.mp4 │ 千锋Python教程:20.字符串的使用2.mp4 │ 千锋Python教程:21.字符串的使用3.mp4 │ 千锋Python教程:22.字符串&布尔值&空值&变量的类型问题1.mp4 │ 千锋Python教程:23.字符串&布尔值&空值&变量的类型问题2.mp4 │ ├─千
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值