c三子棋主程序

news/2024/7/5 18:27:58

#define _CRT_SECURE_NO_WARNINGS 1
//三子棋
#include"game.h"
void menu()
{
    printf("**********************\n");
    printf("**** *1.play   *******\n");
    printf("**** *0.exit   *******\n");
    printf("**********************\n");
}
//游戏的真个实现
void game()
{
    char ret = 0;//用来接收is_win的返回值

    //数组存放棋盘信息
    char board[ROW][COL] = { 0 };

    //初始化棋盘
    InitBoard(board, ROW, COL);

    //打印棋盘
    DisplayBoard(board,ROW,COL);

    //下棋
    while (1)
    {
        //玩家下棋
        PlayerMove(board, ROW, COL);
        //打印棋盘
        DisplayBoard(board, ROW, COL);
        //判断玩家是否赢
        ret = is_win(board, ROW, COL);
        if ('c' != ret)
        {
            break;
        }
         
        //电脑下棋
        ComputerMove(board, ROW, COL);
        //打印棋盘
        DisplayBoard(board, ROW, COL);
        //判断电脑是否赢
        ret = is_win(board, ROW, COL);
        if ('c' != ret)
        {
            break;
        }

    }
    if ('*' == ret)
    {
        printf("玩家赢\n");
    }
    else if ('#'== ret)
    {
        printf("电脑赢\n");
    }
    else
    {
        printf("平局\n");
    }
}
void test()
{
    int input = 0;
    srand((unsigned int)time(NULL));
    do
    {
        menu();
        printf("请选择1/0:"); 
        scanf("%d", &input);
        switch (input)
        {
        case 1:
            game();
            break;
        case 0:
            printf("退出游戏\n");
            break;
        default:
            printf("选择错误,请重新选择:\n");
            break;
        }
    } 
    while (input);
}
int main()
{
    test();
    return 0;
}


http://www.niftyadmin.cn/n/3567786.html

相关文章

linux调用jar路径问题与解决

为什么80%的码农都做不了架构师?>>> 直接写jar,报错找不到,必须写完整路径 /usr/local/java/jdk1.8.0_144/bin/jar -xvf /MemberSheep/shpcoin180829/Shpcoin.war java -version能打印出来为啥jar不行呢 # java -version java ve…

android调用本地js文件上传,js 通过 jszip、JSZipUtils实现本地上传zip文件或者远程zip文件解压并获取文件中的内容...

测试:1、html中引入js库2、拉取文件并解压的方法function getRomoteZipFile(){return new Promise(function(resolve, reject) {// step1 请求文件JSZipUtils.getBinaryContent("http://**/***.zip", function(err, data) {if (err) {reject(err);} else …

android多个音频文件上传,在单个目录中存储多个音频文件 - Android

我正在尝试构建一个android录音机应用程序,其中的音频录制内容应存储在我的手机内部存储器中的目录中。在单个目录中存储多个音频文件 - Android这是我在Android的Studio代码:File AudioDirnew File("/sdcard/Audiofiles/");AudioDir.mkdir();…

c。三子棋(japplet)头文件

#define _CRT_SECURE_NO_WARNINGS 1 #define ROW 3 #define COL 3 #include<stdio.h> #include<stdlib.h> #include<time.h> //声明 //棋盘初始化 void InitBoard(char board[ROW][COL], int row, int col); //打印棋盘 void DisplayBoard(char board[ROW]…

VMware虚拟机从一台电脑转移复制到另一台电脑的方法

2019独角兽企业重金招聘Python工程师标准>>> VMware虚拟机安装的目的主要是用来学习和测试&#xff0c;VMware虚拟机系统文件是可以转移复制的&#xff0c;把.vmx文件和所有的.vmdk文件全部拷贝即可。 这里简单解释下这个文件&#xff0c;vmx是虚拟系统配置文件&…

如何使用android适配器类型,Android中的设计模式之适配器模式

8种机械键盘轴体对比本人程序员&#xff0c;要买一个写代码的键盘&#xff0c;请问红轴和茶轴怎么选&#xff1f;简介适配器模式把一个类的接口变换成客户端所期待的另一种接口&#xff0c;从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。模式中的角色需要适配…

PM2 指令简介

pm2 是一个带有负载均衡功能的Node应用的进程管理器.当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的,下面我们来看pm2常用的命令用法介绍吧。 PM2 &#xff08;github上的源码&#xff09;是开源的基于Nodejs的进程管理器&…

android+饭否+开源,饭否Android客户端推荐:有饭

一、有饭基本功能及体验1、刷饭顺滑&#xff1b;2、左右滑动在首页、提醒页、个人设置页切换&#xff0c;滑动代替点击操作&#xff0c;对大屏手机很方便&#xff1b;3、发饭字体够大&#xff1b;4、浏览的字体也比小饭Pro大&#xff0c;适合老年人使用&#xff1b;5、返回手势…