下C语言做的五子棋,20年没输过

很多时候,心里明明不是那样想的,却控制不了自己而说出相反的话。

嗨,这里是狐狸~~

今天是2021年的12月16日,今天不知为啥充满了圣诞节的氛围,明明距离圣诞节还有一段时间,不知道大家有没有这种感觉,但有一说一,这快到圣诞节,你们想好对圣诞老人许下什么愿望了嘛,过几天我看有没有时间出一期圣诞特辑,教大家用代码来过圣诞节。

扯得有点远了,回归正题,前几天发了有关数据结构的两个实验,反响并不是很好,是因为大家觉得太难,还是有其他原因呢,希望大家可以尽早告知,好叭,今天整点简单的,我们来写个游戏项目——《五子棋》。

项目简介

五子棋的棋具与围棋通用,是一种传统的棋种,有两种玩法。

一种是双方分别使用黑白两色的棋子,下在棋盘直线与横线的交叉点上,先形成五子连线者获胜。还有一种是自己形成五子连线就替换对方任意一枚棋子。被替换的棋子可以和对方交换棋子。最后以先出完所有棋子的一方为胜。

五子棋容易上手,老少皆宜,而且趣味横生,引人入胜:它不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。

我们今天来完成第一种玩法,让我们一起来实现它。

游戏规则

(1)对局双方各执一色棋子。

(2)空棋盘开局。

(3)黑先、白后,交替下子,每次只能下一子。

(4)棋子下在棋盘的空白点上,棋子下定后,不得向其它点移动,不得从棋盘上拿掉或拿起另落            别处。

(5)黑方的第一枚棋子必须下在天元点上,即中心交叉点

(6)轮流下子是双方的权利,但允许任何一方放弃下子权(即:PASS权)。

五子棋对局,执行黑方指定开局、三手可交换、五手两打的规定。整个对局过程中黑方有禁手,白方无禁手。黑方禁手有三三禁手、四四禁手和长连禁手三种。

项目思路

1、绘制棋盘  void drawqp(void)

2、定义棋子的结构体 struct Sor、

3、游戏初始化   void init(void)

4、判断输赢    void win(void)

5、游戏更新  void gameplay(void)

6、游戏结束 void gameover(void)

项目代码

1、结构体

struct Sor
{
     int x;
     int y;/*x,y表示当前光标的位置*/
     int yes[N][N];/* 0表示无棋子,1表示白色棋子,2表示黑色棋子*/
     int kao;/* 1表示白棋准备落子,2表示黑棋落子*/
     int ok;/*1表示白棋胜出,2表示黑棋胜出*/
}sor;

2、初始化

void init(void)   
{
     int driver=DETECT,mode=0;
     registerbgidriver(EGAVGA_driver);
     initgraph(&driver,&mode,"");
}

3、绘画函数

void drawqp(void)/*画棋盘*/
{
     s
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值