问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

找五子棋源代码c++

发布网友 发布时间:2022-04-24 06:21

我来回答

3个回答

热心网友 时间:2022-04-20 00:05

devc++运行通过,含注释

#include<bits/stdc++.h>

#include<windows.h>

#include<conio.h>

#include<ctime>

using namespace std;

void gotoxy(int x,int y) {

COORD pos = {x,y};

HANDLE hOut =GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleCursorPosition(hOut,pos);

}//将光标移动到x,y点上 

int mp[16][16]= {0},x1=0,x2=0;//地图,用来搜索五子连成的 

void print(int x) {

gotoxy(x,1);

cout<<"┬";

for(int i=2; i<=14; i++) {

gotoxy(x,i);

cout<<"┼";

}

gotoxy(x,15);

cout<<"┴";

}//输出棋盘的中间部分 

void gotoc() {

system("cls");

gotoxy(55,10);

cout<<"五  子  棋";

gotoxy(56,20);

cout<<"加载中...";

gotoxy(55,21);

cout<<"作者:北辰";

for(int j=0; j<100; j++) {

Sleep(17);

gotoxy(j+3,15);

cout<<" "<<j<<"%";

gotoxy(j,15);

cout<<"■";

}

system("cls");

for(int i=0; i<100; i++) {

for(int j=0; j<40; j++) {

gotoxy(i,j);

cout<<"■";

//SetColor(rand()%10);

}

}

system("cls");

}//加载界面函数 

