【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技术 职场 业界 极客 创业 访谈 在国外 - 导航条 - 首页 最新文章 经典回顾 开发 ...
随机推荐
- 连续赋值与求值顺序var a = {n:1};a.x = a = {n:2}; alert(a.x);
代码如下: <script> var a = {n:1}; var b = a; a.x = a = {n:2}; console.log(a.x);// --> undefined ...
- python获取知乎日报另存为txt文件
前言 拿来练手的,比较简单(且有bug),欢迎交流~ 功能介绍 抓取当日的知乎日报的内容,并将每篇博文另存为一个txt文件,集中放在一个文件夹下,文件夹名字为当日时间. 使用的库 re,Beautif ...
- JSP+JavaBean+Servlet实现各类列表分页功能
需求: 每页列表下都有一个分页的功能,显示总数量.当前页/总页数.首页.上一页.下一页.最后一页.GO到第几页 效果动态图: 实现思路: 因为每个列表页都需要,在每个出列表页数据的servlet中都要 ...
- struts2权威指南学习笔记:struts2引入自定义库
问题: 在jsp页面中添加了s:property标签,然而在页面始终未展示 解决: 经过搜索学习,发现只要添加语句 1 <%@ taglib prefix="s" uri=& ...
- 查看linux机器是32位还是64位的方法
file /sbin/init 或者 file /bin/ls/sbin/init: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dyna ...
- Socket通信的理解
1.Socket(套接字) 是支持TCP/IP通信的基本操作单元.包含通信的五种必须信息:通信使用的协议,本机IP和端口,远程IP和端口. 2. 1.TCP连接 手机能够使用联网功能是因为手机底层实现 ...
- vbox 网络配置文件
sz /etc/sysconfig/network-scripts/ifcfg-eth1 #VAGRANT-BEGIN # The contents below are automatically g ...
- sky
UniSky入门资料 http://game.ceeger.com/forum/read.php?tid=4069
- EasyDarwin
1.EasyDarwin多媒体点播实现 新版本EasyDarwin都加入了中心管理服务EasyCMS, 对于点播系统,EasyCMS不是必须的. MP4点播,需要将mp4文件hint之后才行,MP4 ...
- autofac Adding services after container has been built
http://stackoverflow.com/questions/6173566/run-time-registration-with-autofac Yes you can, using the ...