小游戏之---三子棋----
来源:互联网 发布:显卡降频软件 编辑:程序博客网 时间:2024/06/06 20:49
game.h
#ifndef __GAME_H__#define __GAME_H__
#include<string.h>#include<stdlib.h>#include<time.h>
#define ROW 3#define COL 3
void Display_board(char board[ROW][COL],int row,int col);
void Plavermove(char board[ROW][COL],int row,int col);void Computermove(char board[ROW][COL], int row, int col);
char Win(char board[ROW][COL], int row, int col);
#endif //__GAME_H__
youxi.c
#include<stdio.h>#include"game.h"void Menu(){ printf("************************\n"); printf("**** 1.play 2.exit ****\n"); printf("************************\n");}void Game(){ char board[ROW][COL] = {0}; Display_board(board, ROW, COL); while (1) { char ret = 0; Plavermove(board,ROW,COL); Display_board(board, ROW, COL); ret=Win(board, ROW, COL); if (ret == 'O') { printf("玩家胜!\n"); break; } else if (ret == 'X') { printf("电脑胜!\n"); break; } else if (ret == 'Y') { printf("平局!\n"); break; } Computermove(board,ROW,COL); Display_board(board, ROW, COL); ret=Win(board, ROW, COL); if (ret == 'O') { printf("玩家胜!\n"); break; } else if (ret == 'X') { printf("电脑胜!\n"); break; } else if (ret == 'Y') { printf("平局!\n"); break; } }}void Test(){ int input = 0; do { Menu(); printf("请选择:>"); scanf("%d", &input); switch (input) { case 1: printf("开始游戏:\n"); Game(); break; case 2: printf("退出游戏:\n"); break; default: printf("选择错误!\n"); break; } } while (input!=2);}int main(){ srand((unsigned int)time(NULL)); Test(); return 0;}
game.c
#include"game.h"void Display_board(char board[ROW][COL], 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<row-1) printf("---|---|---\n"); }}void Plavermove(char board[ROW][COL], int row, int col){ int x = 0; int y = 0; while (1) { printf("请输入坐标!\n"); scanf("%d%d", &x, &y); if (x >= 1 && x <= col&&y >= 1 && y <= col) { if (board[x - 1][y - 1] == 0) { board[x - 1][y - 1] = 'O'; break; } else { printf("坐标已被占用\n"); } } else { printf("输入坐标错误!\n"); } }}void Computermove(char board[ROW][COL], int row, int col){ int x = 0; int y = 0; printf("电脑:\n"); while (1) { x = rand() % row; y = rand() % col; if (board[x][y] == 0) { board[x][y] = 'X'; break; } }}char Win(char board[ROW][COL], int row, int col){ int i = 0; int j = 0; int count = 0; for (i = 0; i < row; i++) { if (board[i][0] == board[i][1] && board[i][1] == board[i][2] && board[i][0] != 0) { if (board[i][0] == 'O') { return board[i][0]; } if (board[i][0] == 'X') { return board[i][0]; } } else if (board[0][i] == board[1][i] && board[1][i] == board[2][i] && board[0][i] != 0) {if (board[0][i] == 'O') { return board[0][i]; } if (board[0][i] == 'X') { return board[0][i]; } } } if (board[0][0] == board[1][1] && board[1][1] == board[2][2] && board[0][0] != 0) {if (board[0][0] == 'O') { return board[0][0]; } if (board[0][0] == 'X') { return board[0][0]; } } else if (board[0][2] == board[1][1] && board[1][1] == board[2][0] && board[1][1] != 0) {if (board[1][1] == 'O') { return board[1][1]; } if (board[1][1] == 'X') { return board[1][1]; } } for (i = 0; i < row; i++) { for (j = 0; j < col; j++) { if (board[i][j] != 0) { count++; } } } if (count == 9) { return 'Y'; } return 'N';}
阅读全文
0 0
- 小游戏之---三子棋----
- 小游戏之三子棋的实现
- Java小游戏之控制台小游戏
- C语言小游戏入门之三子棋
- 三子棋小游戏
- 三子棋小游戏
- 三子棋小游戏
- 三子棋小游戏
- 三子棋小游戏
- 三子棋小游戏
- 【小游戏】三子棋
- 三子棋小游戏
- 三子棋小游戏
- 三子棋小游戏
- 三子棋小游戏
- 小游戏:三子棋
- 三子棋小游戏
- 三子棋小游戏
- win10 关闭自动更新
- 使用BigDecimal(避免E科学计数法)四舍五入保留2位小数
- 通用基础表逻辑设计(二)——扩展字段
- indexOf函数解读
- 有一个整数数组,要求将其格式化为字符串,每个数字以逗号分开
- 小游戏之---三子棋----
- Executors.newSingleThreadScheduledExecutor()
- 关于IDE软件(Dev cpp/VS/Code Blocks)出现ld returned 1 exit status的改正措施
- Android应用内存优化
- [bzoj1017]:[JSOI2008]魔兽地图DotR
- 在Windows下编译与运行minicap
- hive sql数据库跑批插件(hive,impala)
- selenium-下拉框选择
- linux中netlink机制的实例讲解