基于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;
                }
            }
        }
 
 
    }
}

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

(0)

相关推荐

  • C++实现简易五子棋游戏

    C++实现的简易五子棋游戏,供大家参考,具体内容如下 三个函数: void menu():                    //菜单 int fun1(char a[21][43]):   //白旗 int fun2(char a[21][43]):   //黑棋 通过二维数组来实现棋盘与棋子. 构建棋盘: 直接通过一个二维字符数组来实现棋盘,只需cout即可.比较直观,但判断条件时过于繁杂.也可以使用二维整型数组,通过不同的整数来表示不同的字符,简化判断.cout时只需根据数组元素的类型

  • C++实现简单五子棋游戏

    五子棋是世界智力运动会竞技项目之一,是一种两人对弈的纯策略型棋类游戏,是世界智力运动会竞技项目之一,通常双方分别使用黑白两色的棋子,下在棋盘直线与横线的交叉点上,先形成5子连线者获胜. 规则 (1)对局双方各执一色棋子. (2)空棋盘开局. (3)黑先.白后,交替下子,每次只能下一子. (4)棋子下在棋盘的空白点上,棋子下定后,不得向其它点移动,不得从棋盘上拿掉或拿起另落别处. (5)黑方的第一枚棋子可下在棋盘任意交叉点上. (6)轮流下子是双方的权利,但允许任何一方放弃下子权(即:PASS权)

  • C++实现五子棋游戏(注释版)

    本文实例为大家分享了C++实现五子棋游戏的具体代码,供大家参考,具体内容如下 本程序是在vs2015环境下编译运行vs左上角:文件–新建–项目–Win32控制台应用程序–(注意勾选“附加选项:空项目“) 右键头文件”添加–新建项“,类型为 .h 文件,名称分别为”Player.h“以及”ChessBoard.h",即定义“玩家”和“棋盘”两个class 然后相同的方式在源文件中右键添加三个.cpp文件 然后把code copy过去就可以了 另外,代码不是完美的,存在bug,大家可以尝试找一下 相

  • C++实现图形界面双人五子棋游戏

    本文实例为大家分享了C++实现图形界面双人五子棋游戏的具体代码,供大家参考,具体内容如下 设计思路 定义一个Chess类,用16*16的二维数组的来表示一方棋手在棋局上的落子状态.通过控制键盘←↑→↓来选择落点,getch()函数可获得用户的键盘输入,用coord控制台屏幕上的坐标.胜利条件:Chess类的成员函数win(),每落一个棋子进行win()的判断,当横向.竖向或斜向存在同一颜色的连续五个棋子时,win()返回值1. 代码如下 #include <windows.h>   #incl

  • C++代码实现五子棋小游戏

    简单C++代码实现五子棋任务,供大家参考,具体内容如下 首先先展示一下运行的图片 话也不多说,直接分不同代码板块来介绍程序不同功能以及是如何实现的 首先,对于一个五子棋程序,我们要思考的,在过程式的编程思想里面,如何将其功能分解为不同的函数 1.打印棋盘 由于使用的棋子每一个棋子占两个字符,所以打印时要使用两个空格 int b=0,w=0,player=1,x,y; //b和w分别作为参数标记黑棋白棋的胜利,player用来指明每次是下黑棋还是白棋,x,y分别用来作为棋盘的横纵坐标 int ch

  • C++实现简易的五子棋游戏

    本文实例为大家分享了C++实现简易五子棋游戏的具体代码,供大家参考,具体内容如下 //用c++实现五子棋 #include <iostream> #include <cstdlib> #include "getch.h" using namespace std; enum Role{RED=99,BLUE}; class Gobang {     char board[15][15];     int key_x,key_y;     Role role; pu

  • 使用C++ MFC编写一个简单的五子棋游戏程序

    MFC简介: MFC(MicrosoftFoundationClasses)是微软基础类库的简称,是微软公司实现的一个c++类库,主要封装了大部分的windows API函数. MFC除了是一个类库以外,还是一个框架,在vc++里新建一个MFC的工程,开发环境会自动帮你产生许多文件,同时它使用了mfcxx.dll.xx是版本,它封装了mfc内核,所以你在你的代码看不到原本的SDK编程中的消息循环等等东西,因为MFC框架帮你封装好了,这样你就可以专心的考虑你程序的逻辑,而不是这些每次编程都要重复的

  • 基于c++ ege图形库实现五子棋游戏

    本文分享的五子棋实例,制作基于ege图像库, 首先需要安装配置ege环境 就可以编写小游戏了. 用到的ege库函数不多 , 主要是基于c++的. 先看界面效果: 输入界面:(就是控制台) 游戏胜利界面: 文档如下: 关于五子棋的构思: 实现人人对战的五子棋游戏.使用面向对象的c++ 和 ege库实现. ege的安装过程不在说明 , 在添加编译链接时去掉 -mwindows 选项. dev c++ 的运行环境设置为 TDM-GCC 4.8.1.32-bit Debug 为保险起见,编译时选择菜单栏

  • C++实现五子棋小游戏

    本文实例为大家分享了C++实现五子棋小游戏的具体代码,供大家参考,具体内容如下 思路:先用用system(“color 70”)改变控制台的背景色为灰白色,前景色为黑色,然后用“■”打印棋盘,然后用SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), a)改变输出颜色分别为白色和黑色,用字符“●”打印黑棋和白棋.整个棋盘用一个char类型的二维数组保存,空的地方用‘ ’标识,玩家一下棋的地方用‘x’标识,玩家二下棋的地方用‘o’标识(电

  • C++简单五子棋的AI设计实现

    本文实例为大家分享了C++五子棋的AI设计实现代码,供大家参考,具体内容如下 设计思路:通过接口获取信息来确定颜色,通过set_chess函数来确定落点. 对每个点位给出两种颜色棋子的打分,分别存在两个15*15的数组里,数组下标代表点的位置. 确定最大值所在数组之后,遍历该数组找出所有最大值对应的位置,然后对这些位置统计另一种颜色的棋子的分数,再选取一次最大值,从而确定要落点的位置. 打分函数的设计:在四个方向分别统计然后相加.对于某一个方向的分数统计,则分为正反两个方向进行,统计的时候如果有

随机推荐