三子棋项目
一:项目目的 :
实现基本的三子棋操作,玩家或者电脑谁先满足同一条线上有3颗自己的棋子,就是胜者;
二.项目主要实现函数:
``
#ifndef GAME_H
#define GAME_H
#include<stdlib.h>
#include<time.h>
#define ROW 3
#define COL 3
//初始化棋盘 void InitBoard(char board[][ROW],int row,int col);
//打印棋盘 void ShowBoard(char board[][ROW],int row,int col);
//玩家移动 void PlayerMove(char board[][ROW],int row,int col);
//是否赢得了胜利 int IsWin(char board[][ROW],int row,int col);
//电脑移动 void ComputerMove(char board[][ROW],int row,int col
三:项目主要知识点
1、二维数组的使用方法
2、函数的使用,如传参等等。
四:game.h文件:
#ifndef __GAME__H_ #define __GAME__H_ #define ROW 3
#include<stdio.h>
#include<stdlib.h>void InitBoard(char board[][ROW], int row, int col, char set);
void ShowBoard(char board[][ROW], int row, int col);
void PlayerMove(char board[][ROW], int row, int col);
char IsWin(char board[][ROW], int row, int col);
void ComputerMove(char board[][ROW], int row, int col);#endif
game.c文件
#define _CRT_SECURE_NO_WARNINGS 1
//#include"game.h"
//
//void InitBoard(char board[][ROW], int row, int col, char set)
//{
// int i = 0;
// int j = 0;
// for (i = 0; i < row; i++)
// {
// for (j = 0; j < row; j++)
// {
// board[i][j] = set;
// }
// }
//}
//void ShowBoard(char board[][ROW], int row, int col)
//{
// int i = 0;
// int j = 0;
// for (i = 0; i < row; i++)
// {
// for (j = 0; j < col; j++)
// {
// printf(" %c ", board[i][j]);
// if (j < col - 1)
// {
// printf("|");
// }
// }
// printf("\n");
// if (i < row - 1)
// {
// for (j = 0; j < col; j++)
// {
// printf("---");
// if (j < col - 1)
// {
// printf("|");
// }
// }
// printf("\n");
// }
// }
//}
//void PlayerMove(char board[][ROW], int row, int col)
//{
// int x = 0;
// int y = 0;
// while (1)//8,9
// {
// printf("玩家移动\n");
// printf("请输入1-3的坐标:\n");
// scanf("%d%d", &x, &y);
// //1、坐标合法 -》 坐标被占用
// //退出循环:位置合法,并且没被占用,break
// if (x >= 1 && x <= 3 && y >= 1 && y <= 3)
// {
// if (board[x - 1][y - 1] == ' ')
// {
// board[x - 1][y - 1] = 'x';
// break;
// }
// else
// {
// printf("位置已经被占用,请重新输入\n");
// }
// }
// else
// {
// printf("坐标不合法\n");
// }
// //2、坐标不合法
// }
//}
//static int IsFull(char board[][ROW], 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;
//}
//char IsWin(char board[][ROW], int row, int col)
//{
// int i = 0;
// for (i = 0; i < row; i++)
// {
// //行
// if (board[i][0] == board[i][1] && board[i][1] == board[i][2]
// && board[i][0] != ' ')
// {
// return board[i][0];
// }
// //列
// if (board[0][i] == board[1][i] && board[1][i] == board[2][i]
// && board[0][i] != ' ')
// {
// 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][2];
// }
//
// if (IsFull(board, ROW, ROW))
// {
// return 'Q';//平局
// }
// }
// return ' ';//谁也没有赢
//}
//
//void ComputerMove(char board[][ROW], int row, int col)
//{
// int x = 0;
// int y = 0;
// printf("电脑移动\n");
// while (1)
// {
// x = rand() % ROW;//[0-3)
// y = rand() % ROW;
// if (board[x][y] == ' ')
// {
// board[x][y] = 'O';
// break;
// }
// }
//}
text.c文件
#define _CRT_SECURE_NO_WARNINGS 1
//#include"game.h"
//void menu()
//{
// printf("*******************\n");
// printf("******0.exit*******\n");
// printf("******1.play*******\n");
// printf("*******************\n");
//}
//void game()
//{
// char ret = 0;
// char board[ROW][ROW] = { 0 };// '0' '\0' 0 NULL
// InitBoard(board, ROW, ROW, ' ');
// ShowBoard(board, ROW, ROW);
//
//
// while (1)//只要有一方胜出,结束循环
// {
// PlayerMove(board, ROW, ROW);
// //玩家每走一步,需要判断是否赢了
// ret = IsWin(board, ROW, ROW);
// if (ret != ' ')
// {
// //可能平局,可能一方胜出
// break;
// }
// ShowBoard(board, ROW, ROW);
//
// //电脑走
// ComputerMove(board, ROW, ROW);
// ret = IsWin(board, ROW, ROW);
// if (ret != ' ')
// {
// //可能平局,可能一方胜出
// break;
// }
// ShowBoard(board, ROW, ROW);
// }
// //判断ret
// if (ret == 'x')
// {
// printf("玩家胜出\n");
// }
// if (ret == ' O')
// {
// printf("电脑胜出\n");
// }
// if (ret == 'Q')
// {
// printf("平局\n");
// }
//}
//int main()
//{
// int input = 0;
// do
// {
// menu();
// printf("请输入您的选择:-》");
// scanf("%d", &input);
// switch (input)
// {
// case 1:
// printf("游戏开始\n");
// game();
// break;
// case 0:
// printf("游戏退出\n");
// break;
// default:
// printf("请输入正确的操作\n");
// break;
// }
// } while (input);
// return 0;
//}
四:代码实现效果展示: