【经典游戏编程题】C语言:编写一个棋盘游戏,与二维数组结合

原创 2016年05月30日 17:13:17

    编写了五个函数,再用主函数调用:


#include<stdio.h>
#include<stdlib.h>

char arr[3][3];

void print()
{
    int i = 0;
    for (i = 0; i<3; i++)
    {
        printf("%c|%c|%c|\n", arr[i][0], arr[i][1], arr[i][2]);
        printf("_|_|_|\n");
    }
}


void init_arr()
{
    int i = 0;
    int j = 0;
    for (i = 0; i<3; i++)
    {
        for (j = 0; j<3; j++)
        {
            arr[i][j] = ' ';
        }
    }
}


void player()
{
    int i = 0;
    int j = 0;
    printf("输入i,j:\n");
    scanf("%d %d", &i, &j);
    i--;
    j--;
    if (arr[i][j] != ' ')
    {
        printf("此格已输入,请重新输入i,j:\n");
        player();
    }
    else
    {
        arr[i][j] = 'X';
    }
}


void computer_move()
{
    int i = 0;
    int j = 0;
    for (i = 0; i<3; i++)
    {
        for (j = 0; j<3; j++)
        {
            if (arr[i][j] == ' ')
            {
                arr[i][j] = '0';
                break;
            }
        }
        break;
    }
}


char win()
{
    int i = 0;
    for (i = 0; i<3; i++)
    {
        if ((arr[i][0] == arr[i][1]) &&
            (arr[i][1] == arr[i][2]))
        {
            return arr[i][0];
        }
    }

    for (i = 0; i<3; i++)
    {
        if ((arr[0][i] == arr[1][i]) &&
            (arr[1][i] == arr[2][i]))
        {
            return arr[0][i];
        }
    }
}


int main()
{
    int i = 0;
    int j = 0;
    char done = ' ';
    init_arr();
    printf("棋盘游戏:\n");
    do
    {
        print();
        player();
        done = win();
        if (done != ' ')
        {
            break;
        }
        computer_move();
        done = win();
    } while (done == ' ');

    if (done == '0')
    {
        printf("电脑赢\n");
    }
    else
    {
        printf("玩家赢\n");
    }
    print();
    system("pause");
    return 0;
}

wKioL1YmAwSzDFSkAAH4c_FvHas574.jpg

C语言十大经典游戏编程

  • 2011年05月08日 17:45
  • 69KB
  • 下载

C语言二维数组实现扫雷游戏

#include //使用二维数组实现 扫雷 int main() { char ui[8][8]={ '+','+','+','+','+','+','+...

④C语言,二维数组模拟井字棋游戏开发

#include int main(void) { int a[3][5];//定义一个三行五列的二维数组 //以下为二维数组的遍历 int p,x; for(p=0;p...

C语言用二维数组实现开关灯泡游戏

用二维数组实现开关灯泡游戏

C语言+二维数组+非递归实现五子棋游戏(代码贴过来后无缩进,尽请谅解,工程完成度:100%)

规则: 1、白子为0; 2、黑子为@; 3、白子先手; 备注: 1、本程序会持续进行代码与流程的完善; #include #define N 16 void wzq_show(char ...

C语言实现经典游戏——扫雷!

C语言实现经典游戏——扫雷

Visual C#经典游戏编程开发 源代码

  • 2013年06月12日 18:19
  • 23.61MB
  • 下载

经典游戏算法之骑士走棋盘

问题描述:中国象棋中,马可以走遍棋盘上的任何角落.国际象棋中,也同样有这样的说法:骑士可以走遍棋盘上的每个格子.现在的问题是:在一个8x8的棋盘上,从任意位置开始,骑士如何可以不重复地走完所有的位置?...

Visual C++经典游戏编程

  • 2009年03月04日 09:35
  • 3.75MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【经典游戏编程题】C语言:编写一个棋盘游戏,与二维数组结合
举报原因:
原因补充:

(最多只允许输入30个字)