三子棋-C语言
来源:互联网 发布:科科 网络用语 编辑:程序博客网 时间:2024/06/05 20:44
//game.h
#ifndef __GAME_H__#define __GAME_H__#include<stdio.h>#include<stdlib.h>#include<time.h>#define COL 3#define ROW 3void InitBoard(char board[ROW][COL], int row, int col);void DisplayBoard(char board[ROW][COL], int row, int col);void ComputerMove(char board[ROW][COL], int row, int col);void PlayerMove(char board[ROW][COL], int row, int col);char Is_Win(char board[ROW][COL], int row, int col);#endif //__GAME_H__
//test.c
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include "game.h"#include<stdlib.h>#include<time.h>#include<windows.h>void nemu(){ printf("***********************************\n"); printf("***** 1.play 0.exit *****\n"); printf("***********************************\n");}void game(){ char ret = 0; char arr[ROW][COL] = { 0 }; InitBoard(arr, ROW, COL); DisplayBoard(arr, ROW, COL); do { PlayerMove(arr, ROW, COL); DisplayBoard(arr, ROW, COL); ret = Is_Win(arr, ROW, COL); if (ret != ' ') break; Sleep(1000); ComputerMove(arr, ROW, COL); DisplayBoard(arr, ROW, COL); ret = Is_Win(arr, ROW, COL); } while (ret == ' '); if (ret == 'X') { printf("恭喜你,你赢了!\n"); } else if (ret == '&') { printf("很遗憾,你输了!\n"); } else if (ret == 'q') { printf("平局\n"); }}void test(){ srand((unsigned int)time(NULL)); int input = 0; do { nemu(); printf("请选择:>"); scanf("%d", &input); switch (input) { case 1: game(); break; case 0: break; default: printf("选择错误,请重新输入:>"); } } while (input);}int main(){ test(); return 0;}
//game.c
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include "game.h"void InitBoard(char board[ROW][COL], int row, int col){ int i = 0; int j = 0; for (i = 0; i < row; i++) { for (j = 0; j < col; j++) { board[i][j] = ' '; } }}void DisplayBoard(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 ComputerMove(char board[ROW][COL], int row, int col){ int i = 0; int j = 0; printf("电脑走:\n"); while (1) { i = rand() % row; j = rand() % col; if (board[i][j] == ' ') { board[i][j] = '&'; break; } }}void PlayerMove(char board[ROW][COL], int row, int col){ int x = 0; int y = 0; printf("玩家走:\n"); while (1) { printf("请输入坐标:>"); scanf("%d %d", &x, &y); if (x >= 1 && x <= row && y >= 1 && y <= col) { if (board[x - 1][y - 1] == ' ') { board[x - 1][y - 1] = 'X'; break; } else if (board[x - 1][y - 1] == '&') { printf("该坐标已被占用!\n"); } } else { printf("坐标非法,请重新输入!\n"); } }}int is_full(char board[ROW][COL], 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 'q';}char Is_Win(char board[ROW][COL], int row, int col){ int i = 0; for (i = 0; i < row; i++) { if (board[i][0] == board[i][1] && board[i][0] == board[i][2]) return board[i][0]; } for (i = 0; i < col; i++) { if (board[0][i] == board[1][i] && board[0][i] == board[2][i]) { return board[0][i]; } } if (board[0][0] == board[1][1] && board[1][1] == board[2][2]) { return board[1][1]; } else if (board[2][0] == board[1][1] && board[1][1] == board[0][2]) { return board[1][1]; } if (is_full(board, row, col)) { return 'q'; } return ' ';}
阅读全文
0 0
- C语言之三子棋
- C语言实现三子棋
- C语言实现三子棋
- C语言小游戏"三子棋"
- 三子棋(C语言)
- C语言-三子棋游戏
- c语言编写三子棋
- c语言实现三子棋
- C语言实现三子棋
- 【C语言】三子棋游戏
- C语言实现三子棋
- C语言实现三子棋
- 三子棋小游戏--C语言
- c语言三子棋游戏
- C语言实现三子棋
- C语言_三子棋
- 三子棋C语言实现
- 三子棋-C语言
- 前端笔记(一):CSS的覆盖
- #java#将一个数插入已经排序的数组
- 为什么100以内的数猜七次
- 数字货币与区块链关键技术(新浪分享PPT全文)
- HTML框架
- 三子棋-C语言
- js中的this
- 【机器学习理论】分类问题中常用的性能评估指标
- LintCode_003_统计数字
- 重载构造方法的应用
- C语言求一元二次函数的根
- java算法之Sqrt of x
- Python之文件使用
- zabbix3.0中文显示乱码的问题