java 编写的中国象棋程序2 优秀作品 下载代码即可以运行

 今天为大家继续分享其他的一个非常不错的程序------中国象棋的开发与制作 428,目前系统已经完成了初步功能,后续会进一步完善。整个系统界面漂亮,有完整得源码,希望大家可以喜欢。喜欢的帮忙点赞和关注。一起编程、一起进步!!

开发环境 

  开发语言为Java,开发环境Eclipse或者IDEA都可以。运行主程序,或者执行打开JAR文件即可以运行本程序

系统框架

  利用JDK自带的SWING框架开发,不需要安装第三方JAR包。纯窗体模式,直接运行Main文件即可以。选中APP.java,点右键 run as application启动相关程序。也可以把程序打包成JAR包,双击JAR即可以启动相关的程序。

游戏主要功能

   1 中国象棋简介

中国象棋是起源于中国的一种棋,属于二人对抗性游戏的一种,在中国有着悠久的历史。由于用具简单,趣味性强,成为流行极为广泛的棋艺活动。中国象棋使用方形格状棋盘,圆形棋子共有32个,红黑二色各有16个棋子,摆放和活动在交叉点上。双方交替行棋,先把对方的将(帅)“将死”的一方获胜

 2 游戏规则

中国象棋是由两人轮流走子,在战法上遵循古代孙子兵法中的“不战而屈人之兵,善之善者也”的作战思想,以“将死”或“困毙”对方将(帅)为胜的一种二人对抗性游戏。对局时,由执红棋的一方先走,双方轮流各走一招,直至分出胜、负、和,对局即终了。在棋战中,人们可以从攻与防、虚与实、整体与局部等复杂关系的变化中提升思维能力。详细规则如下:

  1. 对局开始前,双方棋子在棋盘上的摆法见右图。

  2. 对局时,由执红棋的一方先走,双方轮流走一步。

  3. 轮到走棋的一方,将某个棋子从一个交叉点走到另一个交叉点,或者吃掉对方的棋子而占领其交叉点,都算走了一着。

  4. 双方各走一着,称为一个回合。

  5. 走一着棋时,如果己方棋子能够走到的位置有对方棋子存在,就可以把对方棋子吃掉而占领那个位置。

  6. 一方的棋子攻击对方的帅(将),并在下一着要把它吃掉,称为“照将”,或简称“将”。“照将”不必声明。被“照将”的一方必须立即“应将”,即用自己的着法去化解被“将”的状态。如果被“照将”而无法“应将”,就算被“将死”。

     3 象棋主要功能

         本系统的主要功能包括以下几个方面

          1 正常人人对战。红方和黑方每个一人下一局

          2 背景音乐播放。播放与象棋相关的背景音乐,循环播放器

         3 保存棋局。保存好的棋局,可以直接加载进来,继续对战。

         4 重新下棋。用户在下棋过程,用户点击重新下棋,系统会弹出确认框,用户确认后,会重

        新下棋。

         5 退出系统

系统运行效果

1 开始界面

2 对战中界面

3 保存棋局

 关键代码

private void drawChess(Graphics g, int num, int x, int y) {
        int px = x0 + x * lineHeight - chessSize / 2;
        int py = y0 + y * lineHeight - chessSize / 2;
        Image image = null;
        switch (num) {
            case redJiang:
                image = redJiangImg;
                break;
            case redShi:
                image = redShiImg;
                break;
            case redXiang:
                image = redXiangImg;
                break;
            case redMa:
                image = redMaImg;
                break;
            case redChe:
                image = redCheImg;
                break;
            case redPao:
                image = redPaoImg;
                break;
            case redZu:
                image = redZuImg;
                break;
            case blackJiang:
                image = blackJiangImg;
                break;
            case blackShi:
                image = blackShiImg;
                break;
            case blackXiang:
                image = blackXiangImg;
                break;
            case blackMa:
                image = blackMaImg;
                break;
            case blackChe:
                image = blackCheImg;
                break;
            case blackPao:
                image = blackPaoImg;
                break;
            case blackZu:
                image = blackZuImg;
                break;
            case EMPTY:
                break;
            case select:
                image = selectedImg;
                break;
            default:
                throw new IllegalStateException();

        }
        g.drawImage(image, px, py, null);
    }

猜你喜欢

转载自blog.csdn.net/bangxiecode/article/details/129902250