C语言怎样实现简易三子棋

  • 时间:
  • 浏览:39
  • 来源:恰卡网

导读这篇文章将为大家详细讲解有关C语言怎样实现简易三子棋,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 前言 检验学习成果最好的方式是实践,...

这篇文章将为大家详细讲解有关C语言怎样实现简易三子棋,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

前言

检验学习成果最好的方式是实践,在学习完C语言的函数和数组以后,就可以简易的实现一些小游戏,本文将介绍如何实现三字棋小游戏。欢迎探讨

思路分析

三子棋的规则是在3X3的棋盘里,率先将自己的三个棋子连成一条直线为赢家,程序实现的核心是玩家的落子以及输赢的判断。核心流图:当前棋盘->玩家1移动->当前棋盘->输赢判断->玩家2移动->当前棋盘->判断输赢->玩家1移动······

函数实现

玩家落子

玩家输入坐标将棋子落入棋盘中,即为向一个二维数组赋值。需要注意的时,输入的坐标不能超出数组范围,并且不能占用被输入的位置。

voidPlayerMove(charboard[ROW][COL],introw,intcol)
{
printf("玩家走:>\n");

intx=0;
inty=0;
while(1)
{
printf("请输入坐标:>");
scanf("%d%d",&x,&y);
if(x>=1&&x<=row&&y>=1&&y<=col)
{
if(board[x-1][y-1]=='')
{
board[x-1][y-1]='*';
break;
}
else
{
printf("坐标被占用,请重新输入\n");
}
}
else
{
printf("坐标非法,超出范围\n");
}
}
}

当前棋盘

实质是输出二维数组输出二维数组,但是为了美化棋盘,我们需要一些符号来分割棋盘,让它结构清晰。

voidDisplayBoard(charboard[ROW][COL],introw,intcol)
{
inti=0;
for(i=0;i

判断输赢

只要我们找到三个连成一条直线的棋子即可,这里选三个棋子中中间那个即可。然后判断是不是满足条件。说明:返回*,表示输入*的玩家赢;返回#,表示输入#的玩家赢;返回 Q,表示平局;返回C,表示游戏继续。

charIsWin(charboard[ROW][COL],introw,intcol){
inti,j,count=0;
for(i=0;i=0&&i+1=0&&j+1=0&&i+1=0&&j+1=0&&i+1=0&&j+1=0&&i+1=0&&j+1=0&&i+1=0&&j+1=0&&i+1=0&&j+1

源码实现

#define_CRT_SECURE_NO_WARNINGS
#include
#defineROW3
#defineCOL3
voidInitBoard(charboard[ROW][COL],introw,intcol);
voidDisplayBoard(charboard[ROW][COL],introw,intcol);
voidPlayer1Move(charboard[ROW][COL],introw,intcol);
voidPlayer2Move(charboard[ROW][COL],introw,intcol);
charIsWin(charboard[ROW][COL],introw,intcol);
voidInitBoard(charboard[ROW][COL],introw,intcol)
{
inti=0;
for(i=0;i\n");

intx=0;
inty=0;
while(1)
{
printf("请输入坐标:>");
scanf("%d%d",&x,&y);//21-->10
if(x>=1&&x<=row&&y>=1&&y<=col)
{
if(board[x-1][y-1]=='')
{
board[x-1][y-1]='*';
break;
}
else
{
printf("坐标被占用,请重新输入\n");
}
}
else
{
printf("坐标非法,超出范围\n");
}
}
}
voidPlayer2Move(charboard[ROW][COL],introw,intcol)
{
printf("玩家1走:>\n");

intx=0;
inty=0;
while(1)
{
printf("请输入坐标:>");
scanf("%d%d",&x,&y);//21-->10
if(x>=1&&x<=row&&y>=1&&y<=col)
{
if(board[x-1][y-1]=='')
{
board[x-1][y-1]='#';
break;
}
else
{
printf("坐标被占用,请重新输入\n");
}
}
else
{
printf("坐标非法,超出范围\n");
}
}
}
charIsWin(charboard[ROW][COL],introw,intcol){
inti,j,count=0;
for(i=0;i=0&&i+1=0&&j+1=0&&i+1=0&&j+1=0&&i+1=0&&j+1=0&&i+1=0&&j+1=0&&i+1=0&&j+1=0&&i+1=0&&j+1

关于“C语言怎样实现简易三子棋”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

猜你喜欢

30个上古神话传说(有哪些神话故事)

有哪些神话故事(30个上古神话传说) 神话传说和民间传说,是一个民族和国家的宝贵精神财富,有多少是你没有听说过的,又或是耳熟能详的? 1.盘古开天 传说太古时候,天地不分,整个宇

2021-08-05

布达拉宫简介(布达拉宫资料大全)

布达拉宫资料大全(布达拉宫简介) 布达拉宫坐落于西藏拉萨中心的红山之上,海拔3700余米,建筑总面积13万余平方米,主楼高115.703米,共13层,是西藏地区现存规模最大,样式最全,保存最

2021-08-05

小额投资理财项目有哪些?(小额投资理财有哪几种)

小额投资理财有哪几种?(小额投资理财项目有哪些?) 投资成为了人们比较热衷的事情,普通人也都参与进来,但是普通的人投资跟真正的投资人投资又是有很大的区别的。对于普通人而言

2021-08-05

世界上最美十座桥梁都有哪些?(世界十大最美大桥排行榜)

世界十大最美大桥排行榜(世界上最美十座桥梁都有哪些?) 桥梁是人类所建造的最古老、最壮观、最美丽的建筑工程之一。历史上著名的桥梁,都以鲜明的形象、强烈的艺术感染力,反映了

2021-08-05