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

使用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;
}
时间: 2024-08-25 11:42:05

简单的5*5,五子棋小游戏的相关文章

Java 初学 第一弹--编译并运行书上的简单程序(猜数字小游戏)

(博主原创) 首先说明一下,博主是大一上学期结束寒假时自己看的Java,然后我看的是Head First Java的中文版,因为大一学了c,所以里面的一些基本思想还是了解的,在看这本书时就浏览了一下(就是那种光看没有自己动手去敲代码的),然后看到书上的一个猜数字小游戏,就想手动敲一下,熟悉熟悉Java的语法,但是真正去做时,发现比看起来要困难一些. 首先是Java在建立一个源码文件之前要先建一个package,然后我用的Eclipse写的Java(感觉和pycharm风格差不多),再新建一个文件

借助实时数据推送快速制作在线对战五子棋小游戏丨实战

1 项目概述 游戏开发,尤其是微信小游戏开发,是最近几年比较热门的话题. 本次「云开发」公开课,将通过实战「在线对战五子棋」,一步步带领大家,在不借助后端的情况下,利用「小程序 ? 云开发」,独立完成一款微信小游戏的开发与上线. 2 任务目标 根据项目初始框架,阅读教程的同时,逐步完成棋盘绘制.音乐播放.玩家对战.输赢判定等功能,最终实现一个可以快乐玩耍的在线对战五子棋. 在这个过程中,会了解到 Serverless 的一些概念,并且实际应用它们,比如:云数据库.云存储.云函数.增值能力.除了这

用Turbo C 2.0写五子棋小游戏

这辈子再也不用Turbo C写东西了_(:зゝ∠)_ 功能 有比较友好(大概友好吧:) )的界面. 采用贪心算法,能与计算机对弈 流程图 主函数 int main() { int gd = DETECT, gm = 0; int key; initgraph(&gd, &gm, "c:\\tc"); opencartoon(); /*开场动画*/ init(); /*界面和棋盘初始化*/ key = get_key(); while (!quit) { /*只要没有退出

jQuery网页版五子棋小游戏源码下载

体验效果:http://hovertree.com/texiao/game/4/ 网页五子棋源代码: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>jquery五子棋游戏 -</title> <script type="

结对实践项目——“五子棋”小游戏

之前与小组同学合作过一起写代码,那时老师分工明确,写两部分代码,一人负责一部分,剩下一个人做测试代码,在老师详尽的分工下,我们顺利的完成了那次任务. 这次从无范围自主选题,到熟练运用GUI,实现了人人对战. [功能分析] (1)程序在设计初就定义黑棋先行,白棋随后.一个玩家通过w,a,s,d键控制落子位置,按Space落子,另一个玩家通过控制方向键up,down,left,right控制位置,按Enter落子,从第一个棋子开始开始相互顺 序落子. (2)通过坐标索引算出最先在棋盘的横向.竖向.斜

CSS3实现五子棋Web小游戏,Canvas画布和DOM两种实现,并且具有悔棋和撤销悔棋功能。

用Canvas实现五子棋的思路: 1.点击棋盘,获取坐标x,y,计算出棋子的二维数组坐标i和j, 2.棋子的实现,先arc一个圆,再填充渐变色. 3.下完一步棋后切换画笔和角色. 4.赢法算法的实现:计算出整个15*15的棋盘有多少种赢法,定义一个win[]三维数组,数组的初始化如下. //赢法数组 var wins = []; for (var i = 0; i < 15; i++) { wins[i] = []; for (var j = 0; j < 15; j++) { wins[i]

js实现魂斗罗版的棍子英雄小游戏ContraHero

一直想用canvas写一个魂斗罗游戏,但是发现自己水平和学习能力差太多,收集好素材之后发现一个棍子英雄的小游戏挺火,就产生了写本文这个游戏的想法.直接上demo,建议在chrome下:点我. 简单说下写这个小游戏遇到的2个坑爹问题: 1.之前下的素材music.mp3这个文件,其实是3段音频.最后几秒是魂斗罗结束时的音乐,我想在结束的时候直接从调用最后几秒的音频.查了一下audio,很容易找到了audio的currentTime这个属性可以设置音频的播放位置.但是我本地测试的过程中,这个属性是一

介绍一款Android小游戏--交互式人机对战五子棋

文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6589025 学习Android系统开发之余,编写了一个小游戏--交互式人机对战五子棋,自娱自乐.之所以称之为交互式人机对战五子棋,一是因为在进入人机对战模式这前,你可以任意设置好开局,同时,在对战过程中,你可以看到机器的思考过程,还可以标识出每一个落子点的优劣势:二是因为可以为机器增加游戏经验,使得机器越来越聪明.希望喜欢五子棋的同学能够喜欢,

小游戏二之---------------五子棋

1.五子棋是一比较容易写的小游戏,很适合用来练手,作为练手,不必弄太复杂,所以就不弄电脑AI了,只是玩家之间的对战(AI下次再写). 2.五子棋的难点在于如何判断输赢,其实很简单.每次下棋,就判断该棋子的四个方向,横竖方向,还有两个对角线(分成四个部分,左上,左下,右上,右下)方向是否满足五个棋子. 3.用一个二维数组来表示棋盘(chessBoard[N][N]),值等于0,就表示该位置没有棋子,1表示该位置是玩家1的棋子,2则是玩家2的棋子. 4.运行结果如下: 代码如下(C++),有详细注释