基于C++实现五子棋小游戏

 更新时间:2022年05月05日 16:12:59   作者:无乎648  
这篇文章主要为大家详细介绍了基于C++实现五子棋小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C++实现五子棋小游戏的具体代码,供大家参考,具体内容如下

 (这是一个颜色会变化的呦)

#include <iostream>
using namespace std;
int b[20][20];
int n;
int m;
void qipan()
{
    system("cls");
    int k = 1;
    for (int k = 0;k < n;++k)
    {
        for (int j = 0;j < m;++j)
        {
            cout << " ---- ";
        }
        cout << endl;
        for (int i = 0;i < n;++i)
        {
            for (int j = 0;j < m;++j)
            {
                if (b[i][j] < 10 && b[i][j] >= 0) cout << "| " << 0 << b[i][j] << " |";
                else if (b[i][j] == -1) cout << "| " << "█" << " |";
                else if (b[i][j] == -2) cout << "|" << " ○ " << "|";
                else cout << "| " << b[i][j] << " |";
 
                k++;
            }
 
 
            cout << endl;
            for (int j = 0;j < m;++j)
            {
                cout << " ---- ";
            }
            cout << endl;
        }
    }
}
void success()
{
    long time;
    for (;;)
    {
        system("color a");
        for (time = 0; time < 99999999; time++);
        system("color b");
        for (time = 0; time < 99999999; time++);
        system("color c");
        for (time = 0; time < 99999999; time++);
        system("color d");
        for (time = 0; time < 99999999; time++);
        system("color e");
        for (time = 0; time < 99999999; time++);
        system("color f");
        for (time = 0; time < 99999999; time++);
        system("color 0");
        for (time = 0; time < 99999999; time++);
        system("color 1");
        for (time = 0; time < 99999999; time++);
        system("color 2");
        for (time = 0; time < 99999999; time++);
        system("color 3");
        for (time = 0; time < 99999999; time++);
        system("color 4");
        for (time = 0; time < 99999999; time++);
        system("color 5");
        for (time = 0; time < 99999999; time++);
        system("color 6");
        for (time = 0; time < 99999999; time++);
        system("color 7");
        for (time = 0; time < 99999999; time++);
        system("color 8");
        for (time = 0; time < 99999999; time++);
        system("color 9");
    }
}
int main()
{
    cout << "请选择你们想要的棋盘大小(棋盘的面积请不要大于100)" << endl;
    cout << "棋盘的长:(推荐长度为10)" << endl;
    cin >> m;
    cout << "棋盘的宽:(推荐长度为10)" << endl;
    cin >> n;
    for (int i = 0;i < n;++i)
    {
        for (int j = 0;j < m;++j)
        {
            b[i][j] = i * m + j;
        }
    }
    qipan();
    while (1)
    {
        int x;
        cout << "请玩家一输入:" << endl;
        cin >> x;
        if (x == 648)
        {
            cout << "玩家一使用系统外挂" << endl;
            cout << "游戏结束" << endl;
            cout << "玩家一获胜" << endl;
            success();
            return 0;
        }
        for (int i = 0;i < n;++i)
        {
            for (int j = 0;j < m;++j)
            {
                if (b[i][j] == x) b[i][j] = -1;
            }
        }
        for (int i = 0;i < n;++i)
        {
            for (int j = 0;j < m - 4;++j)
            {
                if ((b[i][j] == -1 && b[i][j + 1] == -1 && b[i][j + 2] == -1 && b[i][j + 3] == -1 && b[i][j + 4] == -1)
                    || (b[i][j] == -1 && b[i + 1][j] == -1 && b[i + 2][j] == -1 && b[i + 3][j] == -1 && b[i + 4][j] == -1)
                    || (b[i][j] == -1 && b[i + 1][j + 1] == -1 && b[i + 2][j + 2] == -1 && b[i + 3][j + 3] == -1 && b[i + 4][j + 4] == -1))
                {
                    cout << "游戏结束" << endl;
                    cout << "玩家一获胜" << endl;
                    success();
                    return 0;
                }
                else if (i >= 4 && (b[i][j] == -1 && b[i - 1][j + 1] == -1 && b[i - 2][j + 2] == -1 && b[i - 3][j + 3] == -1 && b[i - 4][j + 4] == -1))
                {
                    cout << "游戏结束" << endl;
                    cout << "玩家一获胜" << endl;
                    success();
                    return 0;
                }
            }
        }
        qipan();
        cout << "请玩家二输入:" << endl;
        cin >> x;
        if (x == 648)
        {
            cout << "玩家二使用系统外挂" << endl;
            cout << "游戏结束" << endl;
            cout << "玩家二获胜" << endl;
            success();
            return 0;
        }
        for (int i = 0;i < n;++i)
        {
            for (int j = 0;j < m;++j)
            {
                if (b[i][j] == x) b[i][j] = -2;
            }
        }
        qipan();
        for (int i = 0;i < n;++i)
        {
            for (int j = 0;j < m - 4;++j)
            {
                if ((b[i][j] == -2 && b[i][j + 1] == -2 && b[i][j + 2] == -2 && b[i][j + 3] == -2 && b[i][j + 4] == -2)
                    || (b[i][j] == -2 && b[i + 1][j] == -2 && b[i + 2][j] == -2 && b[i + 3][j] == -2 && b[i + 4][j] == -2)
                    || (b[i][j] == -2 && b[i + 1][j + 1] == -2 && b[i + 2][j + 2] == -2 && b[i + 3][j + 3] == -2 && b[i + 4][j + 4] == -2))
                {
                    cout << "游戏结束" << endl;
                    cout << "玩家二获胜" << endl;
                    success();
                    return 0;
                }
                else if (i >= 4 && (b[i][j] == -2 && b[i - 1][j + 1] == -2 && b[i - 2][j + 2] == -2 && b[i - 3][j + 3] == -2 && b[i - 4][j + 4] == -2))
                {
                    cout << "游戏结束" << endl;
                    cout << "玩家二获胜" << endl;
                    success();
                    return 0;
                }
            }
        }
 
 
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C语言使用广度优先搜索算法解决迷宫问题(队列)

    C语言使用广度优先搜索算法解决迷宫问题(队列)

    这篇文章主要介绍了C语言使用广度优先搜索算法解决迷宫问题,结合迷宫问题分析了C语言队列广度优先搜索算法的相关使用技巧,需要的朋友可以参考下
    2017-09-09
  • C++进程的创建和进程ID标识详细介绍

    C++进程的创建和进程ID标识详细介绍

    传统的C++(C++98)中并没有引入线程这个概念。linux和unix操作系统的设计采用的是多进程,进程间的通信十分方便,同时进程之间互相有着独立的空间,不会污染其他进程的数据,天然的隔离性给程序的稳定性带来了很大的保障
    2022-08-08
  • C语言数据结构中二分查找递归非递归实现并分析

    C语言数据结构中二分查找递归非递归实现并分析

    这篇文章主要介绍了C语言数据结构中二分查找递归非递归实现并分析的相关资料,需要的朋友可以参考下
    2017-03-03
  • C语言的Struct Hack笔记

    C语言的Struct Hack笔记

    这篇文章主要介绍了C语言的Struct Hack例子,个人的一篇笔记,需要的朋友可以参考下吧
    2014-04-04
  • C++继承的赋值转换与菱形虚拟继承深入详解

    C++继承的赋值转换与菱形虚拟继承深入详解

    今天我要给大家介绍C++中更深入的内容了,C++继承的赋值转换与菱形虚拟继承。C++这门语言为了使代码不冗余,做了些什么操作呢?C++的继承就很好地实现了类层次的代码复用,今天我就要来和大家好好聊一聊它了
    2022-08-08
  • C++11中std::declval的实现机制浅析

    C++11中std::declval的实现机制浅析

    这篇文章主要给大家介绍了关于C++11中std::declval实现机制的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-07-07
  • C++中函数匹配机制详解

    C++中函数匹配机制详解

    大家好,本篇文章主要讲的是C++中函数匹配机制详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • C++中的delete不会将操作数置0

    C++中的delete不会将操作数置0

    这篇文章主要介绍了C++中的delete不会将操作数置0的相关资料,需要的朋友可以参考下
    2016-05-05
  • MFC对话框中添加状态栏的方法

    MFC对话框中添加状态栏的方法

    这篇文章主要介绍了MFC对话框中添加状态栏的方法,实例分析了MFC对话框添加状态栏所涉及的相关成员变量与事件实现技巧,需要的朋友可以参考下
    2015-07-07
  • C++关于树的定义全面梳理

    C++关于树的定义全面梳理

    树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象自然界中的树那样。树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可用树形象表示,本篇介绍二叉树的递归与非递归遍历的方法
    2022-06-06

最新评论