小工程——棋盘游戏:(人机交互)
来源:互联网 发布:finalcap唱词字幕软件 编辑:程序博客网 时间:2024/05/21 13:47
Game.h#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<time.h>#include<stdlib.h>#define ROW 3#define COL 3#pragma oncevoid init_board(char arr[ROW][COL]);void display_board(char arr[ROW][COL]);void player_move(char arr[ROW][COL]);void check_win(char arr[ROW][COL]);void computer(char arr[ROW][COL]);int full(char arr[ROW][COL]);
<pre class="html" name="code">Game.c#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#define"game.h"void init_board(char arr[ROW][COL]){int i= 0;int j= 0;for (i = 0; i < ROW; i++){for (j = 0; j < COL; j++){arr[i][j] == ' ';}}}void display_board(char arr[i][j]){int i = 0;for (i = 0; i <ROW; i++){printf("%c|%c|%c\n",arr[i][0],arr[i][1],arr[i][2]);if (i < 2)printf("--|--|--\n");}}void player_move(arr[ROW][COL]){int x = 0;int y = 0;char arr[3][3];while (1){printf("请输入坐标:");scanf("%d%d", &x, &y);x--;y--;if ((x >= 0) && (x <= 2) && (y >= 0) && (y<=2))if (arr[x][y] == ' '){arr[x][y] = 'x';break;}elseprintf("坐标被占用\n");}}void comptuer_move(char arr[ROW][COL]){int x = 0;int y = 0;srand((unsigned)time(NULL));while (1){x = rand() % 3;y = rand() % 3;if (full(arr) == 1)break;if (arr[x][y] == ' '){arr[x][y] = '0';break;}}}int full(char arr[ROW][COL]){int i = 0;int j = 0;for (i = 0; i < ROW; i++){for (j = 0; j < COL; j++){if (arr[i][j] == ' ')return 0;}return 1;}}char check_win(char arr[ROW][COL]){int i = 0;for (i = 0; i < 3; i++){if ((arr[i][0] == arr[i][1]) && (arr[i][1] == arr[i][2]) && (arr[i][0] != ' '))return arr[i][0];}for (i = 0; i < 3; i++){if ((arr[0][i] == arr[1][i]) && (arr[1][i] == arr[2][i]) && (arr[0][i] != ' '))return arr[0][i];}for (i = 0; i < 3; i++){if ((arr[0][0] == arr[1][1]) && (arr[1][1] == arr[2][2]) && (arr[0][0] != ' '))return arr[0][0];}for (i = 0; i < 3; i++){if ((arr[0][2] == arr[1][1]) && (arr[1][1] == arr[2][0]) && (arr[0][2] != ' '))return arr[0][2];}if (full(arr) == 1){return 'q';}return ' ';}
Test.c#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<windows.h>#include"game.h"//调用游戏头文件void main(){char ret = 0;char arr[ROW][COL];init_board(arr);do{display_board(arr);player_move(arr);ret = check_win(arr);if (ret != ' ')break;computer_move(arr);ret = check_win(arr);} while (ret == ' ');display_board(arr);if (ret == 'x')printf("玩家赢得游戏\n");else if (ret=='0')printf("电脑赢得游戏\n");else if (ret == 'q')printf("平局\n");system("pause"); return 0;}
可以多次重复的玩游戏void menu(){printf("1.start 0.exit\n ");}int main(){int input = 1;while (input){menu();printf("请选择:"); scanf("%d", &input);switch (input){case 1:game();break;case 0:break;}}system("pause");}
0 0
- 小工程——棋盘游戏:(人机交互)
- hdu 1281——棋盘游戏
- 十五周——棋盘游戏
- HDU 1281 — 棋盘游戏 最大匹配
- 棋盘游戏(三子棋)
- 每天一个小题目——小明的棋盘
- 棋盘游戏(二分图)
- 棋盘游戏(匈牙利算法)
- 脚本学习(2)——触动精灵 / 人机交互
- hdu——1281——棋盘游戏
- zzuoj1225 棋盘游戏 最简单的博弈——巴什博弈(bash game)
- 二分图匹配——棋盘游戏 ( HDU 1281 )
- 棋盘游戏
- 棋盘游戏
- 棋盘游戏
- 棋盘游戏
- 棋盘游戏
- 棋盘游戏
- Button简单使用
- Android——四大组件的协同工作
- 深度分析游戏中的随机概率
- 排序(三)---归并排序
- 用MSBuild和Jenkins搭建持续集成环境(1)
- 小工程——棋盘游戏:(人机交互)
- PHP PSR-4 Autoloader 自动加载(中文版)
- iOS UIWebView 加载网页、文件、 html
- 升级xcode7.3出现的问题
- 关于idea的一些操作技巧
- 【EJB系列】(二)——JBOSS7中EJB的远程调用和本地调用
- SQLite3.3.6 源代码文件结构
- 中英文维基百科语料上的Word2Vec实验
- 代码运行报错分析(更新中)