【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技术 职场 业界 极客 创业 访谈 在国外 - 导航条 - 首页 最新文章 经典回顾 开发 ...
随机推荐
- Centos下 为Firefox安装Flash插件
方法一: 直接到官网去下载RPM格式的安装包,下载好后直接 用 rpm -ivh XXXX.rpm 来安装即可. 方法二: 到官网下载tar.gz格式的,自己配置安装: #wget http://fp ...
- jQuery—选择器
摘抄自<锋利的jQuery> 一.基本选择器 $("#one").css("background","#bbffaa"); 选取 ...
- 个人作业—Week3
博客阅读体会 阅读了十几位软件工程师前辈的博文,了解了前辈们作为一名软件工程师的成长经历,我有一些感触. 这十几位前辈们的经历有着很大的差别,有的科班出身,有的则完全自学成才.不同的经历使得前辈们看问 ...
- CF721C. Journey
传送门 说实话,这是一道非常简单的DP题,简单到如果放到NOIp第二题可能都有些差强人意,然而我写崩了. 所以简单记录一下. 需要注意的是,这道题的DP应该是从$N$点开始,以1为边界,满足最短路的三 ...
- POJ1741:tree
传送门 时隔一个月再次写点分治,比上一次要深入理解很多了.(虽然代码还是写不熟 模板题,不多说 //POJ 1741 //by Cydiater //2016.9.22 #include <cs ...
- STM8L --- External interrupt
note 1: Several interrupts can be pending at the same time. When an interrupt request is not servic ...
- python实现Linux启动守护进程
python实现Linux启动守护进程 DaemonClass.py代码: #/usr/bin/env python # -*- coding: utf-8 -*- import sys import ...
- BZOJ4527: K-D-Sequence 线段树
别人家的题解. #include<bits/stdc++.h> #define N 200005 #define M (l+r>>1) #define P (k<< ...
- yum安装指定(特定)版本(旧版本)软件包的方法
在命令行里输入: yum list SDL 注意这里类库的名字是区别大小写的. 参考 http://www.dabu.info/yum-install-specific-version-old-pac ...
- MinGW: TOO MANY SECTIONS issue
http://sourceforge.net/p/mingw-w64/mailman/mingw-w64-public/thread/509A38C6.6070807@doxos.eu/ MingGW ...