c++ 双人五子棋(可直接复制)

今天,我给大家带来一个五子棋的代码,希望大家喜欢。
下面是代码:

#include <iostream>
#include <conio.h>
using namespace std;
char board[16][16],o;
void init(){
for(int i=0;i<=15;i++)
for(int j=0;j<=15;j++)
board[i][j]='-';
for(int i=1;i<=15;i++) board[0][i]=i+64;
for(int j=1;j<=15;j++) board[j][0]=j+64;
board[0][0]='*';
}
void display(){
cout<<" ================================"<<endl;
for(int i=0;i<=15;i++){
cout<<"|";
for(int j=0;j<=15;j++)
cout<<board[i][j]<<" ";
cout<<"|"<<endl;
}
cout<<" ================================"<<endl;
}
void place(bool color){
string colour;
char x,y;
x=y=' ';
system("cls");
display();
if(!color) colour="黑";
if(color) colour="白";
cout<<colour<<"方放置棋子,请输入棋子的行和列(大写字母):";
cin>>x>>y;
if(x-64>16||y-64>16||x-64<1||y-64<1){
cout<<"该位置超出棋盘范围,请重新放置!"<<x<<y<<endl;
system("pause");
place(color);
}
if(board[x-64][y-64]=='b'||board[x-64][y-64]=='w'){
cout<<"该位置已有棋子"<<board[x-64][y-64]<<",请重新放置!"<<endl;
system("pause");
place(color);
}
if(!color) board[x-64][y-64]='b';
if(color) board[x-64][y-64]='w'; 
}
int compute(){
int num;
for(int i=1;i<=15;i++)
for(int j=1;j<=15;j++)
if(board[i][j]=='b'||board[i][j]=='w') num++;
if(num==225) return 2;
for(int i=1;i<=15;i++)
for(int j=1;j<=15;j++){
if(board[i][j]=='b'&&board[i][j]==board[i+1][j]&&board[i][j]==board[i+2][j]&&board[i][j]==board[i+3][j]&&board[i][j]==board[i+4][j]) return 0; 
if(board[i][j]=='w'&&board[i][j]==board[i+1][j]&&board[i][j]==board[i+2][j]&&board[i][j]==board[i+3][j]&&board[i][j]==board[i+4][j]) return 1; 
if(board[i][j]=='b'&&board[i][j]==board[i][j+1]&&board[i][j]==board[i][j+2]&&board[i][j]==board[i][j+3]&&board[i][j]==board[i][j+4]) return 0; 
if(board[i][j]=='w'&&board[i][j]==board[i][j+1]&&board[i][j]==board[i][j+2]&&board[i][j]==board[i][j+3]&&board[i][j]==board[i][j+4]) return 1;
if(board[i][j]=='b'&&board[i][j]==board[i+1][j+1]&&board[i][j]==board[i+2][j+2]&&board[i][j]==board[i+3][j+3]&&board[i][j]==board[i+4][j+4]) return 0;
if(board[i][j]=='w'&&board[i][j]==board[i+1][j+1]&&board[i][j]==board[i+2][j+2]&&board[i][j]==board[i+3][j+3]&&board[i][j]==board[i+4][j+4]) return 1;
if(board[i][j]=='b'&&board[i][j]==board[i-1][j+1]&&board[i][j]==board[i-2][j+2]&&board[i][j]==board[i-3][j+3]&&board[i][j]==board[i-4][j+4]) return 0;
if(board[i][j]=='w'&&board[i][j]==board[i-1][j+1]&&board[i][j]==board[i-2][j+2]&&board[i][j]==board[i-3][j+3]&&board[i][j]==board[i-4][j+4]) return 1;
}
}
int main(){
game_start:
init(); 
system("cls");
system("title 双人五子棋");
cout<<"双人五子棋小游戏"<<endl;
cout<<"小提示:棋盘中b代表黑方(black),w代表白方(white)"<<endl; 
cout<<"请按任意键开始游戏......";
getch(); 
while(true){
place(0);
if(compute()==0){
system("cls");
display();
cout<<"黑方胜!"<<endl;
break;
}
if(compute()==2){
system("cls");
display();
cout<<"平局!"<<endl;
break;
}
place(1);
if(compute()==1){
system("cls");
display();
cout<<"白方胜!"<<endl;
break;
}
if(compute()==2){
system("cls");
display();
cout<<"平局!"<<endl;
break;
}
}
cout<<"再来一局?Y/N? ";
o=getch();
if(o=='Y'||o=='y') goto game_start;
return 0;
}

以上就是全部的代码,谢谢支持。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
C Builder五子棋是一款基于C语言开发的五子棋游戏。C语言作为一种通用的编程语言,具有高效、可移植等特点,被广泛用于软件开发。 C Builder是一种基于C语言的集成开发环境,提供了图形化的界面设计工具和丰富的组件库,可以更加方便地进行程序开发。在C Builder中开发五子棋游戏,可以利用其强大的GUI设计功能,设计出简洁美观的游戏界面。 五子棋是一种传统的棋类游戏,需要两个玩家交替落子,最终通过在棋盘上形成连续的五颗棋子来获胜。在C Builder中实现五子棋游戏,首先需要创建一个棋盘界面,可以使用组件库中的面板(Panel)等控件来模拟棋盘网格。 接下来,需要实现棋子的落子功能。可以利用鼠标事件,在玩家点击棋盘上的位置时,根据当前玩家的身份(黑子还是白子),在对应位置绘制相应的棋子图像。 为了判断游戏是否结束,需要编写胜负判定的算法。可以通过遍历棋盘上的所有位置,检查是否存在五颗相连的棋子,如果存在则判断出胜负。 最后,还可以增加一些辅助功能,如显示当前玩家、悔棋、重新开始等按钮。可以使用按钮控件来实现这些功能,并编写相应的事件处理函数。 总之,C Builder五子棋是一个使用C语言开发的五子棋游戏,通过C Builder的图形化界面设计和丰富的组件库,可以方便地实现五子棋游戏的各个功能,为玩家提供一个有趣的游戏体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值