重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
曾经自学C#做计算机图形学的作业,GDI+画图确实好用,目前在找.NET的实习,尝试做了一个最基本的五子棋,复习一下C#的基本语法,目前只能当跟基友一起玩的单机小游戏,之后再加入AI和联网对战功能。目前我还是小菜鸟,过程设计和代码有不合理或者能优化的地方欢迎各位大神指正。
创新互联公司主要从事成都网站设计、网站制作、外贸营销网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务渝北,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575首先是界面设计,最后就是这样,控件一共有一个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; } }
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。