#include<iostream>
#include<cstring>
using namespace std;
const int m=20,n=20;
int i,j,k,x,y,z,q;
void welcom()
{
cout<<"*******************************************************************************"<<endl;
cout<<"********************************五子棋*****************************************"<<endl;
cout<<"**************************欢迎,欢迎,热烈欢迎*********************************"<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" 战斗开始了! "<<endl;
cout<<" 按 1 选择双人对战 "<<endl;
cout<<" 按 2 选择人机对战 "<<endl;
cout<<" 按 3 选择续盘 "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" 祝你游戏愉快! "<<endl;
cout<<" 制作者:聂旭辉 1000012804 "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<"*******************************************************************************"<<endl;
cout<<"********************************五子棋*****************************************"<<endl;
cout<<"**************************欢迎,欢迎,热烈欢迎*********************************"<<endl;
cout<<"************************** 风萧萧兮,风云再起 *********************************"<<endl;
cout<<"**************************五子棋,真的很耗脑力*********************************"<<endl;
}
//////////////////////////////////////////////////////////////////////////////
void board(char b[m][n],int x,int y,int z,int q)//画棋盘,其中x,y用于黑方下坐标,z,q用于白方下坐标
{
cout<<"0 1 2 3 4 5 6 7 8 910111213141516171819 "<<endl;
//for(i=1;i<=19;i++){
// for(j=1;j<=19;j++){
// b[i][j]='.';
// }
//}
b[x][y]='X';
b[z][q]='O';
cout<<"1 ";
for(j=1;j<=19;j++){
cout<<b[1][j]<<" ";
}
cout<<endl;
cout<<"2 ";
for(j=1;j<=19;j++){
cout<<b[2][j]<<" ";
}
cout<<endl;
cout<<"3 ";
for(j=1;j<=19;j++){
cout<<b[3][j]<<" ";
}
cout<<endl;
cout<<"4 ";
for(j=1;j<=19;j++){
cout<<b[4][j]<<" ";
}
cout<<endl;
cout<<"5 ";
for(j=1;j<=19;j++){
cout<<b[5][j]<<" ";
}
cout<<endl;
cout<<"6 ";
for(j=1;j<=19;j++){
cout<<b[6][j]<<" ";
}
cout<<endl;
cout<<"7 ";
for(j=1;j<=19;j++){
cout<<b[7][j]<<" ";
}
cout<<endl;
cout<<"8 ";
for(j=1;j<=19;j++){
cout<<b[8][j]<<" ";
}
cout<<endl;
cout<<"9 ";
for(j=1;j<=19;j++){
cout<<b[9][j]<<" ";
}
cout<<endl;
cout<<"10 ";
for(j=1;j<=19;j++){
cout<<b[10][j]<<" ";
}
cout<<endl;
cout<<"11 ";
for(j=1;j<=19;j++){
cout<<b[11][j]<<" ";
}
cout<<endl;
cout<<"12 ";
for(j=1;j<=19;j++){
cout<<b[12][j]<<" ";
}
cout<<endl;
cout<<"13 ";
for(j=1;j<=19;j++){
cout<<b[13][j]<<" ";
}
cout<<endl;
cout<<"14 ";
for(j=1;j<=19;j++){
cout<<b[14][j]<<" ";
}
cout<<endl;
cout<<"15 ";
for(j=1;j<=19;j++){
cout<<b[15][j]<<" ";
}
cout<<endl;
cout<<"16 ";
for(j=1;j<=19;j++){
cout<<b[16][j]<<" ";
}
cout<<endl;
cout<<"17 ";
for(j=1;j<=19;j++){
cout<<b[17][j]<<" ";
}
cout<<endl;
cout<<"18 ";
for(j=1;j<=19;j++){
cout<<b[18][j]<<" ";
}
cout<<endl;
cout<<"19 ";
for(j=1;j<=19;j++){
cout<<b[19][j]<<" ";
}
cout<<endl;
}
///////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
int judge(char b[m][n],int x,int y,int z,int q)
{
b[x][y]='X';
b[z][q]='O';
int data=0,hei[4]={0},bai[4]={0};
for(i=1;i<=19;i++){
for(j=1;j<=15;j++){
if(b[i][j]=='X'&&b[i][j+1]=='X'&&b[i][j+2]=='X'&&b[i][j+3]=='X'&&b[i][j+4]=='X'){
hei[0]=hei[0]+1;
}
}
}
for(i=1;i<=15;i++){
for(j=1;j<=19;j++){
if(b[i][j]=='X'&&b[i+1][j]=='X'&&b[i+2][j]=='X'&&b[i+3][j]=='X'&&b[i+4][j]=='X'){
hei[1]=hei[1]+1;
}
}
}
for(i=1;i<=15;i++){
for(j=1;j<=15;j++){
if(b[i][j]=='X'&&b[i+1][j+1]=='X'&&b[i+2][j+2]=='X'&&b[i+3][j+3]=='X'&&b[i+4][j+4]=='X'){
hei[2]=hei[2]+1;
}
}
}
for(i=5;i<=19;i++){
for(j=1;j<=15;j++){
if(b[i][j]=='X'&&b[i-1][j+1]=='X'&&b[i-2][j+2]=='X'&&b[i-3][j+3]=='X'&&b[i-4][j+4]=='X'){
hei[3]=hei[3]+1;
}
}
}
for(i=1;i<=19;i++){
for(j=1;j<=15;j++){
if(b[i][j]=='O'&&b[i][j+1]=='O'&&b[i][j+2]=='O'&&b[i][j+3]=='O'&&b[i][j+4]=='O'){
bai[0]=bai[0]+1;
}
}
}
for(i=1;i<=15;i++){
for(j=1;j<=19;j++){
if(b[i][j]=='O'&&b[i+1][j]=='O'&&b[i+2][j]=='O'&&b[i+3][j]=='O'&&b[i+4][j]=='O'){
bai[1]=bai[1]+1;
}
}
}
for(i=1;i<=15;i++){
for(j=1;j<=15;j++){
if(b[i][j]=='O'&&b[i+1][j+1]=='O'&&b[i+2][j+2]=='O'&&b[i+3][j+3]=='O'&&b[i+4][j+4]=='O'){
bai[2]=bai[2]+1;
}
}
}
for(i=5;i<=19;i++){
for(j=1;j<=15;j++){
if(b[i][j]=='O'&&b[i-1][j+1]=='O'&&b[i-2][j+2]=='O'&&b[i-3][j+3]=='O'&&b[i-4][j+4]=='O'){
bai[3]=bai[3]+1;
}
}
}
for(i=1;i<=19;i++){
for(j=1;j<=19;j++){
if(b[i][j]!='.'){
data=data+1;
}
}
}
if((hei[0]>=1||hei[1]>=1||hei[2]>=1||hei[3]>=1)&&data<=360){
return 1;
}
if((bai[0]>=1||bai[1]>=1||bai[2]>=1||bai[3]>=1)&&data<=360){
return 0;
}
if(data>=361){
return 2;
}
}
/////////////////////////////////////////////////////////////////////////////////////////
int ai(char b[m][n])//智能方面星期五come on
{
int best=0;
for(i=1;i<=19;i++){
if(b[i][19]!='X')break;
}
best=5;
return best;
}
int AI(char b[m][n])
{
int bes=0;
for(j=1;j<=19;j++){
if(b[15][j]!='X')break;
}
bes=5;
return bes;
}
/////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
welcom();
/////////////////////////////////////////////////////////////////////////////
char b[m][n];
for(i=1;i<=19;i++){
for(j=0;j<=19;j++){
b[i][j]='.';
}
}
//////////////////////////////////////////////////////////////////////////////
int n,hei=0,bai=0;
cin>>n;
/////////////////////////////////////////////////////////////////////////////
if(n==1){
for(;;){
if(hei<=bai){
system("cls");
board(b,x,y,z,q );
cout<<"黑棋走,输入坐标:";
cin>>x>>y;
if(x<=19&&x>=1&&y>=1&&y<=19&&b[x][y]!='X'&&b[x][y]!='O'){
system("cls");
board(b,x,y,0,0 );
hei=hei+1;
}
else{
for(;;){
cout<<"你不能占领那块阵地,重新输入坐标:";
cin>>x>>y;
if(x<=19&&x>=1&&y>=1&&y<=19&&b[x][y]!='X'&&b[x][y]!='O'){
hei=hei+1;
}
if(x<=19&&x>=1&&y>=1&&y<=19&&b[x][y]!='X'&&b[x][y]!='O')break;
}
}
if(judge(b,x,y,0,0)==1){
cout<<"黑棋胜,黑棋威武!"<<endl;}
if(judge(b,x,y,0,0)==1)break;
if(hei>bai){
cout<<"白棋走,输入坐标:";
cin>>z>>q;
if(z<=19&&z>=1&&q>=1&&q<=19&&b[z][q]!='X'&&b[z][q]!='O'){
system("cls");
board(b,0,0,z,q );
bai=bai+1;
}
else{
for(;;){
cout<<"你不能占领那块阵�
wuziqi.rar_C++五子棋 CMD
版权申诉
75 浏览量
2022-09-20
19:46:29
上传
评论
收藏 871KB RAR 举报
我虽横行却不霸道
- 粉丝: 76
- 资源: 1万+