断网,断电,无事自找事;

用vs2019编辑的,其他编辑器,视情况修改,运行;

#include<iostream>//#include<stdlib.h>using namespace std;#define rows 3#define cols 3//1.开始游戏界面//2.打印棋盘//3.用户下棋,判断是否结束(平局或者赢或者输)//4.电脑下棋判断是否结束(平局或者赢或者输)//5.game over//initialize the board of three chessvoid initBoard(char board[rows][cols]){    for (size_t row = 0; row< rows; ++row)    {        for (size_t col = 0; col < cols; ++col)        {            board[row][col] = ' ';        }    }}//print the board of three chessvoid printBoard(char board[rows][cols]){    cout << " ----- " << endl;    for (int row = 0; row < rows; ++row)    {        cout << '|' << board[row][0] << '|' << board[row][1] << '|' << board[row][2] << '|' << endl;        cout << " ----- " << endl;    }}//o replace user//x repalce computervoid userMove(char board[rows][cols]){    //1.提醒用户下棋    //2.判断位置是否正确,“越界or有琪”两种情况;    //3.合法,判断是否结束,平局或者输了,    //4.将位置变为'o';    size_t row = 0, col = 0;    while (1)    {        cout << "please input position:" << endl;        cin >> row >> col;        //超出范围        //if (!(row >= 0 && row < 3) || !(col >= 0 && col < 3))        if(row>=3||col>=3)        {            cout << "your inputs is not in range,please again input" << endl;            continue;        }        //位置被占用        else if (board[row][col] != ' ')        {            cout << "this position already exists,please again unput" << endl;            continue;        }        else            board[row][col] = 'o';        break;    }}//computer movevoid computerMove(char board[rows][cols]){    //1.电脑产生随机数    //2.判断随机数是否合乎要求    //3.将位置变为'x'    while (1)    {        int row = rand() % rows, col = rand() % cols;        if (board[row][col] != ' ')            continue;        else        {            board[row][col] = 'x';            break;        }    }}bool isFull(char board[rows][cols]){    for (int row = 0; row < rows; ++row)    {        for (int col = 0; col < cols; ++col)        {            if (board[row][col] == ' ')                return false;        }    }    return true;}//judge the game whether is overint checkOver(char board[rows][cols]){    //check the rows    for (int row = 0; row < rows; ++row)    {        if (board[row][0] == board[row][1]&&board[row][0] == board[row][2])            return board[row][0];    }    //check the cols    for (int col = 0; col < cols; ++col)        {        if (board[0][col] == board[1][col] == board[2][col])            return board[0][col];    }    if (board[0][0] == board[1][1] == board[2][2]        || board[0][2] == board[1][1] == board[2][0])        return board[1][1];    //是否已经满了    if (isFull(board))        return '1';    else        return '0';}int main(){    system("title smile game");    system("mode con cols=50 lines=20");    system("color e2");    char board[rows][cols];    initBoard(board);    char winner = ' ';    while (1)    {        //        printBoard(board);        userMove(board);        system("cls");        printBoard(board);        winner = checkOver(board);        if (winner == '1'||winner=='o'||winner=='x')            break;        computerMove(board);        system("cls");        printBoard(board);        winner = checkOver(board);        if (winner == '1' || winner == 'o' || winner == 'x')            break;    }    printBoard(board);    if (winner == 'x')        cout << "winner: computer" << endl;    else if (winner == 'o')        cout << "winner: you" << endl;    else if (winner == '1')        cout << "dogfall" << endl;    return 0;}
©著作权归作者所有:来自51CTO博客作者赶路人丶的原创作品,如需转载,请注明出处,否则将追究法律责任

萌新成长

赞赏

0人进行了赞赏支持

更多相关文章

  1. 学习打卡 1-30 半完成

随机推荐

  1. 人生新篇章
  2. 使用 apiDoc 为你的Node.js API 自动生成
  3. 一步步从头搭建 Vue 开发环境
  4. 8 个你不知道的 DOM 功能[每日前端夜话0x
  5. 从输入 URL 到展现涉及哪些缓存环节(非常
  6. 一笔订单,但是误付了两笔钱!这种重复付款异
  7. 收款神器!解读聚合收款码背后的原理|原创
  8. LoRa基站网关-室外型
  9. python入门教程12-04 (python语法入门之进
  10. Redhat Openshift 4.6 单机版安装指南(1)