C语言实现三子棋游戏附注释
本文实例为大家分享了C语言实现三子棋游戏的具体代码,供大家参考,具体内容如下
概述
三子棋棋盘为九宫格形式,玩家和电脑分别轮流落子,若有一方有三个棋连在一起的情况则胜。
实现过程
1、玩家交互菜单创建
2、棋盘创建与初始化
3、玩家与电脑落子
4、判定胜负关系
多文件实现
头文件 game.h
#ifndef __GAME_H__
#define __GAME_H__
#include
源文件 main.c
#include "game.h" void Menu() { printf("+-------------------------------+\n"); printf("| 1. Play 0. Exit |\n"); printf("+-------------------------------+\n"); } int main() { int select = 0; int quit = 0; while (!quit) { Menu(); printf("Please Select# "); scanf("%d", &select); switch (select){ case 1: Game(); break; case 0: quit = 1; break; default: printf("Enter Error, Try Again!\n"); break; } } printf("ByeBye!\n"); system("pause"); return 0; }
源文件game.c
#include "game.h"
static void InitBoard(char board[][COL], int row, int col) //对九宫格棋盘进行初始化
{
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++) //双重循环 二维数组 矩阵
{
board[i][j] = INIT; //INIT宏定义为空
}
}
}
static void ShowBoard(char board[][COL], int row, int col) //函数 打印棋盘
{
system("cls"); //调用dos命令窗口进行清屏操作,实现刷新棋盘
printf(" ");
for (int i = 0; i < col; i++)
{
printf("%4d", i+1);
}
printf("\n--------------\n");
for (int i = 0; i < row; i++)
{
printf("%-2d", i+1); //2
for (int j = 0; j < col; j++)
{
printf("| %c ", board[i][j]); //12
}
printf("\n--------------\n");
}
}
static char IsEnd(char board[][COL], int row, int col)
{
for (int i = 0; i < row; i++) //判断每列是否有三子连线
{
if (board[i][0] == board[i][1] && \
board[i][1] == board[i][2] && \
board[i][0] != INIT)
{
return board[i][0];
}
}
for (int j = 0; j < COL; j++) 判断每行是否有三子连线
{
if (board[0][j] == board[1][j] && \
board[1][j] == board[2][j] && \
board[0][j] != INIT)
{
return board[0][j];
}
}
if (board[0][0] == board[1][1] && \ //判断右对角线是否三子连线
board[1][1] == board[2][2] && \
board[1][1] != INIT)
{
return board[1][1];
}
if (board[0][2] == board[1][1] && \ //判断左对角线是否三子连线
board[1][1] == board[2][0] && \
board[1][1] != INIT)
{
return board[1][1];
}
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
if (board[i][j] == INIT) //判空
{
return NEXT;
}
}
}
return DRAW; //平局
}
static void PlayerMove(char board[][COL], int row, int col) //玩家落子
{
int x = 0;
int y = 0; //定义
三种结果展示
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持趣讯吧。
推荐阅读
-
windows安装touble c
近期有些网友想要了解windows?安装touble的相关情况,小编通过整理给您分享一下。为什么现在还需要TurboC?在当今V...
-
C/C++如何获取CAN信号
C/C++如何获取CAN信号本篇内容主要讲解“C/C++如何获取C...
-
C语言怎么通过二分查找实现猜数字游戏
C语言怎么通过二分查找实现猜数字游戏本文小编为大家详细介绍“C语言...
-
C语言数据结构中的线性表怎么使用
C语言数据结构中的线性表怎么使用这篇文章主要介绍“C语言数据结构中...
-
C语言的数据结构怎么理解
C语言的数据结构怎么理解这篇文章主要介绍了C语言的数据结构怎么理解...
-
C语言与C++中内存管理的方法
C语言与C++中内存管理的方法这篇文章主要介绍了C语言与C++中内...
-
C语言链式队列与循环队列怎么实现
C语言链式队列与循环队列怎么实现这篇文章主要介绍了C语言链式队列与...
-
C语言冒泡排序怎么实现
C语言冒泡排序怎么实现这篇文章主要介绍了C语言冒泡排序怎么实现的相...
-
C语言如何实现斐波那契数列
C语言如何实现斐波那契数列这篇文章主要介绍了C语言如何实现斐波那契...
-
C语言如何实现无符号数和有符号数间的运算
C语言如何实现无符号数和有符号数间的运算本篇内容主要讲解“C语言如...