C++五子棋小游戏做法

本文介绍如何使用C++编程实现一个简单的五子棋小游戏,涵盖了光标移动、棋盘绘制、棋子绘制、胜利条件判断、读取玩家坐标输入及主程序逻辑,最后给出了完整代码。
摘要由CSDN通过智能技术生成


程序分如下部分:

编号 部分
1 光标移动
2 绘制棋盘
3 绘制棋子
4 胜利条件
5 读入坐标
6 主程序段

光标移动

void gotoxy(int x,int y)
{
   
    HANDLE hout=GetStdHandle(STD_OUTPUT_HANDLE);
    COORD pos;
    pos.X=x;
    pos.Y=y;
    SetConsoleCursorPosition(hout,pos);
}

绘制棋盘

void drawchessboard()//画出棋盘边缘行列数字 
{
   
	int i;
	cout<<"  ";
	for(i=0;i<10;i++)
	{
   
		if(i==9)
		{
   
			cout<<i<<endl;
		}
		else
		{
   
			cout<<i<<" ";
		}
	}
	for(i=0;i<10;i++)
	{
   
		cout<<i<<endl;
	}
	cout<<"--------------------"<<endl;
}

void printchessboard()
{
   
	for(int i=0;i<=9;i++)
	{
   
		for(int j=0;j<=9;j++)
		{
   
			int xx=2*j+2,yy=i+1;
			gotoxy(xx,yy);
			if(mat[i][j]==0)		putch(' ');
			else if(mat[i][j]==1)	putch('O');
			else					putch('X');
		}
	}
}

绘制棋子

void printchessboard()
{
   
	for(int i=0;i<=9;i++)
	{
   
		for(int j=0;j<=9;j++)
		{
   
			int xx=2*j+2,yy=i+1;
			gotoxy(xx,yy);
			if(mat[i][j]==0)		putch(' ');
			else if(mat[i][j]==1)	putch('O');
			else					putch('X');
		}
	}
}

胜利条件

int Judge_End()//判断游戏是否结束,返回0表示没有结束;返回1表示1号玩家胜利;返回2表示2号玩家胜利 
{
   
	int i,j,k,l;
	short u1,u2;
	u1=u2=0;
	for(i=0;i<10;i++)//判断横向 
	{
   
		u1=u2=0;
		for(j=0;j<10;j++)
		{
   
			if(mat[i][j]==1)
			{
   
				u2=0;
				u1++;
			}
			else if(mat[i][j]==2)
			{
   
				u1=0;u2++;
			}
			else if(mat[i][j]==0)
			{
   
				u1=0;u2=0;
			}
			if(u1==5)
			{
   
				system("cls");
				cout<<"1号玩家胜利!"<<endl;
				return 1;
			}
			else if(u2==5)
			{
   
				system("cls");
				cout<<"2号玩家胜利!"<<endl;
				return 2;
			}
		}
	}
	u1=u2=0;
	for(i=0;i<10;i++)//判断竖向 
	{
   
		u1=u2=0;
		for(j=0;j<10;j++)
		{
   
			if(mat[j][i]==1)
			{
   
				u2=0;
				u1++;
			}
			else if(mat[j][i]==2)
			{
   
				u1=0;
				u2++;
			}
			else if(mat[j][i]==0)
			{
   
				u1=0;u2=0;
			}
			if(u1==5)
			{
   
				system("cls");
				cout<<"1号玩家胜利!"<<endl;
				return 1;
			
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值