Exemplo n.º 1
0
        // 저장된 파일을 읽고 수순대로 복기
        private void 복기ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // 파일 선택
            OpenFileDialog ofd = new OpenFileDialog();

            ofd.InitialDirectory = "../../Data/";
            ofd.Filter           = "Omok files(*.omk)|*.omk";
            ofd.ShowDialog();
            string fileName = ofd.FileName;

            try
            {
                StreamReader r    = File.OpenText(fileName);
                string       line = "";

                // 파일 내용을 한 줄 씩 읽어서 lstRevive 리스트에 넣는다
                while ((line = r.ReadLine()) != null)
                {
                    string[] items = line.Split(' ');
                    Revive   rev   = new Revive(int.Parse(items[0]), int.Parse(items[1]),
                                                items[2] == "black" ? STONE.black : STONE.white, int.Parse(items[3]));
                    lstRevive.Add(rev);
                }
                r.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            // 복기 준비
            reviveFlag = true;
            sequence   = 0;
            NewGame();
        }
Exemplo n.º 2
0
        // 복기 리스트에 있는 내용을 하나씩 그려준다
        private void DrawAStone(Revive item)
        {
            int   x   = item.X;
            int   y   = item.Y;
            STONE s   = item.stone;
            int   seq = item.seq;

            // 바둑판[x,y] 에 돌을 그린다
            Rectangle r = new Rectangle(
                margin + 눈Size * x - 돌Size / 2,
                margin + 눈Size * y - 돌Size / 2,
                돌Size, 돌Size);

            // 검은돌 차례
            if (s == STONE.black)
            {
                if (imageFlag == false)
                {
                    g.FillEllipse(bBrush, r);
                }
                else
                {
                    Bitmap bmp = new Bitmap("../../img/black.png");

                    g.DrawImage(bmp, r);
                }
                DrawStoneSequence(seq, Brushes.White, r);
                바둑판[x, y] = STONE.black;
            }
            else
            {
                if (imageFlag == false)
                {
                    g.FillEllipse(wBrush, r);
                }
                else
                {
                    Bitmap bmp = new Bitmap("../../img/white.png");
                    g.DrawImage(bmp, r);
                }
                DrawStoneSequence(seq, Brushes.Black, r);
                바둑판[x, y] = STONE.white;
            }
            CheckOmok(x, y);
        }