数组、循环、条件应用(三子棋游戏)"/>
数组、循环、条件应用(三子棋游戏)
根据之前所学,上手了一个趣味游戏实现,在这里放出代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include "game.h"
#include <stdio.h>void InitBoard(char board[ROW][COL], int row, int col)
{int i = 0;int j = 0;for (i = 0; i < row; i++){for (j = 0; j < col; j++){board[i][j] = ' ';}}
}void DisplayBoard(char board[ROW][COL], int row, int col)
{int i = 0;for (i = 0; i < row; i++){int j = 0;// 1. 打印一行的数据for (j = 0; j < col; j++){printf(" %c ",board[i][j]);if (j < col - 1) // 最后一列没有这个竖杠printf("|");}printf("\n");// 2. 打印分割行if (i < row - 1){for (j = 0; j < col; j++){printf("---");if (j < col - 1)printf("|");}printf("\n");}}
}void PlayerMove(char board[ROW][COL], int row, int col)
{int x = 0;int y = 0;printf("玩家走:>\n");while (1){printf("请输入要下的坐标:>");scanf("%d%d", &x, &y);// 判断x和y坐标的合法性if (x >= 1 && x <= row && y >= 1 && y <= col){if (board[x - 1][y - 1] == ' '){board[x - 1][y - 1] = '*';break;}else{printf("该坐标被占用!\n");}}else{printf("坐标非法,请重新输入!\n");}}
}void ComputerMove(char board[ROW][COL], int row, int col)
{int x = 0;int y = 0;printf("电脑走:>\n");while (1){x = rand() % row;y = rand() % col; if (board[x][y] == ' '){board[x][y] = '#';break;}}}// 返回1表示棋盘满了
// 返回0表示棋盘没满
int IsFull(char board[ROW][COL], int row, int col)
{int i = 0;int j = 0;for (i = 0; i < row; i++){for (j = 0; j < col; j++)
更多推荐
数组、循环、条件应用(三子棋游戏)
发布评论