1、定义文件名为 game.c 存放以下内容。
#include "game.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; for (j = 0; j < col; j++) { printf(" %c ", board[i][j]); if( j < col - 1) printf("|"); } printf("\n"); if (i < row - 1) { for (j = 0; j < col; j++) { printf("---"); if (j < col - 1) printf("|"); } printf("\n"); } } } void playrmove(char board[ROW][COL], int row, int col) { int x, y; printf("玩家走:"); while(1) { printf("请输入位置:〉"); scanf_s("%d,%d", &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 playrmove2(char board[ROW][COL], int row, int col) { int x, y; printf("玩家2走:"); while (1) { printf("请输入位置:〉"); scanf_s("%d,%d", &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, y=0; printf("电脑走:》\n"); while (1) { x = rand()%row; y = rand()%col; if (board[x][y] == ' ') { board[x][y] = '#'; break; } } } char iswin(char board[ROW][COL], int row, int col) { int i; for (i = 0; i < row; i++) { if (board[i][0] == board[i][1] && board[i][1] == board[i][2] && board[i][0] != ' ') return board[i][0]; } for (i = 0; i < col; i++) { if (board[0][i] == board[1][i] && board[1][i] == board[2][i] && board[0][i] != ' ') return board[0][i]; } if (board[0][0] == board[1][1] && board[1][1] == board[2][2] && board[0][0] != ' ') return board[0][0]; if (board[2][0] == board[1][1] && board[1][1] == board[0][2] && board[2][0] != ' ') return board[2][0]; if (1 == infull(board, ROW, COL)) { return 'q'; } return 'c'; } int infull(char board[ROW][COL], int row, int col) { int i, j; for (i = 0; i < row; i++) for (j = 0; i < col; j++) if (board[i][j] == ' ')return 0; }
2、定义文件名为 game.h 存放以下内容。
#pragma once #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][COL], int row, int col); void playrmove(char board[ROW][COL], int row, int col); void computermove(char board[ROW][COL], int row, int col); char iswin(char board[ROW][COL], int row, int col); int infull(char board[ROW][COL], int row, int col); void playrmove2(char board[ROW][COL], int row, int col);
3、定义文件名为 text.c 存放以下内容。(这个是主程序)
#include "game.h" void menu() { printf("***********************************************\n"); printf("***********************************************\n"); printf("*****0.退出 1.电脑对战 2.真人对战************\n"); printf("***********************************************\n"); printf("***********************************************\n"); } void game() { char p; char board[ROW][COL] = { 0 }; initboard(board, ROW, COL); displayboard(board, ROW, COL); while (1) { playrmove(board, ROW, COL); displayboard(board, ROW, COL); p=iswin(board, ROW, COL); if (p != 'c')break; computermove(board, ROW, COL); displayboard(board, ROW, COL); p=iswin(board, ROW, COL); if (p != 'c')break; } if (p == '*')printf("玩家赢\n"); else if (p == '#')printf("电脑赢\n"); else printf("平局\n"); } void game2() { char p; char board[ROW][COL] = { 0 }; initboard(board, ROW, COL); displayboard(board, ROW, COL); while (1) { playrmove(board, ROW, COL); displayboard(board, ROW, COL); p = iswin(board, ROW, COL); if (p != 'c')break; playrmove2(board, ROW, COL); displayboard(board, ROW, COL); p = iswin(board, ROW, COL); if (p != 'c')break; } if (p == '*')printf("玩家赢\n"); else if (p == '#')printf("电脑赢\n"); else printf("平局\n"); } void text() { int input = 0; srand((unsigned int)time(NULL)); do { menu(); printf("请选择:〉"); scanf_s("%d", &input); switch (input) { case 2: game2(); break; case 1: game(); break; case 0: printf("退出游戏\n"); break; default: printf("错误,请重新选择\n"); break; } } while (input); } int main() { text(); return 0; }
然后就可以输入坐标玩游戏了。
邮件:2965191336@qq.com
文章多处存在借鉴,如有侵权请联系修改删除!