N子棋的实现方法,包括三子棋,五子棋

N子棋的实现首先要搭好游戏的整个框架:

整个流程:

一、对菜单的掌控:

打印菜单(这里使用的是do-while循环可以保证菜单至少能够打印一次)

具体实现如下:

 

①选择退出,就直接结束程序

②选择错误,返回循环继续选择

③选择游戏,进入执行游戏的代码块

二、进入游戏

①对长度为N的二维数组进行遍历,并初始化值

②打印棋盘:在这里一行分为两部分,上半部分打印"|",下半部分打印"|---",另外要注意每一行,每一列打印的个数,设置循环条件来进行控制。

实现结果如下:

 

③玩家下棋----打印下棋后的棋盘----判断输赢

④电脑下棋----打印下棋后的棋盘----判断输赢

        电脑下棋我们获取的是随机值,即用时间戳的随机生成电脑下棋的坐标。

以上就是代码的整个框架,具体的实现请看下图的代码

我在这里实现的下棋规则就是:棋盘始终是一个N方阵,如果N大于5,就设置连成5子获得胜利,反之,如果小于5,连成N/2 + 1就可以获得胜利

test.c的代码 

#define _CRT_SECURE_NO_WARNINGS 1

#include "game.h"        //引用自己定义的头文件用""
//游戏的菜单,无论是否执行都要打印一次
void menu() {
    printf("-------------------------------------\n");
    printf("-------  1.play       0.exit  -------\n");
    printf("-------------------------------------\n");
}
void game() {
    //在头文件中定义棋盘的大小
    char board[ROW][COL] = {0};
    //定义一个变量判断来判断游戏是否结束
    char ret;
    //初始化棋盘
    InitBoard(board,ROW,COL);
    //打印棋盘
    DisplayBoard(board, ROW, COL);
    //下棋(循环)
    while (1) {
        //玩家先下棋(是对数组的操作) 打印棋盘的样子 判断输赢
        PlayerMove(board, ROW, COL);
        DisplayBoard(board, ROW, COL);//玩家走一步就打印棋盘的样子
        ret = IsWin(board,ROW,COL);        //判断游戏是否结束
        if (ret !=
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值