Giter Club home page Giter Club logo

sunnychess's Introduction

SunnyChess 五子棋

本项目使用

  • CMake构建工具
  • MinGW工具链
  • MinGW版本的EasyX图形库 (位于SunnyChess/libs文件夹内,无需额外安装)

IDE支持

  • 支持使用配置好MinGW工具链的VSCode (安装C/C++, CMake, CMake Tools扩展后,使用VSCode打开本项目SunnyChess文件夹即可自动加载,点击屏幕下方的Build即可构建,在SunnyChess/build文件夹内将会生成SunnyChess.exe可执行文件,双击即可运行)
  • 支持使用CLion (无需配置,使用CLion捆绑的MinGW工具链即可)
  • 不支持Visual Studio

项目简介

  • SunnyChess是一款五子棋游戏,但不仅有传统的2人五子棋玩法,还有最多支持6人的多人五子棋玩法
  • 因为在项目构想之初,不仅仅想只做五子棋,还想顺便做个围棋,所以在类的设计上多出了一些看似无用的父类,其实是为了方便围棋进行代码的复用
  • 但是因为时间不充裕,围棋的实现只能作罢,把精力放在了对五子棋代码细节的完善上

各界面详细介绍

主界面(MainMenu)

  • 运行程序,首先进入主界面,点击带有五子棋字样的按钮,进入五子棋准备界面

五子棋准备界面(GomokuPreparationMenu)

  • 在五子棋准备界面,有各种选项可供选择,分别为模式(好友对战/人机对战)、人数(2-6)、棋色(随机/黑棋/白棋)、棋盘大小(13/15/17/19/21)
  • 某些选项仅在特定的其他选项选中时可选
  • 比如人数仅在选中好友对战时可选(因为人机对战人数固定为2),棋色仅在人数选中2时可选(人数大于2时棋色固定为随机)
  • 各选项选择完毕后,点击下方的开始游戏按钮即可进入五子棋对弈界面

模式介绍

好友对战
  • 与你的好友一同对战,可以支持2-6人对战
  • 可以都使用鼠标操作,也可以使用键盘操作
  • 最多支持5种不同的键位操作,若选择6人对战,则可以5个人使用键盘,另外1人使用鼠标
  • 当五子棋人数大于2时,传统五子棋的很多经验都不适用了
  • “活3”不再是威胁,当遇到传统五子棋必须去堵的棋型时,可以考虑逼下回合的玩家去堵
人机对战
  • 与电脑Bot进行传统五子棋的对局
  • Bot算法对各种棋型进行评分,按照“敌之好点即我之好点”的原则进行经验评分,选取评分最高的所有点中的随机一点作为落子点
  • 该算法仅进行经验评分,并未对各种可能的情况进行搜索

五子棋对弈界面(GomokuMenu)

  • 进入五子棋对弈界面,就可以开始下棋了
  • 界面右上方为计时器,记录从对局开始到当前的时长,当游戏结束时停止计时
  • 计时器下方为当前回合玩家的棋色
  • 当前回合玩家的棋色下方为当前回合玩家的按键提示
  • 所有玩家下棋均可通过鼠标左键点击进行操作,同时也可以通过界面右上方提示的按键进行操作
  • 按键提示的左上方按键为落子键,按下即可在棋盘中当前选择框的位置落子
  • 按键提示的其余4个按键为上下左右移动键,可以对棋盘中的选择框进行上下左右移动
  • 按键提示下方为悔棋按钮,由当前回合玩家按下后,将会退回到当前回合玩家上一轮落子之前
  • 悔棋按钮下方为返回按钮,点击即可返回五子棋准备界面
  • 某个玩家胜利后,会弹出标有胜利玩家棋色的胜利标识,点击即可隐藏
  • 当试图在已经有棋子的格子内落子时,会弹出禁止落子的图标提示

已知bug

将窗口拖出屏幕再拖回来后,部分区域会变成黑色,但点击任意按钮更新界面后,即可恢复正常

注意事项

将图形界面窗口关闭后,一定也要将命令行窗口关闭,否则可能导致编译构建失败

sunnychess's People

Contributors

sunshine-wzy avatar fengming425 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.