int main() {

gotoc();//加载 

for(int i=2; i<=30; i+=2) {

gotoxy(i,0);

cout<<i/2;

}//横坐标 

for(int i=1; i<=15; i++) {

gotoxy(0,i);

cout<<i;

}//纵坐标 

gotoxy(2,1);

cout<<"┌";

for(int i=2; i<=14; i++) {

gotoxy(2,i);

cout<<"├";

}

gotoxy(2,15);

cout<<"└";//输出棋盘左侧 

for(int i=4; i<=28; i+=2) {

print(i);

}//用一个循环来输出棋盘中间部分 

gotoxy(30,1);

cout<<"┐";

for(int i=2; i<=14; i++) {

gotoxy(30,i);

cout<<"┤";

}

gotoxy(30,15);

cout<<"┘";//输出棋盘右侧

bool l=0;//没什么用的flag 

long long m=2;//这个很重要,用来判断是该白棋走还是黑棋走,每次走完++,每次判断是偶数,该白棋,是奇数,该黑棋(一般用flag判断,这是我个人喜好) 

gotoxy(0,17);

cout<<"游戏说明:白棋先走,落子请输入坐标,其他的不用我说了吧";//说明,一定要看 

while(l=1) {

gotoxy(32,16);

int x,y;

cin>>x>>y;//读入xy坐标 

gotoxy(32,16);

cout<<"                              ";

if(mp[x][y]!=0) { 

gotoxy(32,16);

cout<<"此位置已有落子!";

Sleep(1000);

gotoxy(32,16);

cout<<"                   ";

continue;

}//很重要,用来判断此位置有没有落子 

if(x>15&&y<=15) {

gotoxy(32,16);

cout<<"x坐标超出棋盘范围!";

Sleep(1000);

gotoxy(32,16);

cout<<"                   ";

continue;

if(y>15&&x<=15) {

gotoxy(32,16);

cout<<"y坐标超出棋盘范围!";

Sleep(1000);

gotoxy(32,16);

cout<<"                   ";

continue;

}

if(y>15&&x>15) {

gotoxy(32,16);

cout<<"x和y坐标均超出棋盘范围!";

Sleep(1000);

gotoxy(32,16);

cout<<"                   ";

continue;

}//以上三个if用来判断有没有超出棋盘大小 

gotoxy(x*2,y);

if(m%2==0) {//是偶数,该白棋 

cout<<"●";//输出棋子 

mp[x][y]=1;

//横坐标搜索有没有连成五个 

if(mp[x+1][y]==1&&mp[x+2][y]==1&&mp[x+3][y]==1&&mp[x+4][y]==1) {

gotoxy(32,16);

cout<<"白棋获胜!";

return 0;

}

if(mp[x-1][y]==1&&mp[x+1][y]==1&&mp[x+2][y]==1&&mp[x+3][y]==1) {

gotoxy(32,16);

cout<<"白棋获胜!";

return 0;

}

if(mp[x-2][y]==1&&mp[x-1][y]==1&&mp[x+1][y]==1&&mp[x+2][y]==1) {

gotoxy(32,16);

cout<<"白棋获胜!";

return 0;

}

if(mp[x-3][y]==1&&mp[x-2][y]==1&&mp[x-1][y]==1&&mp[x+1][y]==1) {

gotoxy(32,16);

cout<<"白棋获胜!";

return 0;

}

if(mp[x-4][y]==1&&mp[x-3][y]==1&&mp[x-2][y]==1&&mp[x-1][y]==1) {

gotoxy(32,16);

cout<<"白棋获胜!";

return 0;

}

//竖

if(mp[x][y+1]==1&&mp[x][y+2]==1&&mp[x][y+3]==1&&mp[x][y+4]==1) {

gotoxy(32,16);

cout<<"白棋获胜!";

return 0;

}

if(mp[x][y-1]==1&&mp[x][y+1]==1&&mp[x][y+2]==1&&mp[x][y+3]==1) {

gotoxy(32,16);

cout<<"白棋获胜!";

return 0;

}

if(mp[x][y-2]==1&&mp[x][y-1]==1&&mp[x][y+1]==1&&mp[x][y+2]==1) {

gotoxy(32,16);

cout<<"白棋获胜!";

return 0;

}

if(mp[x][y-3]==1&&mp[x][y-2]==1&&mp[x][y-1]==1&&mp[x][y+1]==1) {

gotoxy(32,16);

cout<<"白棋获胜!";

return 0;

}

if(mp[x][y-4]==1&&mp[x][y-3]==1&&mp[x][y-2]==1&&mp[x][y-1]==1) {

gotoxy(32,16);

cout<<"白棋获胜!";

return 0;

}

//斜'\'

if(mp[x+1][y+1]==1&&mp[x+2][y+2]==1&&mp[x+3][y+3]==1&&mp[x+4][y+4]==1) {

gotoxy(32,16);

cout<<"白棋获胜!";

return 0;

}

if(mp[x-1][y-1]==1&&mp[x+1][y+1]==1&&mp[x+2][y+2]==1&&mp[x+3][y+3]==1) {

gotoxy(32,16);

cout<<"白棋获胜!";

return 0;

}

if(mp[x-2][y-2]==1&&mp[x-1][y-1]==1&&mp[x+1][y+1]==1&&mp[x+2][y+2]==1) {

gotoxy(32,16);

cout<<"白棋获胜!";

return 0;

}

if(mp[x-3][y-3]==1&&mp[x-2][y-2]==1&&mp[x-1][y-1]==1&&mp[x+1][y+1]==1) {

gotoxy(32,16);

cout<<"白棋获胜!";

return 0;

}

if(mp[x-4][y-4]==1&&mp[x-3][y-3]==1&&mp[x-2][y-2]==1&&mp[x-1][y-1]==1) {

gotoxy(32,16);

cout<<"白棋获胜!";

return 0;

}

//斜'/'

if(mp[x-1][y+1]==1&&mp[x-2][y+2]==1&&mp[x-3][y+3]==1&&mp[x-4][y+4]==1) {

gotoxy(32,16);

cout<<"白棋获胜!";

return 0;

}

if(mp[x+1][y-1]==1&&mp[x-1][y+1]==1&&mp[x-2][y+2]==1&&mp[x-3][y+3]==1) {

gotoxy(32,16);

cout<<"白棋获胜!";

return 0;

}

if(mp[x+2][y-2]==1&&mp[x+1][y-1]==1&&mp[x-1][y+1]==1&&mp[x-2][y+2]==1) {

gotoxy(32,16);

cout<<"白棋获胜!";

return 0;

}

if(mp[x+3][y-3]==1&&mp[x+2][y-2]==1&&mp[x+1][y-1]==1&&mp[x-1][y+1]==1) {

gotoxy(32,16);

cout<<"白棋获胜!";

return 0;

}

if(mp[x+4][y-4]==1&&mp[x+3][y-3]==1&&mp[x+2][y-2]==1&&mp[x+1][y-1]==1) {

gotoxy(32,16);

cout<<"白棋获胜!";

return 0;

}

} else if(m%2==1) {//为奇数,该黑棋 

cout<<"○";

mp[x][y]=2;

//横

if(mp[x+1][y]==2&&mp[x+2][y]==2&&mp[x+3][y]==2&&mp[x+4][y]==2) {

gotoxy(32,16);

cout<<"黑棋获胜!";

return 0;

}

if(mp[x-1][y]==2&&mp[x+1][y]==2&&mp[x+2][y]==2&&mp[x+3][y]==2) {

gotoxy(32,16);

cout<<"黑棋获胜!";

return 0;

}

if(mp[x-2][y]==2&&mp[x-1][y]==2&&mp[x+1][y]==2&&mp[x+2][y]==2) {

gotoxy(32,16);

cout<<"黑棋获胜!";

return 0;

}

if(mp[x-3][y]==2&&mp[x-2][y]==2&&mp[x-1][y]==2&&mp[x+1][y]==2) {

gotoxy(32,16);

cout<<"黑棋获胜!";

return 0;

}

if(mp[x-4][y]==2&&mp[x-3][y]==2&&mp[x-2][y]==2&&mp[x-1][y]==2) {

gotoxy(32,16);

cout<<"黑棋获胜!";

return 0;

}

//竖

if(mp[x][y+1]==2&&mp[x][y+2]==2&&mp[x][y+3]==2&&mp[x][y+4]==2) {

gotoxy(32,16);

cout<<"黑棋获胜!";

return 0;

}

if(mp[x][y-1]==2&&mp[x][y+1]==2&&mp[x][y+2]==2&&mp[x][y+3]==2) {

gotoxy(32,16);

cout<<"黑棋获胜!";

return 0;

}

if(mp[x][y-2]==2&&mp[x][y-1]==2&&mp[x][y+1]==2&&mp[x][y+2]==2) {

gotoxy(32,16);

cout<<"黑棋获胜!";

return 0;

}

if(mp[x][y-3]==2&&mp[x][y-2]==2&&mp[x][y-1]==2&&mp[x][y+1]==2) {

gotoxy(32,16);

cout<<"黑棋获胜!";

return 0;

}

if(mp[x][y-4]==2&&mp[x][y-3]==2&&mp[x][y-2]==2&&mp[x][y-1]==2) {

gotoxy(32,16);

cout<<"黑棋获胜!";

return 0;

}

//斜'\'

if(mp[x+1][y+1]==2&&mp[x+2][y+2]==2&&mp[x+3][y+3]==2&&mp[x+4][y+4]==2) {

gotoxy(32,16);

cout<<"黑棋获胜!";

return 0;

}

if(mp[x-1][y-1]==2&&mp[x+1][y+1]==2&&mp[x+2][y+2]==2&&mp[x+3][y+3]==2) {

gotoxy(32,16);

cout<<"黑棋获胜!";

return 0;

}

if(mp[x-2][y-2]==2&&mp[x-1][y-1]==2&&mp[x+1][y+1]==2&&mp[x+2][y+2]==2) {

gotoxy(32,16);

cout<<"黑棋获胜!";

return 0;

}

if(mp[x-3][y-3]==2&&mp[x-2][y-2]==2&&mp[x-1][y-1]==2&&mp[x+1][y+1]==2) {

gotoxy(32,16);

cout<<"黑棋获胜!";

return 0;

}

if(mp[x-4][y-4]==2&&mp[x-3][y-3]==2&&mp[x-2][y-2]==2&&mp[x-1][y-1]==2) {

gotoxy(32,16);

cout<<"黑棋获胜!";

return 0;

}

//斜'/'

if(mp[x-1][y+1]==2&&mp[x-2][y+2]==2&&mp[x-3][y+3]==2&&mp[x-4][y+4]==2) {

gotoxy(32,16);

cout<<"黑棋获胜!";

return 0;

}

if(mp[x+1][y-1]==2&&mp[x-1][y+1]==2&&mp[x-2][y+2]==2&&mp[x-3][y+3]==2) {

gotoxy(32,16);

cout<<"黑棋获胜!";

return 0;

}

if(mp[x+2][y-2]==2&&mp[x+1][y-1]==2&&mp[x-1][y+1]==2&&mp[x-2][y+2]==2) {

gotoxy(32,16);

cout<<"黑棋获胜!";

return 0;

}

if(mp[x+3][y-3]==2&&mp[x+2][y-2]==2&&mp[x+1][y-1]==2&&mp[x-1][y+1]==2) {

gotoxy(32,16);

cout<<"黑棋获胜!";

return 0;

}

if(mp[x+4][y-4]==2&&mp[x+3][y-3]==2&&mp[x+2][y-2]==2&&mp[x+1][y-1]==2) {

gotoxy(32,16);

cout<<"黑棋获胜!";

return 0;

}

}

m++;//不要忘记++m 

}

return 0;//这个没什么用了,不过比赛时不要忘记加哦,否则判0分 

}

热心网友 时间:2022-04-20 01:23

#include "iostream"
#include <iomanip>
using namespace std;
const int M=20;
const int N=20;
int main()
{
char wei[M][N];
int k,i,j,x,y,flag=0;
cout<<"欢迎使用简易双人对战五子棋游戏"<<endl;
cout<<"五子棋棋谱如下:"<<endl;
for(k=0;k<=N;k++)
cout<<setw(3)<<setfill(' ')<<k;
cout<<endl;
for(i=1;i<=M;i++)
{
cout<<setw(3)<<setfill(' ')<<i;
for(j=1;j<=N;j++)
{
wei[i][j]='-';
cout<<setw(3)<<setfill(' ')<<wei[i][j];
}
cout<<endl;
}
while(flag==0)
{
//红方落子
cout<<"请红方输入落子位置:"<<endl;
loop1:
cout<<"请输入落子的行数:";
cin>>x;
cout<<"请输入落子的列数:";
cin>>y;
if(wei[x][y]=='-')
{
wei[x][y]='*';
for(k=0;k<=N;k++)
cout<<setw(3)<<setfill(' ')<<k;
cout<<endl;
for(i=1;i<=M;i++)
{
cout<<setw(3)<<setfill(' ')<<i;
for(j=1;j<=N;j++)
cout<<setw(3)<<setfill(' ')<<wei[i][j];
cout<<endl;
}
}
else
{
cout<<"你不能在这落子,请重新选择落子位置:"<<endl;
goto loop1;
}
//判断胜利
for(i=1;i<=M-4;i++)
{
for(j=1;j<=N-4;j++)
{
if(wei[i][j]=='*' && wei[i][j+1]=='*' && wei[i][j+2]=='*' && wei[i][j+3]=='*' && wei[i][j+4]=='*')
{
cout<<"恭喜红方获得简易双人对战五子棋的胜利!耶~~~"<<endl;
flag=1;
break;
}
if(wei[i][j]=='*' && wei[i+1][j]=='*' && wei[i+2][j]=='*' && wei[i+3][j]=='*' && wei[i+4][j]=='*')
{
cout<<"恭喜红方获得简易双人对战五子棋的胜利!耶~~~"<<endl;
flag=1;
break;
}
if(wei[i][j]=='*' && wei[i+1][j+1]=='*' && wei[i+2][j+2]=='*' && wei[i+3][j+3]=='*' && wei[i+4][j+4]=='*')
{
cout<<"恭喜红方获得简易双人对战五子棋的胜利!耶~~~"<<endl;
flag=1;
break;
}
if(flag==1)
break;
}
}

//蓝方落子
cout<<"请蓝方输入落子位置:"<<endl;
loop2:
cout<<"请输入落子的行数:";
cin>>x;
cout<<"请输入落子的列数:";
cin>>y;
if(wei[x][y]=='-')
{
wei[x][y]='#';
for(k=0;k<=N;k++)
cout<<setw(3)<<setfill(' ')<<k;
cout<<endl;
for(i=1;i<=M;i++)
{
cout<<setw(3)<<setfill(' ')<<i;
for(j=1;j<=N;j++)
cout<<setw(3)<<setfill(' ')<<wei[i][j];
cout<<endl;
}
}
else
{
cout<<"你不能在这落子,请重新选择落子位置:";
goto loop2;
}

//判断胜利
for(i=1;i<=M-4;i++)
{
for(j=1;j<=N-4;j++)
{
if(wei[i][j]=='#' && wei[i][j+1]=='#' && wei[i][j+2]=='#' && wei[i][j+3]=='#' && wei[i][j+4]=='#')
{
cout<<"恭喜蓝方获得简易双人对战五子棋的胜利!耶~~~"<<endl;
flag=1;
break;
}
if(wei[i][j]=='#' && wei[i+1][j]=='#' && wei[i+2][j]=='#' && wei[i+3][j]=='#' && wei[i+4][j]=='#')
{
cout<<"恭喜蓝方获得简易双人对战五子棋的胜利!耶~~~"<<endl;
flag=1;
break;
}
if(wei[i][j]=='#' && wei[i+1][j+1]=='#' && wei[i+2][j+2]=='#' && wei[i+3][j+3]=='#' && wei[i+4][j+4]=='#')
{
cout<<"恭喜蓝方获得简易双人对战五子棋的胜利!耶~~~"<<endl;
flag=1;
break;
}
if(flag==1)
break;
}
}
}
return 0;
}

我运行过,没有错误.

热心网友 时间:2022-04-20 02:58

网上下载一个,再改改追问不会改啊。。

c语言编的五子棋源代码

int JudgeWin(int Order,struct point Cursor){ int i; for(i=0;i&lt;4;i++) /*判断在指定方向上是否有连续5个行棋方的棋子*/ if(JudgeWinLine(Order,Cursor,i)) return TRUE; return FALSE;}/*判断在指定方向上是否有连续5个行棋方的棋子*/int JudgeWinLine(int Order,struct point Cursor,int direct...

用C++编写的小游戏源代码

五子棋的代码:include&lt;iostream&gt; include&lt;stdio.h&gt; include&lt;stdlib.h&gt; include using namespace std;const int N=15; //15*15的棋盘 const char ChessBoardflag = ' '; //棋盘标志 const char flag1='o'; //玩家1或电脑的棋子标志 const char flag2='X'; //玩家2的棋子标...

求五子棋C源代码

五子棋 / include&lt;stdio.h&gt; include&lt;stdlib.h&gt; include&lt;graphics.h&gt; include&lt;bios.h&gt; include&lt;conio.h&gt; define LEFT 0x4b00 define RIGHT 0x4d00 define DOWN 0x5000 define UP 0x4800 define ESC 0x011b define SPACE 0x3920 define BILI 20 define JZ 4 define JS 3 define N 19 int box...

求一个C语言小程序(五子棋)源代码

case KEYFALLCHESS: if(ChessGo(gPlayOrder,gCursor)==FALSE)/*走棋*/ DoError();/*落子错误*/ else { DoOK();/*落子正确*/ /*如果当前行棋方赢棋*/ if(JudgeWin(gPlayOrder,gCursor)==TRUE) { DoWin(gPlayOrder); bOutWhile = TRUE;/*退出循环标志置为真*/ } /*否则*/ else /*交换行...

C语言五子棋算法

五子棋胜负的判定,一般有一下两种算法:1.扫描整个棋盘,分别扫描四个方向是否有5个连子。网上找了很多五子棋源码都是用此算法,这意味着每下一个棋子都要扫描一遍19×19的棋盘,复杂而且低效,代码略。2.每下一字,从该子开始扫描其四个方向(例如:从该子的(x-4,y)坐标开始扫描横向)是否...

找五子棋源代码c++

找五子棋源代码c++ 小弟要程序设计实训,也就是和毕业实训差不多。2.课程设计的具体工作内容:1)开发二人对弈五子棋游戏,棋子分为黑白两种;2)当同一种颜色的棋子实现五子连珠时即为获胜;3)通... 小弟要程序设计实训,也就是和毕业实训差不多。2.课程设计的具体工作内容:1) 开发二人对弈五子棋游戏,棋子分为黑白...

简单五子棋棋盘怎么画?

希望采纳。请问如何用mfc画一个五子棋的棋盘啊?1、打开VC++ 6.0 2、新建一个MFC AppWizard(exe)的工程,工程名为wuzi 3、点击确定 4、选择单个文档,去掉"文档/查看体系结构支持"复选框 5、点击完成 6、切换到CLassView 7、找到CChildView类下的OnPaint()函数,双击该函数 8、OnPaint()函数代码...

如何用c语言编程序

void main(){ float a,b,c,d,s;scanf("%f,%f,%f",&amp;a,&amp;b,&amp;c);if(a+b&gt;c&amp;&amp;a+c&gt;b&amp;&amp;b+c&gt;a){ if(a==b||b==c||c==a){if(a==b&amp;&amp;b==c) printf("this is a dengbiansanjiaoxing\n");else printf("this is a dengyao sanjiaoxing\n");} else if(a*a+b*b==c*c|...

零基础学习C语言

C语言程序设计实例与面试题解析 第22章 C语言程序课程设计:游戏 22.1 黑白棋 22.1.1 程序功能要求 22.1.2 输入输出样例 22.1.3 程序分析 22.1.4 程序初始化 22.1.5 初始化图形设备 22.1.6 绘制棋盘 22.1.7 交替绘制黑白棋 22.1.8 游戏(同时判断是否有一方胜利) 22.1.9 小结 22.2 五子棋 22.2.1 程序功能...

C C++ http://zhidao.baidu.com/question/187532479.html?fr=middle_au...

LINUX下的书籍很多,LINUXC语言设计,LINUX高级编程,LINUX代码详解,这些太多了,你去卓越上一搜就出来了。多看看源代码什么的吧。做个简陋的操作系统还不如做一个可移植的运行库,前者真的不好做,你做着做着会发现根本做不下去了。以上仅为参考,个人意见而已。

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
干杯歌曲介绍 辣椒酱的做法教程 农历4月11日是什么星座生男生女 农历4月11日是什么星座? 索尼LT22I有藏文字体么? 索尼lt22i如何将繁体字变为简体 索尼lt22i显示怎样转换成中文的 索尼LT22i 文字不小心设置成法语了 看不懂 怎么设置回中文 求步骤呀... 贵州有哪些称得上“豪宅”的房子 索尼LT22I有藏文字体么? 谁可以用手机号码帮我绑定个游戏。56Y的 绑定什么都不需要 就是收条验证码而已。。 南瓜能和红豆红枣一起煮吗 56y游戏币怎么兑换人民币!28614620 哪种LINUX操作系统好用? 56y里面的游戏不充值可以玩吗? 南瓜和什么煮糖水好吃 56Y游戏中心找各种理由封号 南瓜怎么煮或和什么煮最好吃? 56y游戏怎么破解 南瓜煮粥放什么合适 56Y游戏中心的发展 56Y游戏中心的新版特征 56Y游戏中心的服务 公务员一个月单位和个人大约给交多少住房公积金 56Y游戏中心的玩法 56Y游戏中心的创新 辽宁省的公务员是不是公积金都是1.5:2.5这种形式? 南瓜和什么一起煮好吃 56Y游戏中心的软件介绍 56Y游戏中心的分类 南瓜和什么搭配有营养 南瓜可以和什么一起做菜? 趣味数学游戏 恋爱养成GBA游戏 介绍点单机游戏呗? 本人正准备买联想Y56OA-ITH(H)。主要是用来编程和玩大型的单机游戏,请问这电脑好吗? 芦荟胶可以白天涂脸的吗 完美芦荟胶白天出门可以用吗? 芦荟胶白天可以涂脸吗 芦荟胶白天抹是不是会变黑? 芦荟胶只白天涂也能收到效果吗? 军博士芦荟胶可以白天用吗? 芦荟胶为什么不能白天用 芦荟胶为什么不能白天涂 芦荟胶白天到底能不能用啊? 芦荟胶可以白天用吗?芦荟是感光植物,白天用芦荟胶的话,会不会变黑? 我的和手机号是绑定的,现在那个号码不用了,我怎么才能找回我的? 被手机号绑定了,手机号不用了,微信上不去了,怎么办? 工业企业指的是什么? 微信手机号不用了怎么解绑?
  • 焦点

最新推荐

猜你喜欢

热门推荐