本文共 2918 字,大约阅读时间需要 9 分钟。
写的一个小游戏有不足的地方敬请指出来,十分感谢提错
看你怎样打出平局
game.h
#ifndef __GAME_H__#define __GAME_H__#includegame.c#include #include #include #define ROWS 3#define COLS 3void init_board(char board[ROWS][COLS], int rows, int cols); //建立一个棋盘void display_board(char board[ROWS][COLS], int rows, int cols); //调试用的棋盘void player_move(char board[ROWS][COLS], int rows, int cols); //玩家移动void computer_move(char board[ROWS][COLS], int rows, int cols); //电脑移动char check_win(char board[ROWS][COLS], int rows, int cols); //检查游戏是否结束#endif __GAME_H__
#include "game.h"void init_board(char board[ROWS][COLS], int rows, int cols){ memset (board, ' ',sizeof(char)*rows*cols);}void display_board(char board[ROWS][COLS], int rows, int cols){ int i = 0; for(i=0; itest.c=0) && (x<=rows-1) && (y>=0) && (y<=cols-1) ) //判断落子位置是否合法 { if (board[x][y] == ' ') //判断落子位置是否为空 { board[x][y] = 1; break; } else { printf("输入错误,请重新输入\n"); } } else { printf("输入错误,请重新输入\n"); } }}void computer_move(char board[ROWS][COLS], int rows, int cols){ printf("‖‖‖‖\n"); while(1) { int x = rand() % 3; //rand函数产生一个随机值 int y = rand() % 3; //产生一个0~2的随机数 if (board[x][y] == ' ') //判断落子位置是否为空 { board[x][y] = 2; break; } }}static int is_full(char board[ROWS][COLS], int rows, int cols){ int i = 0; int j = 0; for (i=0; i
#include "game.h"void menu(){ printf("按【1】『开始』\n"); printf("按【0】『结束』\n");}enum Option{ EXIT, PLAY};void game(){ char ret = 0; char board[ ROWS ][ COLS ] = {0}; init_board(board, ROWS, COLS); display_board(board, ROWS, COLS); while(1) { player_move(board, ROWS, COLS); display_board(board, ROWS, COLS); ret = check_win(board, ROWS, COLS); if (ret !=' ') { break; } computer_move(board, ROWS, COLS); display_board(board, ROWS, COLS); ret = check_win(board, ROWS, COLS); if (ret !=' ') { break; } } if (ret == 1) { printf("玩家赢\n"); } else if(ret == 2) { printf("你输了\n"); } else { printf("平局\n"); }}int main(){ int input = 0; srand((unsigned int)time(NULL)); do { menu(); printf("请选择>>\n"); scanf("%d",&input); switch (input) { case PLAY: game(); break; case EXIT: break; default : { printf("错误指令,请重新选择>>.\n"); break; } } }while (input); return 0;}
如果有疑问和建议发送邮件到blbagony@163.com
欢迎纠错