求简易五子棋程序及其流程图

来源:百度知道 编辑:UC知道 时间:2024/05/07 15:03:29
要求 1. 键盘上事先设定8个按键,分作两组,每组四个,分别代表两个人用来控制棋子的上下左右键。
2. 绘制棋盘,15条横线,15条竖线,在直线交点处下棋子(实心圆形)。
3. 黑子先行,黑白交替下子,在棋盘上设定一个与棋盘格大小边长相等的正方形,初始状态,正方形的中心位于期盼的中心点。当一方欲走棋的时候,应用四个按键来控制所要下棋的位置,每按一次按键,正方形都要向相应方向移动一个格,并且让喇叭发出某种声音,将要移出边界时,发出另一种警告声音并不让其移出边界。当按下回车键时,应在正方形所在位置放下一个棋子,然后此组按键不能操作,换另一个人下棋,用另一组按键,规则同前。
4. 当任何一方有五个棋子沿着横,竖,斜连在一起时,系统自动判断赢棋,并显示黑方或白方胜利。棋局结束后,任何一方均不能继续操作。

#include <stdio.h>
#include <bios.h>
#include <ctype.h>
#include <conio.h>
#include <dos.h>
#define CROSSRU 0xbf /*右上角点*/
#define CROSSLU 0xda /*左上角点*/
#define CROSSLD 0xc0 /*左下角点*/
#define CROSSRD 0xd9 /*右下角点*/
#define CROSSL 0xc3 /*左边*/
#define CROSSR 0xb4 /*右边*/
#define CROSSU 0xc2 /*上边*/
#define CROSSD 0xc1 /*下边*/
#define CROSS 0xc5 /*十字交叉点*/

/*定义棋盘左上角点在屏幕上的位置*/
#define MAPXOFT 5
#define MAPYOFT 2

/*定义1号玩家的操作键键码*/
#define PLAY1UP 0x1157/*上移--'W'*/
#define PLAY1DOWN 0x1f53/*下移--'S'*/
#define PLAY1LEFT 0x1e41/*左移--'A'*/
#define PLAY1RIGHT 0x2044/*右移--'D'*/
#define PLAY1DO 0x3920/*落子--空格键*/

/*定义2号玩家的操作键键码*/
#define PLAY2UP 0x4800/*上移--方向键up*/
#define PLAY2DOWN 0x5000/*下移--方向键down*/
#define PLAY2LEFT