三子棋小游戏的实现
来源:互联网 发布:不履行网络安全法 编辑:程序博客网 时间:2024/06/01 18:56
初次写这个小游戏,程序设计也比较简单,其中还有许多需要改进的地方。
这个三子棋程序我同样使用了三个文件,game.h、game.c、和test.c
game.h
#define _CRT_SECURE_NO_WARNINGS 1#ifndef __GAME_H__#define __GAME_H__#include<stdlib.h>#include<time.h>#include<stdio.h>#include<string.h>#define ROWS 3//行数#define COLS 3//列数void InitBoard(char board[ROWS][COLS], int row, int col);//棋盘初始化void Display_board(char board[ROWS][COLS], int row, int col);//打印棋盘void Player_Move(char board[ROWS][COLS], int row, int col);//玩家走void Computer_Move(char board[ROWS][COLS], int row, int col);//电脑走char Is_Win(char board[ROWS][COLS], int row, int col);//判断输赢#endif//__GAME_H__game.c
#include"game.h"void InitBoard(char board[ROWS][COLS], int row, int col)//初始化棋盘{memset(board, ' ', row*col*sizeof(board[0][0]));}void Display_board(char board[ROWS][COLS], int row, int col)//打印棋盘{int i = 0;for (i = 0; i < row; i++){printf(" %c| %c| %c \n", board[i][0], board[i][1], board[i][2]); if (i != 2)printf("--|--|-- \n");}}void Player_Move(char board[ROWS][COLS], int row, int col){int x = 0;int y = 0;while (1){printf("请输入坐标>:");scanf("%d%d", &x, &y);if (((x >= 1) && (x <= 3)) && ((y >= 1) && (y <= 3))){x--;y--;if (board[x][y] == ' '){board[x][y] = 'X';break;}else{printf("下标错误,请重新输入。\n");}}else{printf("下标错误,请重新输入");}}}void Computer_Move(char board[ROWS][COLS], int row, int col){while (1){int x = rand() % 3;int y = rand() % 3;if (board[x][y] == ' '){board[x][y] = '0';break;}}}static is_full(char board[ROWS][COLS], int row, int col){int i = 0;int j = 0;for (i = 0; i < row; i++){for (j = 0; j < col; j++){if (board[i][j] == ' ')return 0;}}return 1;}char Is_Win(char board[ROWS][COLS], int row, int col){int i = 0;for (i = 0; i < row; i++){if ((board[i][0] == board[i][1]) && (board[i][1] == board[i][2]) && (board[i][2] != ' '))return board[i][0];}for (i = 0; i < col; i++){if ((board[0][i] == board[1][i]) && (board[1][i] == board[2][i]) && (board[2][i] != ' ')){return board[0][i];}}if ((board[0][0] == board[1][1]) && (board[1][1] == board[2][2])&&(board[2][2] != ' ')){return board[0][0];}if ((board[0][2] == board[1][1]) && (board[1][1] == board[2][1] != ' ')){return board[0][2];}if (is_full(board, row, col)){return 'p';}return ' ';}test.c
#include<stdio.h>#include"game.h"#include<time.h>#include<stdlib.h>void game(){char board[ROWS][COLS];char ret = 0;InitBoard(board, ROWS, COLS);Display_board(board, ROWS, COLS);srand((unsigned int)time(NULL));while (1){Player_Move(board, ROWS, COLS);if ((ret = Is_Win(board, ROWS, COLS)) != ' ')break;Display_board(board, ROWS, COLS);Computer_Move(board, ROWS, COLS);if ((ret = Is_Win(board, ROWS, COLS)) != ' ')break;Display_board(board, ROWS, COLS);}if (ret == 'X'){printf("恭喜您,赢了本次比赛\n");}if (ret == '0'){printf("很遗憾,电脑赢了\n");}else if (ret == 'p'){printf("都很厉害,平局哦\n");}}void menu(){printf("******************************\n");printf("********三子棋游戏************\n");printf("*** play > 1 exit > 0 *****\n");}int main(){int input = 0;do{menu();printf("请选择:>");scanf_s("%d", &input);switch (input){case 1:game();break;case 0:break;default:printf("输入错误,请继续");break;}} while (input);return 0;}
阅读全文
0 0
- 三子棋小游戏的实现
- 小游戏三子棋的实现
- 小游戏之三子棋的实现
- 简单的小游戏---代码实现三子棋
- C语言实现简单的三子棋小游戏
- 小游戏三子棋的C语言代码实现
- 小游戏的processing实现
- Cplanet小游戏的实现
- 三子棋小游戏实现
- jQuery实现的几个小游戏
- JavaScript实现的躲避球小游戏
- Flappy bird 小游戏的实现
- SpriteKit实现的小游戏ColorAtom
- 走出迷宫小游戏的实现
- 2048小游戏后端的实现
- Jquery 实现的2048小游戏
- 小游戏之扫雷的实现
- c语言小程序之三子棋小游戏的实现
- Bazel介绍——创建一个C++项目
- Github收藏之awesome-android
- 数据结构(第三天) 栈的顺序存储
- 记一次印象深刻的面试,面试官竟然.......
- 夜神模拟器adb devices list of devices attached
- 三子棋小游戏的实现
- 第十八天,用dbutil实现一个简单的注册系统
- cocos2d-x3.2 在Windows下打包Android平台APK
- JavaWeb中如何导出Excel
- 正式开启CSDN博客之路
- Crazy Learning for Day 20
- Five-In-a-Row CodeForces
- Lingo基本使用方法
- 权限修饰符与抽象