码迷,mamicode.com
首页 > 其他好文 > 详细

简单的5*5,五子棋小游戏

时间:2015-11-26 01:31:15      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:五子棋   小游戏   循环   c语言   

使用C语言简单的实现棋盘为5*5的五子棋小游戏,以下为源代码:

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

//初始化一个数组

void Init(char arr[5][5])        //arr数组大小可以改变棋盘大小
{
    int i = 0, j = 0;
    for (i = 0; i < 5; i++)
    {
        for (j = 0; j < 5; j++)
        {
            arr[i][j] = ‘ ‘;
        }
    }
}

//打印棋盘

void Print_Cheseboard(char arr[][5])
{
    int i = 0;
    for (i = 0; i < 5; i++)
    {
        printf("| %c | %c | %c | %c | %c |\n", arr[i][0], arr[i][1], arr[i][2], arr[i][3], arr[i][4]);
        if (i != 4)
           {
                printf("|---|---|---|---|---|\n");
           }
    }
}

//玩家下棋

void Player_Move(char arr[][5])
{
    int x = 0;
    int y = 0;
    printf("请输入坐标>>>  \n");
    scanf("%d%d", &x, &y);
    x -= 1;
    y -= 1;
    if (arr[x][y] == ‘ ‘)
       {
            arr[x][y] = ‘X‘;
       }
    else
    {
        printf("输入有误,请重新输入:\n");
        Player_Move(arr);
    }
}

//电脑下棋

void Computer_Move(char arr[][5])
{
    int i = 0, j = 0;
    for (i = 0; i < 5; i++)
    {
        for (j = 0; j < 5; j++)
        {
            if (arr[i][j] == ‘ ‘)
                break;
        }
        if (arr[i][j] == ‘ ‘)
            break;
    }
    if (i*j == 25)
        exit(0);
    else
        arr[i][j] = ‘0‘;
}

//战况判断

char Check(char arr[][5])
{
    int i = 0;
     for (i = 0; i < 5; i++)
    {
        if (arr[i][0] == arr[i][1] && arr[i][1] == arr[i][2] && arr[i][2] == arr[i][3] && arr[i][3] == arr[i][4])
        {
            if (arr[i][0] != ‘ ‘)
                return arr[i][0];
        }
    }
    for (i = 0; i < 5; i++)
    {
        if (arr[0][i] == arr[1][i] && arr[1][i] == arr[2][i] && arr[2][i] == arr[3][i] && arr[3][i] == arr[4][i])
        {
            if (arr[0][i] != ‘ ‘)
                return arr[0][i];
        }
    }
    if (arr[0][0] == arr[1][1] && arr[1][1] == arr[2][2] && arr[2][2] == arr[3][3] && arr[3][3] == arr[4][4])
    {
        if (arr[0][0] != ‘ ‘)
            return arr[0][0];
    }
    if (arr[0][4] == arr[1][3] && arr[1][3] == arr[2][2] && arr[2][2] == arr[3][1] && arr[3][1] == arr[4][0])
    {
        if (arr[0][4] != ‘ ‘)
            return arr[0][4];
    }
    return  ‘ ‘;
}

//主函数
int main()
{
    char done=‘ ‘;
    char arr[5][5];
    Init(arr); 
    do
    {
        Print_Cheseboard(arr);
        Player_Move(arr);
        done = Check(arr);
        if (done != ‘ ‘)
        {
            break;
        }
        Computer_Move(arr);
        done = Check(arr);
    } while (done == ‘ ‘);
    if (done == ‘X‘)
       {
        printf("玩家胜!!!\n");
       }
    else
       {
        printf("电脑胜!!!\n");
       }
    Print_Cheseboard(arr);
    system("pause");
    return 0;
}


本文出自 “木木侠” 博客,谢绝转载!

简单的5*5,五子棋小游戏

标签:五子棋   小游戏   循环   c语言   

原文地址:http://10324228.blog.51cto.com/10314228/1716892

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!