c#五子棋实验报告_C#实现五子棋游戏

曾经自学C#做计算机图形学的作业,GDI+画图确实好用,目前在找.NET的实习,尝试做了一个最基本的五子棋,复习一下C#的基本语法,目前只能当跟基友一起玩的单机小游戏,之后再加入AI和联网对战功能。目前我还是小菜鸟,过程设计和代码有不合理或者能优化的地方欢迎各位大神指正。

首先是界面设计,最后就是这样,控件一共有一个PictureBox;一个开始Button,命名为btnStart;一个重置Button,命名为btnReset;一个Label,用于显示游戏状态。

五子棋界面

然后是各基本类。新建一个MainSize类用于存放界面上的可能用到的参数,主框体大小520*460,棋盘是一个PictureBox控件,大小401*401,棋盘20行20列,每个格子边长20,棋子直径16。新建一个ChessBoard类表示棋盘,有一个静态函数DrawBoard。之前做计算机图形学作业画函数时用到的画坐标系方法在这里同样适用,函数代码如下。

class ChessBoard

{

static readonly Color color = Color.Black;

static readonly float penWid = 1.0f;

static readonly Pen pen = new Pen(color, penWid);

public static void DrawCB(Graphics gra,PictureBox pic)

{

//每排数量

int horC = MainSize.CBWid / MainSize.CBGap;

//间隔

int gap = MainSize.CBGap;

Image img = new Bitmap(MainSize.CBWid, MainSize.CBHei);

gra = Graphics.FromImage(img);

gra.Clear(Color.White);

gra.DrawRectangle(pen, 0, 0, MainSize.CBWid, MainSize.CBHei);

//画棋盘

for (int i = 0; i < horC; i++)

{

gra.DrawLine(pen, 0, i * gap, MainSize.CBWid, i * gap);

gra.DrawLine(pen, i * gap, 0, i * gap, MainSize.CBHei);

}

gra.DrawLine(pen, 0, horC * gap, MainSize.CBWid, horC * gap - 1);

gra.DrawLine(pen, horC * gap - 1, 0, horC * gap, MainSize.CBHei);

pic.Image = img;

}

}

还有一个基本类Chess,用来表示棋子,有一个静态函数DrawChess,代码如下。这里代码有点乱,写的时候没加注释。bool型变量用于表

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值