【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技术 职场 业界 极客 创业 访谈 在国外 - 导航条 - 首页 最新文章 经典回顾 开发 ...
随机推荐
- iOS 简单的动画自定义方法(旋转、移动、闪烁等)
#define kDegreesToRadian(x) (M_PI * (x) / 180.0) #define kRadianToDegrees(radian) (radian*180.0)/(M_ ...
- HDU1024Max Sum Plus Plus(M段最大和)
题意:求一个数组中 M 段的 最大和 没看明白怎么搞得 抽空来看,写的不赖 #include <iostream> #include <cstring> #include &l ...
- 机器学习---python环境搭建
一 安装python2.7 去https://www.python.org/downloads/ 下载,然后点击安装,记得记住你的安装路径,然后去设置环境变量,这些自行百度一下就好了. 由于2.7没有 ...
- ionic中获取坐标方法
ionic中获取坐标的方法 1.首相需要执行命令: cordova plugin add cordova-plugin-geolocation2.然后块级注入配置bower文件引入ngCordova ...
- JavaScript学习笔记——DOM_对document对象的内容、属性、样式的操作
javascript-对文档对象的内容.属性.样式的操作 一.操作内容 1. innerHTML 用来设置或获取对象起始和结束标签内的内容(识别html标签) 2. innerText 用来设置或获取 ...
- 关于软件工程个人作业 Word frequency program 的总结
一.预计花在程序各部分的时间: (1)对所给命令行参数的判断和处理,看它是否合法.是哪种模式.预计用时20min; (2)关于目录操作:遍历给定目录下的所有文件,包括子目录和非目录文件.预计用时40m ...
- 用javascript替换URL中的参数值
<script> function changeUrlArg(url, arg, val){ var pattern = arg+'=([^&]*)'; var replaceTe ...
- fileinput模块
刚才练习的时候,报如下错误: AttributeError: module 'fileinput' has no attribute 'input',后来Google参考这篇文章https://mai ...
- Bindless Textures
http://shikihuiku.wordpress.com/2014/02/10/openglのtextureについて/
- Python之路【第七篇续】:I/O多路复用
回顾原生Socket 一.Socket起源: socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用[打开][读写][关闭]模式来操作. socket就是该模式的 ...