zoukankan      html  css  js  c++  java
  • Java—面对对象课程设计(五子棋)

    一、项目简介

    • 功能描述:所做项目为五子棋对战,其中包括人机对战以及联机对战。功能有悔棋以及重开。借鉴自"人机五子棋"并增加了不少功能。
    • 参考git地址https://gitee.com/kaguya0/chess-game
    • 本人负责任务:人机AI,重开功能,游戏界面优化,游戏音效,标记棋子

    二、功能架构图

    三、个人任务简介

    1.完成的任务与功能

    序号 完成功能和任务 描述
    1 添加音效 启动程序播放BGM,落子带有音效。
    2 人机AI 人机通过五元组评分算法寻找最优落子点
    3 重开功能 初始化双方棋盘以及棋子
    4 标记棋子功能 落子后,在棋子中心做上红点标记。
    5 界面优化 增加棋盘背景,修改棋子样式。修改鼠标光标样式。

    2.git提交记录截图:

    四、本人负责功能详解

    1.游戏添加音效

    • Java能播放的音乐的格式wav格式音乐。对于播放mp3音乐,我不信邪的尝试了一天,结果也只能妥协,最终也是找到一个工具成功的将mp3转化为wav,这自然就能调用网络上大部分代码来播放音乐了。
    • 音乐播放参考代码:

    2.人机AI

    • 人机判断落子的算法最常见的即为五元组评分表算法。对于一个15*15的棋盘,其对应有572个五元组,每个位置的得分通过其八方各五元组的评分相加,最终AI选取得分最高且没落子的位置。评分表参考如下:(其中“×”代表任意数。)
    玩家落子个数 AI落子个数 评分
    >0 >0 0
    0 0 7
    × 1 35
    × 2 500
    × 3 15000
    × 4 800000
    1 × 15
    2 × 400
    3 × 1800
    4 × 100000
    • 得分计算:计算某位置的得分时,以该点为中心,向周围8个方向包括自己各取8个五元组,根据五元组内落子个数情况,每个五元组通过上方的评分表按顺序匹配评分,将8个五元组得分相加即为该点的评分。(参考博客:https://www.cnblogs.com/chaiwenjun000/p/5321115.html)

    3.重开功能

    • 游戏进行过程中,请求重开,只有对方玩家同意后,才会初始化双方的棋盘,完成重开。

    4.标记棋子功能

    • 用于警示玩家落子的位置,当落子后,获取落子的坐标,并在该坐标画红点,达到标记的效果。

    5.游戏界面优化

    • 这部分主要是为了让游戏更有五子棋的味道,而不是仅仅是由点线构成的游戏。
    1. 棋盘、棋子以及鼠标光标


  • 相关阅读:
    计算机图形学
    2017.3.20
    史上最强型人养成秘籍: 90 天肥仔变型男实录
    Word 2013发布博客测试
    eeeeeeeeeee
    测试,使用word2013发布博客园博客
    Win7系统桌面便签怎么添加?
    开启两步验证的教程
    【Todo】 cygwin下emacs中M-x shell 中出现乱码
    emacs的LoadPath
  • 原文地址:https://www.cnblogs.com/gdlkblue/p/14342297.html
Copyright © 2011-2022 走看看