【GXZ的原创】C++小游戏——五子棋
前些时候考完试自己编的带有胜负判定的五子棋。
操作方法:WSAD或↑↓←→移动下棋位置,Space或Enter放置。
如果游戏出现bug,欢迎大家在评论区反馈。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <math.h>
#include <algorithm>
#include <conio.h>
#include <windows.h>
using namespace std;
#define fblack() SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE) , BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE)
#define fwhite() SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE) , FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE);
][] , mx = , my = , turn = , nap;
char ch;
void go(int x , int y)
{
COORD pos = {x , y};
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hOut , pos);
}
void pmap()
{
puts("");
puts(" ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐");
puts(" │ │ │ │ │ │ │ │ │ │ │ │ │ │ │");
puts(" ├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤");
puts(" │ │ │ │ │ │ │ │ │ │ │ │ │ │ │");
puts(" ├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤");
puts(" │ │ │ │ │ │ │ │ │ │ │ │ │ │ │");
puts(" ├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤");
puts(" │ │ │ │ │ │ │ │ │ │ │ │ │ │ │");
puts(" ├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤");
puts(" │ │ │ │ │ │ │ │ │ │ │ │ │ │ │");
puts(" ├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤");
puts(" │ │ │ │ │ │ │ │ │ │ │ │ │ │ │");
puts(" ├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤");
puts(" │ │ │ │ │ │ │↘│↙│ │ │ │ │ │ │");
puts(" ├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤");
puts(" │ │ │ │ │ │ │↗│↖│ │ │ │ │ │ │");
puts(" ├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤");
puts(" │ │ │ │ │ │ │ │ │ │ │ │ │ │ │");
puts(" ├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤");
puts(" │ │ │ │ │ │ │ │ │ │ │ │ │ │ │");
puts(" ├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤");
puts(" │ │ │ │ │ │ │ │ │ │ │ │ │ │ │");
puts(" ├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤");
puts(" │ │ │ │ │ │ │ │ │ │ │ │ │ │ │");
puts(" ├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤");
puts(" │ │ │ │ │ │ │ │ │ │ │ │ │ │ │");
puts(" ├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤");
puts(" │ │ │ │ │ │ │ │ │ │ │ │ │ │ │");
puts(" └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘\n");
}
void movemouse(int ax , int ay , int bx , int by)
{
go( + ay * - , ax * - );
printf(" ");
go( + ay * - , ax * - );
printf(" ");
go( + ay * - , ax * );
printf(" ");
go( + ay * - , ax * );
printf(" ");
go( + by * - , bx * - );
printf("↘");
go( + by * - , bx * - );
printf("↙");
go( + by * - , bx * );
printf("↗");
go( + by * - , bx * );
printf("↖");
go( , );
}
void changechess(int x , int y , int p)
{
go( + y * - , x * - );
)
{
fblack();
printf("●");
}
else
{
fwhite();
printf("●");
}
map[x][y] = p;
fblack();
go( , );
}
bool judge(int lx , int ly , int p)
{
int x , y , n;
x = lx;
y = ly;
n = ;
&& map[x][y] == p)
{
n ++ ;
x -- ;
}
x = lx + ;
y = ly;
&& map[x][y] == p)
{
n ++ ;
x ++ ;
}
)
{
;
}
x = lx;
y = ly;
n = ;
&& map[x][y] == p)
{
n ++ ;
y -- ;
}
x = lx;
y = ly + ;
&& map[x][y] == p)
{
n ++ ;
y ++ ;
}
)
{
;
}
x = lx;
y = ly;
n = ;
&& y >= && map[x][y] == p)
{
n ++ ;
x -- ;
y -- ;
}
x = lx + ;
y = ly + ;
&& y <= && map[x][y] == p)
{
n ++ ;
x ++ ;
y ++ ;
}
)
{
;
}
x = lx;
y = ly;
n = ;
&& y <= && map[x][y] == p)
{
n ++ ;
x -- ;
y ++ ;
}
x = lx + ;
y = ly - ;
&& y >= && map[x][y] == p)
{
n ++ ;
x ++ ;
y -- ;
}
)
{
;
}
;
}
int main()
{
system("color 70");
system("mode con cols=80 lines=35");
pmap();
)
{
while(ch = getch())
{
)
{
ch = getch();
&& my > ) //l
{
movemouse(mx , my , mx , my - );
my -- ;
}
&& my < ) //r
{
movemouse(mx , my , mx , my + );
my ++ ;
}
&& mx > ) //u
{
movemouse(mx , my , mx - , my);
mx -- ;
}
&& mx < ) //d
{
movemouse(mx , my , mx + , my);
mx ++ ;
}
}
else if(ch == 'a') //l
{
movemouse(mx , my , mx , my - );
my -- ;
}
else if(ch == 'd') //r
{
movemouse(mx , my , mx , my + );
my ++ ;
}
else if(ch == 'w') //u
{
movemouse(mx , my , mx - , my);
mx -- ;
}
else if(ch == 's') //d
{
movemouse(mx , my , mx + , my);
mx ++ ;
}
|| ch == )&& !map[mx][my])
{
changechess(mx , my , turn);
nap ++ ;
break;
}
}
if(judge(mx , my , turn))
{
)
{
printf(" 黑方胜!\n\n");
}
else
{
printf(" 白方胜!\n\n");
}
break;
}
)
{
printf(" 平局!\n\n");
break;
}
turn = - turn;
}
Sleep();
printf(" ");
system("pause");
;
}
【GXZ的原创】C++小游戏——五子棋的更多相关文章
- 原创跑酷小游戏《Cube Duck Run》 - - 方块鸭快跑
自从unity5出来才开始关注unity,业余时间尝试做了个小游戏: <方块鸭快跑> (Cube Duck Run) 像素风,3d视角,色彩明快,有无尽和关卡两种模式. 应用连接: goo ...
- c++小游戏--五子棋
大家好,我是芝麻狐! 这是我自制的小游戏,目前仅支持devc++. 如果你没有c++软件, 请打开网站GDB online Debugger | Compiler - Code, Compile, R ...
- c++小游戏——五子棋
#include<iostream> #include<iomanip> #include<cstring> using namespace std; const ...
- 介绍一款Android小游戏--交互式人机对战五子棋
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6589025 学习Android系统开发之余,编 ...
- js小游戏:五子棋
使用纯js的小游戏,五子棋 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- 小游戏——js+h5[canvas]+cs3制作【五子棋】小游戏
五子棋小游戏学习—— 有一个问题是,棋盘线的颜色,在canvas中,明明设置了灰色,但在我的预览中还是黑色的,很重的颜色. 以下是复刻的源码: <!DOCTYPE html> <ht ...
- Java五子棋小游戏(控制台纯Ai算法)
Java五子棋小游戏(控制台纯Ai算法) 继续之前的那个五子棋程序 修复了一些已知的小Bug 这里是之前的五子棋程序 原文链接 修复了一些算法缺陷 本次增加了AI算法 可以人机对战 也可以Ai对Ai看 ...
- 基于FPGA的飞机的小游戏
基于FPGA的飞机的小游戏 实验原理 该实验主要分为4个模块,采用至上而下的设计方法进行设计.由50M的晶振电路提供时钟源,VGA显示控制模块.图形显示控制模块.移动模块的时钟为25M,由时钟分频电路 ...
- 12岁的少年教你用Python做小游戏
首页 资讯 文章 频道 资源 小组 相亲 登录 注册 首页 最新文章 经典回顾 开发 设计 IT技术 职场 业界 极客 创业 访谈 在国外 - 导航条 - 首页 最新文章 经典回顾 开发 ...
随机推荐
- [资料搜集狂]D3.js数据可视化开发库
偶然看到一个强大的D3.js,存档之. D3.js 是近年来十分流行的一个数据可视化开发库. 采用BSD协议 源码:https://github.com/mbostock/d3 官网:http://d ...
- 加州大学伯克利分校Stat2.2x Probability 概率初步学习笔记: Section 1 The Two Fundamental Rules (1.5-1.6)
Stat2.2x Probability(概率)课程由加州大学伯克利分校(University of California, Berkeley)于2014年在edX平台讲授. PDF笔记下载(Acad ...
- English Snippets
There is no Zen master to prod you with a stick, but I have some questions for you. Your answers wil ...
- Win10 Theano Install Guide
basic install guide 1. download miniconda 2. conda install libpython mingw 3. conda install theano n ...
- 精通javascript(看书笔记)
变量的类型检查 //检测类型 var str = "Hello World"; if (typeof str=="string") {//使用typeof来判断 ...
- _mysql.c(42) : fatal error C1083: Cannot open include file: 'config-win.h':问题的解决 mysql安装python
在win7下安装了Python后,想安装python-MySQL,使用pip安装出现如下问题: >pip install MySQL-python _mysql.c(42) : fatal er ...
- ajax返回数据类型为XML数据的处理
/*XML:可扩展标记语言 HTML:超文本标记语言 标签:<标签名></标签名> 特点: 1.必须要有一个根 2.标签名自定义 3.对大小写敏感 4.有开始就要有结束 5.同 ...
- BaKoMa Tex Word 的使用
数学论文编排软件,付费,但是可以这么处理,安装好后不要马上打开,进入影子系统的时候再运行它,这样每次都是全新的, 优势是 WYSIWYG,所见即所得, 中文输入, \documentclass{art ...
- JQuery.getJSON 从aspx页面返回JSON数据
public partial class WebForm2 : System.Web.UI.Page { protected void Page_Load(object sender, EventAr ...
- Java %c0%ae 安全模式绕过漏洞
漏洞类型:安全模式绕过漏洞 漏洞描述:在Java端"%c0%ae"解析为"\uC0AE",最后转义为ASCCII低字符-".".通过这个方法 ...