简单的小游戏---代码实现三子棋
来源:互联网 发布:淘宝贝高瞻幼儿园收费 编辑:程序博客网 时间:2024/06/07 05:42
大家都玩过五子棋吧,在这里,我就来实现一个比五子棋低版本的小游戏,三子棋,仅供娱乐哦!!
</pre></p><p></p><p></p><p><pre class="cpp" name="code">board.h#define _CRT_SECURE_NO_WARNINGS 1#include <iostream>#include <assert.h>using namespace std;#define ROW 3#define COL 3enum OP{EXIT,BEGIN};void PrintBoard(char board[ROW][COL]);void InitBoard(char board[ROW][COL]);void ShowMenu();char EmptyBoard(char board[ROW][COL]);bool FullBoard(char board[ROW][COL]);bool CheckBoard(char board[ROW][COL], int x, int y);void ComputerMove(char board[ROW][COL]);void PlayerMove(char board[ROW][COL]);void Game(char board[ROW][COL]);
board.cpp#include "board.h"//三子棋void PrintBoard(char board[ROW][COL]){int i = 0;for (i = 0; i < ROW; i++){cout << " " << board[i][0] << " | " << board[i][1] << " | " << board[i][2] << " " << endl;if (i != 2){cout << "---|---|---";}printf("\n");}}void InitBoard(char board[ROW][COL]){int i = 0;int j = 0;for (i = 0; i < ROW; i++){for (j = 0; j < COL; j++){board[i][j] = ' ';}}}void ShowMenu(){printf("**************************************************************\n");printf("**************************************************************\n");printf("********************1.游戏开始********************************\n");printf("********************0.退出游戏********************************\n");printf("**************************************************************\n");printf("**************************************************************\n");}char EmptyBoard(char board[ROW][COL]){int i = 0;int j = 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[0][1] != ' ')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[0][2] == board[1][1]&& board[1][1] == board[2][0]&& board[0][2] != ' ')return board[0][0];return ' ';}bool FullBoard(char board[ROW][COL]){int i = 0;int j = 0;for (i = 0; i < ROW; i++){for (j = 0; j < COL; j++){if (board[i][j] == ' ')return false;}}return true;}bool CheckBoard(char board[ROW][COL], int x, int y){return (board[x][y] == ' ')&& (x >= 0 && x < ROW)&& (y >= 0 && y < COL);}void ComputerMove(char board[ROW][COL]){int i = 0;int j = 0;i = rand() % 3;j = rand() % 3;if (CheckBoard(board, i, j))board[i][j] = '$';else{ComputerMove(board);}}void PlayerMove(char board[ROW][COL]){int i = 0;int j = 0;printf("请输入坐标:");scanf("%d %d", &i, &j);i--;j--;if (CheckBoard(board, i, j)){board[i][j] = '*';}else{printf("请重新输入\n");PlayerMove(board);}}void Game(char board[ROW][COL]){char ret = ' ';do{PlayerMove(board);PrintBoard(board);ret = EmptyBoard(board);if (FullBoard(board)){printf("平局!\n");break;}if (ret == '*'){printf("玩家赢!\n");break;}if (ret == '$'){printf("电脑赢!\n");break;}ComputerMove(board);PrintBoard(board);ret = EmptyBoard(board);if (FullBoard(board)){printf("平局!\n");break;}if (ret == '*'){printf("玩家赢!\n");break;}if (ret == '$'){printf("电脑赢!\n");break;}} while (ret == ' ');}
test.c#define _CRT_SECURE_NO_WARNINGS 1#include <iostream>#include <assert.h>#include "board.h"using namespace std;void Test1(){int input = 1;char board[ROW][COL] = { 0 };while (1){InitBoard(board);ShowMenu();printf("请选择:\n");scanf("%d", &input);switch (input){case BEGIN:Game(board);break;case EXIT:exit(1);//0错误退出,1正常退出break;default:break;}}}int main(){Test1();system("pause");return 0;}
0 0
- 简单的小游戏---代码实现三子棋
- C语言实现简单的三子棋小游戏
- 小游戏三子棋的C语言代码实现
- Android 小游戏2048 代码简单实现
- Android 小游戏之五子棋 代码简单实现
- 三子棋小游戏的实现
- 小游戏三子棋的实现
- 用C语言实现简单的三子棋小游戏
- 利用Java简单的实现围棋小游戏
- Android小游戏2048的简单实现
- VB6实现简单的扫雷小游戏
- JS实现简单的贪吃蛇小游戏
- python小游戏实现代码
- 小游戏之三子棋的实现
- android小游戏——2048 核心功能的实现与简单的代码重构(2)
- 简单的控制台小游戏
- 一个简单的小游戏
- 简单的snake小游戏
- Linux/Unix笔记本
- FFmpeg架构之I/O模块分析
- lintcode validate-binary-search-tree 验证二叉查找树
- 【POJ】3370 - Halloween treats(抽屉原理 & STL)
- 360 ie8兼容模式 网页兼容问题
- 简单的小游戏---代码实现三子棋
- linux & windows 安装redis
- java se作业3-打印文件路径-2016.7.22
- 3.5黄金5花环
- HDOJ-2111 Saving HDU
- HDOJ 5734 (2016多校联合训练 Training Contest 2) Acperience
- ORACLE中通过SQL语句(alter table)来增加、删除、修改字段 ,增加字段与修改字段
- 取第k个元素
- MongoDB常用操作