emmmm…大致就是这个效果
目录
1.所需的知识
c语言基本语法,二维数组。
2.总体思路
将三子棋看作3x3的一个二维数组,由玩家和电脑分别填充这个数组。当行、列、叉能够达到三连时,就判断输赢。
默认玩家先行且棋子为 ‘ X ’,电脑后手棋子为 ‘ 0 ’。
下面是用到的一些函数。
//game.h
#ifndef __GAME_H__
#define __GAME_H__
#define ROW 3
#define CLO 3
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <memory.h>
void menu(); //打印菜单
void game(char arr[ROW][CLO], int row, int clo); //执行菜单
void play(char arr[ROW][CLO], int row, int clo); //游戏主体
void InitBoard(char arr[ROW][CLO], int row, int clo); //打印棋盘
void Pmove(char arr[ROW][CLO], int row, int clo); //玩家下棋
void Cmove(char arr[ROW][CLO], int row, int clo); //电脑下棋
int Isfull(char arr[ROW][CLO], int row, int clo); //检测盘满
int Iswin(char arr[ROW][CLO], int row, int clo); //判断输赢
#endif
下面是主函数
//test.c
#include"game.h"
int main()
{
srand((unsigned int)time(NULL)); //产生随机数种子
char arr[ROW][CLO];
game(arr,ROW,CLO);
system("pause");
return 0;
}
3.详细实现
打印菜单
void menu()
{
printf("*******************\n");
printf("*******1.play *****\n");
printf("*******2.exit *****\n");
printf("*******************\n");
}
这个函数打印菜单选项。