五子棋实现代码

总体大概思路:

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

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

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

以下是源码:

头文件

#pragma once
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
#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

你可能感兴趣的:(c++,算法,java)