• 大小: 53KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: C#
  • 标签: 围棋,C#  

资源简介

小巧的C#围棋程序,可以计算围棋领先子数,功能比较全。 主要学习其界面开发技术

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.IO;

using ChessBlock = System.Collections.ArrayList;

namespace go
{
    public class Board
    {
        private static int margin_top = 50;
        private static int margin_left = 20;
        private static int gap = 20;
        private static int chessSize = 8;
        private static int numberSize = 6;
        private static int starSize = 3;

        private Chess[] m_Board = new Chess[19 19];
        private BoardRecorder m_recorder;
        private Chess m_LastChess;
        private Chess m_LastSingleChessEatten;
        private int m_currentStep;

        private bool m_bShowIndex = false;

        public Board()
        {
            clear();

            // For Test
            // bool bSuccess = loadBoardFromFile(“init.txt“);
        }

        public Chess lastChess { get { return m_LastChess; } }

        public bool showIndex
        {
            get { return m_bShowIndex; }
            set { m_bShowIndex = value; }
        }

        public Chess.POS mapPointsToBoard(int pointX int pointY)
        {
            Chess.POS pos;
            pos.posX = (pointX - margin_left + gap/2) / gap;
            pos.posY = (pointY - margin_top + gap/2) / gap;
            if (!pos.isValid)
                pos.setToInvalid();
            return pos;
        }

        public void draw(Graphics g)
        {
            drawBorder(g);
            drawChess(g);
        }

        public bool addChess(Chess.POS pos Chess.ChessType type)
        {
            if (type != Chess.ChessType.Black && type != Chess.ChessType.White)
                return false;

            // we can only put chess on empty cells
            if (m_Board[pos.posX pos.posY].type != Chess.ChessType.Empty)
                return false;

            // put the chess on the board first
            m_Board[pos.posX pos.posY].type = type;

            // can we eat others?
            bool bEat = false;
            bool bValidStep = true;
            if (pos.hasLeft && m_Board[pos.posX - 1 pos.posY].type == Chess.oppsiteType(type))
            {
                bEat = tryToEat(pos new Chess.POS(pos.posX - 1 pos.posY) ref bValidStep) || bEat;
                if (!bValidStep)
                    return false;
            }
            if (pos.hasRight && m_Board[pos.posX + 1 pos.posY].type == Chess.oppsiteType(type))
            {
                bEat = tryToEat(pos new Chess.POS(pos.posX + 1 pos.posY) ref bValidStep) || bEat;
                if (!bValidStep)
                    return false;
            }
            if (pos.hasUp && m_Board[pos.posX pos.posY - 1].type == Chess.oppsiteType(type))
            {
                bEat = tryToEat(pos new Chess.POS(pos.posX pos.posY - 1) ref bValidStep) || bEat;
                if (!bValidStep)
                    return false;
  

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件         69  2013-03-27 21:58  围棋程序C#\go\app.config

     文件         69  2013-03-27 21:58  围棋程序C#\go\bin\Debug\go.exe.config

     文件      11608  2013-03-27 21:59  围棋程序C#\go\bin\Debug\go.vshost.exe

     文件         69  2013-03-27 21:58  围棋程序C#\go\bin\Debug\go.vshost.exe.config

     文件      31272  2009-02-01 16:11  围棋程序C#\go\Board.cs

     文件       1747  2009-02-01 16:11  围棋程序C#\go\BoardRecorder.cs

     文件       3938  2009-02-01 16:11  围棋程序C#\go\Chess.cs

     文件       4236  2013-03-27 21:58  围棋程序C#\go\go.csproj

     文件       1078  2009-02-01 16:10  围棋程序C#\go\go.ico

     文件       9524  2009-02-01 16:11  围棋程序C#\go\MainForm.cs

     文件      21288  2009-01-22 17:37  围棋程序C#\go\MainForm.Designer.cs

     文件       6015  2009-01-22 17:37  围棋程序C#\go\MainForm.resx

     文件       5372  2013-03-27 22:01  围棋程序C#\go\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache

     文件         58  2013-03-27 21:59  围棋程序C#\go\obj\Debug\go.csproj.FileListAbsolute.txt

     文件       4608  2013-03-27 21:58  围棋程序C#\go\obj\Debug\TempPE\Properties.Resources.Designer.cs.dll

     文件        477  2009-02-01 16:11  围棋程序C#\go\Program.cs

     文件       1398  2009-01-19 16:27  围棋程序C#\go\Properties\AssemblyInfo.cs

     文件       2842  2013-03-27 21:58  围棋程序C#\go\Properties\Resources.Designer.cs

     文件       5612  2009-01-16 16:23  围棋程序C#\go\Properties\Resources.resx

     文件       1100  2013-03-27 21:58  围棋程序C#\go\Properties\Settings.Designer.cs

     文件        249  2009-01-16 16:23  围棋程序C#\go\Properties\Settings.settings

     文件        364  2009-02-01 16:11  围棋程序C#\go\Utils.cs

     文件      31232  2009-02-01 16:11  围棋程序C#\go.exe

     文件        896  2013-03-27 21:58  围棋程序C#\go.sln

    ..A..H.     41984  2013-03-27 22:01  围棋程序C#\go.suo

     文件       1654  2013-03-27 21:58  围棋程序C#\UpgradeLog.xml

     文件       3348  2013-03-27 21:58  围棋程序C#\_UpgradeReport_Files\UpgradeReport.css

     文件      12505  2010-05-04 01:19  围棋程序C#\_UpgradeReport_Files\UpgradeReport.xslt

     文件         69  2013-03-27 21:58  围棋程序C#\_UpgradeReport_Files\UpgradeReport_Minus.gif

     文件         71  2013-03-27 21:58  围棋程序C#\_UpgradeReport_Files\UpgradeReport_Plus.gif

............此处省略13个文件信息

评论

共有 条评论

相关资源