无名氏wyw 发表于 2019-12-16 21:21

【原创】【c++】用控制台实现超级井字棋

本帖最后由 无名氏wyw 于 2019-12-18 21:48 编辑

第一次发帖,若做的不好请多多谅解

超级井字棋的玩法与普通井字棋不同,规则如下:

在 3x3 的棋盘中,一共有 9 个区块,每个区块又是由 3x3 的棋盘组成,如图:


赢得大棋盘上的井字棋者获胜;

赢得大棋盘上某一格内的小棋盘上的井字棋者“占领”了大棋盘上的那一格,也相当于在大棋盘的那一格下了一颗棋子(如果小棋盘的9格填满之后是平局,则大棋盘的该格视为空白格);

一方走的每一步都会决定另一方的下一颗棋子可以下的范围。举几个例子:

第一步我下在某个小棋盘的正中间,那么第二步对手只能在正中间的小棋盘里下子。
第一步我下在某个小棋盘的左上角,那么第二步对手只能在左上角的小棋盘里下子。

以此类推,每一步一方下在某个小棋盘的A位置,那么下一步对方只能在大棋盘A位置的那个小棋盘里下子

如果对手下一步要下的小棋盘已被占领或已满,则可以选择任意一个未被占领且非满的小棋盘下子

游戏截图:



操作:
↑↓←→移动,Enter确认,s保存当前状态,q退出游戏,Esc回到选择区块模式(如果可用)

可以保存当前的状态以备下次继续,但暂时只能保存一个(其实你可以改存档文件名)

以后有时间会做悔棋和AI等功能



编译环境:Windows 10 LTSC+Dev-C++(MinGW 4.9.2)


源代码对于Visual Studio的兼容性:可能不兼容,请在源文件头部加入:
#pragma warning(disable:4996)

对于较新版本的Windows 10(比如1809),如果出现棋盘显示异常,请使用旧版控制台(属性——选项——使用旧版控制台——重启程序)


希望大家支持!


代码地址:
链接:https://pan.baidu.com/s/1qGrNHr4xqQp5ojq5QYZ11w
提取码:rtuj

~~当然如果你愿意花1CB来下载我也是很乐意的QWQ~~

chutzpah 发表于 2019-12-18 06:14

同是新人,支持一下。

GrabySky 发表于 2019-12-18 11:31

谢谢分享,楼主好人

唐子啊 发表于 2019-12-18 18:36

支持一下,虽然我还不会敲代码

rjyq168 发表于 2020-2-29 22:43

我玩过这样的,不过是在横线上走,不是在方格上走。
页: [1]
查看完整版本: 【原创】【c++】用控制台实现超级井字棋