C语言的小项目----三子棋
来源:互联网 发布:网络贷款不还的后果 编辑:程序博客网 时间:2024/05/16 07:33
低端三子棋哈~~
直接上代码
头文件:game.h
#ifndef __game_H__#define __game_H__#define ROW 3#define COL 3void b(char arr[ROW][COL], int row, int col); //数组的定义void c(char arr[ROW][COL], int row, int col); //打印棋盘void ConputerMove(char arr[ROW][COL], int row, int col); //电脑走void PlayerMove(char arr[ROW][COL], int row, int col); //玩家走int IsWin(char arr[ROW][COL], int row, int col); //判断输赢#endif //__game_H__
game.c
#include <stdio.h>#include <stdlib.h>#include "game.h"static int IsFull(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 1;}void b(char arr[ROW][COL], int row, int col){ int i = 0; int j = 0; for (i = 0; i < row; i++) { for (j = 0; j < col; j++) { arr[i][j] = ' '; } }}void c(char arr[ROW][COL], int row, int col){ 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 ConputerMove(char arr[ROW][COL], int row, int col){ int x = 0; int y = 0; printf("电脑走:>\n"); while (1) { x = rand() % row; y = rand() % col; if (arr[x][y] == ' ') { arr[x][y] = 'X'; break; } }}void PlayerMove(char arr[ROW][COL], int row, int col){ int x = 0; int y = 0; while (1) { printf("玩家走(x,y) :>"); scanf("%d%d", &x, &y); if (x >= 1 && x <= 3 && y >= 1 && y <= 3) { if (arr[x-1][y-1] == ' ') { arr[x-1][y-1] = 'O'; break; } else { printf("坐标被占用!\n"); } } else { printf("输入不合法!\n"); } }}int IsWin(char arr[ROW][COL], int row, int col){ int i = 0; int j = 0; for (i = 0; i < row; i++) { if (arr[i][0] == arr[i][1] && arr[i][1] == arr[i][2] && arr[i][1] != ' ') { return arr[i][1]; } } for (i = 0; i < row; i++) { if (arr[0][i] == arr[1][i] && arr[1][i] == arr[2][i] && arr[1][i] != ' ') { return arr[1][i]; } } if (arr[0][0] == arr[1][1] && arr[1][1] == arr[2][2] && arr[1][1] != ' ') { return arr[1][1]; } if (arr[0][2] == arr[1][1] && arr[1][1] == arr[2][0] && arr[1][1] != ' ') { return arr[1][1]; } if (IsFull(arr, row, col)) { return 'p'; } return ' ';}
test.c
#include <stdio.h>#include <windows.h>#include <stdlib.h>#include "game.h"void game(){ char board[ROW][COL] = { 0 }; char ret = 0; b(board,ROW,COL); //数组的定义 c(board, ROW, COL); //打印棋盘 while (1) { ConputerMove(board, ROW, COL); //电脑先走 c(board, ROW, COL); //打印棋盘 ret = IsWin(board, ROW, COL); //判断输赢 { if (ret != ' ') break; } PlayerMove(board, ROW, COL); //玩家走 c(board, ROW, COL); //打印棋盘 ret = IsWin(board, ROW, COL); //判断输赢 { if (ret != ' ') break; } } if (ret == 'X') { printf("GG! 电脑赢!\n"); } else if (ret == 'O') { printf("Good Game! 玩家赢!\n"); } else if (ret == 'p') { printf("平局!\n"); }}void a(){ printf("***********************************\n"); printf("***** 1.Go 2.exit *****\n"); printf("***********************************\n");}void test(){ int input = 0; srand((unsigned int)time(NULL)); //产生随机数 do { a(); //输出文件头 printf("请选择(1,0):>"); scanf("%d", &input); switch (input) { case 1: game(); break; case 0: break; default: printf("选择错误,请重新选择!\n"); break; } } while (input);}int main(){ test(); system("pause"); return 0;}
阅读全文
0 0
- C语言的小项目----三子棋
- 【c语言小项目】三子棋
- C语言实现的小项目 关机小程序
- C语言小项目-万年历
- 通讯录--C语言小项目
- 《猜拳小游戏》--一个c语言写的小项目
- 一个考验c语言和数据结构功底的小项目
- C语言小项目(简单的学生成绩管理系统)
- C语言小项目制作之---通讯录
- c语言小项目个人实现
- C语言小项目—注释转换
- c语言小项目----注释转换
- C语言小项目--贪吃蛇游戏
- C语言小项目---注释转换
- C语言小项目-注释转换
- 【c语言小项目】简单计算器
- 【c语言小项目】通讯录-文件版
- c语言小项目---注释转换
- 极简Tensorflow API速查--Python语言
- Python入门(三)——list和tuple,条件判断和循环,dict和set
- 《程序设计语言——实践之路(英文第三版)》【PDF】下载
- Coursera | Andrew Ng (01-week-1-1.2)—什么是神经网络?
- Mysql介绍及多实例配置实战
- C语言的小项目----三子棋
- OC线程
- 程序员不可能实现的6个愿望
- Qt 串口类QSerialPort 使用笔记
- memcache常用方法
- 跑马灯
- CondenseNet算法笔记
- 加载并执行一个 JS 文件。
- python __new__ __init__ __call__详解