C++ 井字棋

这篇博客介绍如何使用C++编程实现井字棋游戏。游戏规则是两个玩家轮流在3x3的棋盘上下圈或叉,先连成一线者获胜。内容涉及play函数(制定游戏规则)、draw函数(输出棋盘)、checkVictory函数(判断输赢)、玩家下棋函数(接收玩家输入)和电脑玩家下棋策略的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

井字棋

两个玩家,一个打圈,一个打叉,轮流在3乘3的格上打自己的符号,最先以横、直、斜连成一线则为胜。如果双方都下得正确无误,将得和局。

参考如下:

在这里插入图片描述
项目分析
需要的函数
1.play函数——制定游戏规则
包括下棋的顺序,输赢的确定,棋盘的布置,下棋的方法,一局游戏结束后的输出
2.draw函数——输出游戏棋盘
棋盘位置不变,故使用

	COORD c = { 0, 2 };
	SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), c );

使得下落后的棋子可以覆盖在棋盘上。
控制保存棋盘的数列——输出到棋盘上
3.checkVictory函数——判断是否有输赢确定
判断有无输赢,返回游戏结果
4.玩家下棋函数——接受信息
将玩家下的子放入保存棋盘的数列;
5.电脑玩家下棋
制定电脑下棋的规则,将下一步棋保存至棋盘数列;

#include <windows.h>
#include <iostream>
#include <string>

using namespace std;

enum players {
    Computer, Human, Draw, None };     //编号 
const int iWin[8][3] = {
    {
    0, 1, 2 }, {
    3, 4, 5 }, {
    6, 7, 8 }, {
    0, 3, 6 }, {
    1, 4, 7 }, {
    2, 5, 8 }, {
    0, 4, 8 }, {
    2, 4, 6 } };
//可能赢的情况 

//定义游戏类 
class ttt
{
   
public:
    ttt()            //无参构造函数 
    {
   
        _p = rand() % 2;          //轮流走,随机顺序 
        reset();              //重置 
    }
    void play()               
    {
   
        int res = Draw;             //draw为2 
        while( true )
        {
   
            drawGrid();              //调用函数——给出棋盘 
            while( true )
            {
   
                if( _p ) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值