c语言五子棋设计报告及源代码,C语言五子棋源代码_设计报告.doc

C语言五子棋源代码_设计报告

C语言程序设计综合实验

设计报告

题目: 五子棋

班级; 07电气(1)班

人数: 4人

小组成员:

时间: 08.9.19

目录

1 课程设计报告

1.1课题描述

1.2需求分析

1.3概要设计

2源程序代码

3详细设计

1.课题设计报告

1.1课题分析:

游戏介绍:在一个18*18的方格中下棋,两个玩家,根据键盘上的上、下、左、右键及W、S、A、D来控制棋的走向,空格键及回车键表示确定棋子的落下位置,两个玩家为交替下棋,如果于其中任何一家下的五个棋子能够练成一线那么为胜者,游戏结束。

1 、五子棋是两个人之间进行的竞技活动,开始是由P1先下,把棋落在方框内,然后P2下,如此下棋直到一方在棋盘的横,竖 ,斜将同色的五个棋子连成一条线,则此方获胜。游戏由玩家决定继续或结束。

1.2需求分析

(1)在游戏开始时出现一个欢迎的界面同时介绍了游戏的规则;

(2)画出棋盘的大小;

(3)画棋子并确定棋子的大小;

(4)判断键盘输入哪个键执行操作;

(5)玩家P1先落棋;

(6)玩家轮流下棋;

(7)判断赢家。

(8)由玩家决定是否继续新游戏。

1.3 概要设计

(1)功能模块

2. 主流程图

遇到的一个问题:

图形一闪而过解决方法

因为Win-TC的图形驱动程序EGAVGA.BGI文件安装路径为c:\\Win-TC\\projects

int gdriver=DETECT, gmode;

initgraph(&gdriver, &gmode, "c:\\tc")改为initgraph(&gdriver, &gmode, "c:\\Win-TC\\projects")

2程序代码

#include

#include "stdio.h"

#include "graphics.h"

/*定义1号玩家的操作键键码*/

#define W 0x1177/*上移--'W'*/

#define S 0x1f73/*下移--'S'*/

#define A 0x1e61/*左移--'A'*/

#define D 0x2064/*右移--'D'*/

#define SP 0x3920/*落子--空格键*/

/*定义2号玩家的操作键键码*/

#define UP 0x4800/*上移--方向键up*/

#define DOWN 0x5000/*下移--方向键down*/

#define LEFT 0x4b00/*左移--方向键left*/

#define RIGHT 0x4d00/*右移--方向键right*/

#define ENTER 0x1c0d/*落子--回车键Enter*/

#define ESC 0x011b

#define X (getx()-140)/20 /*将棋盘上光标所在点的横坐标X转化为0-18的数*/

#define Y (gety()-70)/20 /*将棋盘上光标所在点的横坐标Y转化为0-18的数*/

int k,w=DETECT,gmode,j,i;

int a[20][20];

void p1move(); /*定义函数*/

void p2move();

void win();

p1win();

p2win();

yellow();

white();

black();

heqi();

welcome();

help();

csz();

qipang();

p1turn();

p2turn();

p1del();

p1turn()/*画左上角的白棋*/

{

setcolor(7);

setfillstyle(1,7);

circle(60,110,9);

floodfill(60,110,7);

}

p1del() /*将左上角白棋檫去*/

{

setfillstyle(1,14);

floodfill(60,110,14);

}

p2turn() /*画右上角的黑棋*/

{

setcolor(0);

setfillstyle(1,0);

circle(578,115,9);

floodfill(578,115,0);

}

p2del() /*画右上角的黑棋*/

{

setfillstyle(1,14);

floodfill(578,115,14);

}

white() /*在当前位置画白棋*/

{

setcolor(7);

setfillstyle(1,7);

circle(getx(),gety(),9);

floodfill(getx(),gety(),7);

}

black() /*在当前位置画黑棋*/

{

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值