首页 > 其他分享 >三子棋(人人)

三子棋(人人)

时间:2024-06-23 16:58:58浏览次数:3  
标签:return int 三子 char player board 人人 SIZE

#include <stdio.h>
#include <string.h>

#define SIZE 3

// 函数声明
void printBoard(char board[SIZE][SIZE]);
int checkWin(char board[SIZE][SIZE], char player);
int isBoardFull(char board[SIZE][SIZE]);
void getUserInput(char board[SIZE][SIZE], char player);

int main() {
    char board[SIZE][SIZE];
    int gameover = 0;
    char currentPlayer = 'X';

    // 初始化棋盘
    for (int i = 0; i < SIZE; i++) {
        for (int j = 0; j < SIZE; j++) {
            board[i][j] = '-';
        }
    }

    while (!gameover) {
        printBoard(board);
        getUserInput(board, currentPlayer);

        if (checkWin(board, currentPlayer)) {
            printf("Player %c wins!\n", currentPlayer);
            gameover = 1;
        }
        else if (isBoardFull(board)) {
            printf("It's a draw!\n");
            gameover = 1;
        }
        else {
            currentPlayer = (currentPlayer == 'X') ? 'O' : 'X';
        }
    }

    return 0;
}

void printBoard(char board[SIZE][SIZE]) {
    for (int i = 0; i < SIZE; i++) {
        for (int j = 0; j < SIZE; j++) {
            printf("%c ", board[i][j]);
        }
        printf("\n");
    }
}

int checkWin(char board[SIZE][SIZE], char player) {
    // 检查行、列和对角线
    for (int i = 0; i < SIZE; i++) {
        if (board[i][0] == player && board[i][1] == player && board[i][2] == player) return 1;
        if (board[0][i] == player && board[1][i] == player && board[2][i] == player) return 1;
    }
    if (board[0][0] == player && board[1][1] == player && board[2][2] == player) return 1;
    if (board[0][2] == player && board[1][1] == player && board[2][0] == player) return 1;

    return 0;
}

int isBoardFull(char board[SIZE][SIZE]) {
    for (int i = 0; i < SIZE; i++) {
        for (int j = 0; j < SIZE; j++) {
            if (board[i][j] == '-') return 0;
        }
    }
    return 1;
}

void getUserInput(char board[SIZE][SIZE], char player) {
    int row, col;
    do {
        printf("Player %c, enter your move (row and column): ", player);
        scanf("%d %d", &row, &col);
        if (board[row][col] != '-') {
            printf("Invalid move, try again.\n");
        }
    } while (board[row][col] != '-');
    board[row][col] = player;
}

标签:return,int,三子,char,player,board,人人,SIZE
From: https://blog.csdn.net/2301_80359017/article/details/139902587

相关文章

  • 三子棋-后带源码
    在函数声明调用的时候说明了日后写复杂的项目直接写在一个源文件中不建议所以今天这个三子棋分多个文件来写首先来介绍用sest来作用游戏的开始和玩法,再然后用saq.h用来存放函数的声明和头文件最后使用szq.c来实现游戏首先是游戏的开始逻辑每个游戏都要有开始界面然后就......
  • C语言实现三子棋游戏
    三子棋我们再熟悉不过了,但是如何用C语言制作三子棋游戏呢?首先我们用*号代表玩家下棋;我们用#号代表电脑下棋;接着我们可以通过输入坐标来控制棋子的输入,而电脑通过随机数的来下棋。用模块化编程,将一个游戏分成3个文件来制作,分别为主文件test.c来执行主函数main、其次是注册函数......
  • Kaggle比赛:成人人口收入分类
    拿到数据首先查看数据信息和描述 importpandasaspdimportseabornassnsimportmatplotlib.pyplotasplt#加载数据(保留原路径,但在实际应用中建议使用相对路径或环境变量)data=pd.read_csv(r"C:\Users\11794\Desktop\收入分类\training.csv",encoding......
  • 【数据质量人人有责】数据质量是什么?
    引言:数据是当代企业的核心资源之一,对于支持业务决策、优化运营和增强竞争力至关重要。然而,仅仅拥有数据并不意味着能够充分发挥其潜在价值。只有先确保数据质量,才能保证后续数据分析和挖掘的正确的结果对管理和业务有价值,才能发挥数据的价值;从这个角度来说,数据质量是数据机制......
  • 人人都是程序员—AI大模型的应用远比你想像的要简单
    2022年底OpenAI发布了语言大模型chatgpt3.5,它能像人一样跟我们聊天,从此AI市场着了大火,国内外各个顶级科技公司纷纷跟进,出现了一大批的AI大模型,比如文心一言(百度)、Gemini(谷歌)、通义千问(阿里)、讯飞火星(科大讯飞)、豆包(抖音)、kimi(月之暗面)等等,这一年可以称得上是AI元年,AI真正参......
  • Python使用BeautifulSoup爬取人人影视的详情页面
    importrequests,jsonfrombs4importBeautifulSoupif__name__=='__main__':url="https://yyets.com/movies/201565/"headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537......
  • 看完这篇人人都能成为大模型应用产品经理!
    近一年来,大语言模型(LLM)虽被誉为“iPhone时刻”已来,但横行的都是chat类薄应用,所以人人都有机会:大模型层还在向更快、更长、更便宜突飞猛进,大规模应用所依赖的模型基础还很不稳;目前绝大部分大模型应用还属于「薄」应用,壁垒不够强,应用价值或将很快归零,根本守不住;对大厂而......
  • 初识C语言第三十天——设计三子棋游戏
    目录一.设计游戏框架1.打印游戏菜单2.输入选择判断(玩游戏/游戏结束/输入错误重新输入)  二、玩游戏过程设计1.设计棋格存放棋子——二维数组2.初始化棋盘——初始化为空格3.打印棋盘——本质上就是打印数组4.游戏过程——1.玩家走棋2.判断结果 3.电脑走棋4.判断结......
  • 百度何俊杰:智能体就是生产力,人人都能成为超级个体
    「智能体就是生产力,这是每一个人放大杠杆、撬动红利,成为超级个体的时代机遇。」5月30日,在苏州举办的2024百度移动生态万象大会上,百度集团资深副总裁、百度移动生态事业群组总经理何俊杰发表《让智能体人人可用》的主题演讲。他认为,百度有责任也有能力做好新技术的普惠者,让所有人......
  • 人人都是产品经理,尼恩产品经理面试宝典(史上最全、定期更新)
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......