VS2013环境下编写“三子棋”小游戏

原创 2018年04月17日 20:30:35

首先,创建一个game.h头文件:


内容如图所示。

创建一个main.c文件:


内容如图所示。

接下来,编写game函数:

#include "game.h"  




static void displayBoard(char board[ROW][COL], int row)//打印游戏面板  
{
int i = 0;
for (; i < row; i++)
{
printf("| %c | %c | %c |\n", board[i][0], board[i][1], board[i][2]);
printf("|---|---|---|\n");
}
}


static void playerMove(char board[ROW][COL], int row)//玩家移动  
{
int x, y;
do{
printf("Please Enter(x,y):\n");
scanf("%d%d", &x, &y);
if (x >= 1 && x <= 3 && y >= 1 && y <= 3)
{
if (board[x - 1][y - 1] == ' ')
{
board[x - 1][y - 1] = 'x';
break;
}
else
{
printf("这个位置被占用,try again!\n");
}
}
else
{
printf("Select errors,Please try again!\n");
}
} while (1);


}


static void computerMove(char board[ROW][COL], int row)//电脑移动  
{
srand((unsigned long)time(NULL));
do
{
int x = rand() % row;
int y = rand() % COL;
if (board[x][y] == ' ')
{
board[x][y] = 'o';
break;
}
} while (1);
}


static int isFull(char board[ROW][COL], int row)//判断是否把棋盘下满  
{
int i = 0;
for (; i < row; i++)
{
int j = 0;
for (; j < COL; j++)
{
if (board[i][j] == ' ')
{
return 0;
}
}
}
return 1;
}


static char isWin(char board[ROW][COL], int row)//判断是否胜利  
{
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];
}
}
for (i = 0; i < COL; i++)
{
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))
{
return 'q';
}
return ' ';
}
void game()
{
char board[ROW][COL];
memset(board, ' ', ROW*COL);
char ret;
printf("开始游戏\n");
do
{
system("CLS");//清屏  
displayBoard(board, COL);//显示棋盘  
playerMove(board, COL);//玩家移动; 
system("CLS");
displayBoard(board, COL);
ret = isWin(board, COL);
if (ret != ' ')
{
break;
}
computerMove(board, COL);//电脑移动: 
system("CLS");
displayBoard(board, COL);
ret = isWin(board, COL);
} while (ret == ' ');
if (ret == 'q')//平局  
{
printf("平局!\n");
}
else if (ret == 'x')//玩家胜利  
{
printf("恭喜你,你赢了!\n");
}
else if (ret == 'o')//电脑胜利  
{
printf("你输了!\n");
}
else
{
printf("debug!\n");  
}
}

在VS2013环境下运行此程序,则可以创建一个“三子棋”的游戏。

运行结果如下图所示:

开始游戏:


游戏面板:


选择位置:


游戏结束:


重开一局请输入1,退出游戏请输入2.

c语言编程实现简单三子棋游戏

分别创建test.c   game.c 两个源文件,以及game.h头文件   1. game.h中用于函数定义,如下:    #ifndef __GAME_H__ #define __GMME_H_...
  • ChaseRaod
  • ChaseRaod
  • 2016-12-28 18:30:40
  • 1460

C语言实现三子棋游戏

先直接上代码:#define _CRT_SECURE_NO_WARNINGS 1#include //2.实现三子棋游戏。 #include //Sleep() RAND_...
  • ljx_5489464
  • ljx_5489464
  • 2015-12-17 15:18:41
  • 2445

三子棋游戏(c语言实现)

一说到写个三子棋游戏,首先我们得想到有个棋盘初始化和棋盘打印函数。 接下来,玩游戏阶段,人玩游戏,电脑玩游戏,各写一个函数,每次下完棋都得判断有没有人赢了游戏,若有人赢了,游戏退出,否则继续游戏。在这...
  • peiyao456
  • peiyao456
  • 2016-03-28 23:01:43
  • 2442

三子棋传统游戏源代码及分析

  • 2009年10月27日 22:45
  • 8.32MB
  • 下载

(智能)三子棋 电脑能看一步 要点小技巧才能赢

三子棋是个简单的游戏,学完数组后可以用数组和函数的知识写一个三子棋 三子棋这个游戏,如果双方都会玩的话其实只会平局,比较无聊,但如何让程序会玩就有点意思了 直接看代码吧 头文件  game.h #if...
  • mzx1317557721
  • mzx1317557721
  • 2017-04-05 07:55:59
  • 631

简单的三子棋的实现

简易三子棋的实现
  • aaronlanni
  • aaronlanni
  • 2017-05-18 21:31:22
  • 471

用C语言编写三子棋的具体分析

在做这个三子棋时的时候首先我们该细心分析好我们应该做的每一部然后再用对应的函数实现。 首先下三子棋应该需要这么几步: 1.在屏幕打印出一个棋盘; 2.人移动棋子; 3.检查输赢; 4.电脑移动棋子; ...
  • Cell_KEY
  • Cell_KEY
  • 2016-04-09 23:03:37
  • 1146

java 三子棋 源代码

  • 2014年05月21日 19:06
  • 6KB
  • 下载

【C语言】用C语言实现三子棋游戏的编写

用c语言实现三子棋游戏的编写,首先需要了解三子棋游戏的玩法及构架。从进入游戏,创建棋盘,坐标的表示等等,都需要用c语言来实现具体的操作。玩家输入坐标时将横纵坐标的值限定在大于等于1小于等于3之间(代码...
  • yaotengjian
  • yaotengjian
  • 2017-04-21 22:02:52
  • 322

C语言实现简单的三子棋小游戏

这只是一个新手对于这个简单的小游戏的积累
  • Dawn_sf
  • Dawn_sf
  • 2016-11-21 16:52:59
  • 716
收藏助手
不良信息举报
您举报文章:VS2013环境下编写“三子棋”小游戏
举报原因:
原因补充:

(最多只允许输入30个字)