五子棋实现代码

总体大概思路:

首先先打印一个菜单,然后创建一个二维数组(用于存储数据),并初始化,之后打印棋盘。打印棋盘之后需要玩家走,之后是电脑走,每次玩家和电脑走完都需要打印棋盘。当每次打印完棋盘之后系统都需要判断玩家或者电脑是否赢(由于电脑设计走的是随机值,所以赢的概率不大)。如果判断没人赢就继续循环,直到棋子下满或者有人赢才会停止循环。

注:简单实现此游戏需要一个自己写的头文件和两个c文件(建议创建两个,否则代码的可读性会很差)

判断输赢思路:
创建一个计数器,每次落子都需要进行四条直线方向进行判断是否连成5个子,每判断成功落子周围有相同的符号并连成一条直线后,计数器加1,直到计数器等于5或者判断两个连成一条线的数组元素不相等或超出棋盘边界时,循环结束。判断计数器是否等于5即可(计数器的方法是我看到别的大佬的思路才想到的,自己想真的太难了。)

以下是源码:

头文件

#pragma once
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define ROW 10//行
#define LINE 10//列

//声明函数
void game();
//初始化数组
void InitPlayboard(char board[ROW][LINE], int row, int line);
//打印棋盘
void DisaplayBoard(char board[ROW][LINE], int row, int line);
//玩家移动
void PlayerMove(char board[ROW][LINE],int row, int line);
//电脑移动
void ComputerMove(char board[ROW][LINE], int row, int line);
//判断输赢
char IsWin(char board[ROW][LINE], int row, int line);
//向左右判断是否连成5子
int LARif (char board[ROW][LINE], int x, int y);
//向上下判断是否连成5子
int UADif(char board[ROW][LINE], int x, int y);
//向左上和右下判断是否连成5子
int UpleftAndLoritif(char board[ROW][LINE], int x, int y);
//向右上和左下判断是否连成5子
int UpritAndLoleftif(char board[ROW][LINE], int x, int y);

函数实现的文件

#include"game.h"
int x;
int y;
void game()
{
	char ret;
	int counter=0;//计数器,判断棋盘上有几颗棋子
	//数组-存放走出棋子的信息
	char board[ROW][LIN
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值