这是我的第一篇文章


围棋围棋,一方把另一方的棋子完全围起来就能吃掉被围住的棋子。

围棋(据我所知)有两种,吃子和围地盘,这里展示的是吃子。

谁吃的子多,谁就能获胜。

怎么判断那些棋子是被围起来的呢?

BFS!

这也是本游戏的核心思想。

话不多说,上代码:


/*文件名:围棋小游戏版本:1.1作者:zfx1569修改时间:2022.4.8
*/
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
//#include<Windows.h>
using namespace std;
int a1,a2,w,z=0,af=0,bf=0;
char a[1001][1001];
int vis[1001][1001];
int dx[]={1,-1,0,0};
int dy[]={0,0,1,-1};
struct que
{int x;int y;char c;
}q[1000001];
void print()
{cout<<endl<<endl;cout<<"A方分数:"<<af<<endl;cout<<"B方分数:"<<bf<<endl;cout<<"   ";for(int i=1;i<=a2;i++)printf("%-2d",i);cout<<endl<<endl<<"1  ";for(int i=1;i<=a1;i++){for(int j=1;j<=a2;j++)cout<<(a[i][j]?a[i][j]:' ')<<' ';if(i<a1)printf("\n%-3d",i+1);}
}
bool bfs_find(int x,int y)
{int h=1,t=1;bool fg=1;q[h].x=x;q[h].y=y;q[h].c=a[x][y];vis[x][y]=1;while(h<=t){for(int i=0;i<4;i++){int nx=q[h].x+dx[i],ny=q[h].y+dy[i];if(nx>=1&&nx<=a1&&ny>=1&&ny<=a2&&!vis[nx][ny])if(a[nx][ny]==q[h].c){t++;q[t].x=nx;q[t].y=ny;q[t].c=q[h].c;vis[nx][ny]=1;}elseif(!a[nx][ny])fg=0;}h++;}return fg;
}
void bfs_eat(int x,int y)
{int h=1,t=1,s=(a[x][y]=='A'?0:1);q[h].x=x;q[h].y=y;q[h].c=a[x][y];a[x][y]=0;s?af++:bf++;while(h<=t){for(int i=0;i<4;i++){int nx=q[h].x+dx[i],ny=q[h].y+dy[i];if(nx>=1&&nx<=a1&&ny>=1&&ny<=a2&&a[nx][ny]==q[h].c){t++;q[t].x=nx;q[t].y=ny;q[t].c=q[h].c;a[nx][ny]=0;s?af++:bf++;}}h++;}
}
int game()
{while(1){memset(vis,0,sizeof vis);for(int i=1;i<=a1;i++)for(int j=1;j<=a2;j++)if(a[i][j]&&!vis[i][j]&&bfs_find(i,j))bfs_eat(i,j);z=(z+1)%2;
//      system("cls");print();cout<<endl;while(1){cout<<(z?"A方下子":"B方下子")<<endl;int x,y;cin>>x>>y;if(!a[x][y]&&x>=1&&y>=1&&x<=a1&&y<=a2){a[x][y]=(z?'A':'B');break;}elsecout<<"输入无效,请重新输入"<<endl;}}
}
int main()
{cout<<"------------------------------围棋------------------------------"<<endl;cout<<"输入模式[1:初级(9x9);2:中级(13x13);3:高级(19x19);其他:自定义]:";cin>>w;w==1?(a1=a2=9):(w==2?(a1=a2=13):(w==3?(a1=a2=19):(a1=a2=0)));if(!a1&&!a2){cout<<"输入大小(a1,a2)";cin>>a1>>a2;}cout<<"游戏开始"<<endl;//Sleep(1000);game();return 0;
}
//版权所有 仿冒??

初次创作,可能有许多不妥之处,望指教~~
f(x)=sin⁡xf(x)=\sin{x} f(x)=sinx

C++围棋小游戏1.1相关推荐

  1. 记录java围棋小游戏心得

    为了深入学习Java中GUI与事件处理机制,利用java中的GUI与事件处理机制等功能实现围棋小游戏. 效果图    一.概述 1.GUI是指图形用户界面也称图形用户接口,在Java中是进行人机交互的 ...

  2. C++围棋小游戏1.2.2

    /*Name: C++围棋小游戏1.2.2Author: zfx1569Date: 2022.05.14 */#include <cstdio> #include <cstdlib& ...

  3. C++围棋小游戏1.2

    更新:避免清空棋盘 1.1: 1.2: 但无法判断二眼的情况: 代码: /*文件名:围棋小游戏版本:1.2作者:zfx1569修改时间:2022.4.9 */ #include<cstdio&g ...

  4. java多线程围棋小游戏代码,java小游戏源代码(java开发的50个小游戏)

    <扫雷>是一款大家类的益智类游戏,游戏训练目标是在最少的時间内依据点一下方格出現的数据找到全部非雷方格,另外防止爆雷,碰到一个雷即满盘皆输. 经典推箱子,目地是在训炼你的逻辑性思索工作能力 ...

  5. 利用Java简单的实现围棋小游戏

    双方一对一次下棋子,单机棋子可以悔棋,双击棋子可以去掉棋子 代码如下: import java.awt.*; import java.awt.event.*; //创建棋盘的类 class Chess ...

  6. C++围棋小游戏1.2.1

    修改:优化,加入清屏 其实之前想到了这个,但不会用

  7. 【项目展示】自己用C语言编写的汉诺塔小游戏

    本文目录 1.前言 2.什么是汉诺塔? 3.项目规格 4.基本思路 5.源代码 6.运行结果 7.感想与心得 8.未来规划 1.前言 昨儿个把自己大一时候写过的五子棋重构了一下,之后就在想着要不把不知 ...

  8. python写一个游戏多少代码-使用50行Python代码从零开始实现一个AI平衡小游戏

    集智导读: 本文会为大家展示机器学习专家 Mike Shi 如何用 50 行 Python 代码创建一个 AI,使用增强学习技术,玩耍一个保持杆子平衡的小游戏.所用环境为标准的 OpenAI Gym, ...

  9. python生成一笔画_用Python玩烧脑小游戏《一笔画完》,瞬间闯到100关

    原标题:用Python玩烧脑小游戏<一笔画完>,瞬间闯到100关 " 昨天和朋友出去外面吃饭,吃完饭后朋友打开了一个小程序玩了起来...... 游戏长这样 大概玩法是:从地图中猫 ...

最新文章

  1. class function或class procedure是什么意思
  2. targetSdkVersion
  3. putty network error:Connection refused 乱码
  4. android fragment概念,android Fragment相关概念简介
  5. Flashback Query笔记
  6. JavaScript HTML DOM
  7. openssl c++实现bouncycastle中AES加解密
  8. CRITIC法之matlab
  9. dc综合与pt静态时序分析(中文)_新能源汽车小三电系统(PDU/DC/OBC)技术研究详解...
  10. python server酱_教你如何使用Python向手机发送通知(IFTTT)
  11. 通过在jquery中添加函数发送ajax请求来加载数据库数据,以json的格式发送到页面...
  12. oracle apache服务占用80端口
  13. 利用navicat 进行 mysql建表语句转oracle建表语句
  14. 旭荣管理软件怎么修改小票内容_水果门店管理系统怎么管理水果门店的
  15. 矩阵求导及其链式法则
  16. 学习笔记20--定位系统之多传感器融合定位技术
  17. python异常值处理四分位法_Python清除异常值四分位法
  18. 数据库32位升级到64位解决方案
  19. 微信小程序应用生命周期
  20. java中怎么让字体可以显示下划线呢_Java如何在数字文字中使用下划线?

热门文章

  1. Latex字体字号设置
  2. java计算机毕业设计基于安卓Android的订餐系统APP
  3. c语言单片机计算器编程,单片机做的计算器(C语言代码)
  4. python快速入门【五】---- 面向对象编程、python类
  5. C语言中+=的含义你明白吗?
  6. Python离线安装包教程
  7. App/H5/小程序测试技术
  8. 基于Python的多功能本地视频播放系统
  9. C语言数据结构复制粘贴报错可能原因
  10. 用python来玩科学计算