Пример #1
0
        //오목 전송
        void OnSendData2(int x, int y, STONE stone)
        {
            Console.WriteLine(myturn);
            // 서버가 대기중인지 확인한다.
            if (!mainSock.IsBound)
            {
                MsgBoxHelper.Warn("서버가 실행되고 있지 않습니다!");
                return;
            }

            String STONE = stone.ToString();

            Console.WriteLine("x : " + x);
            Console.WriteLine("Y : " + y);
            Console.WriteLine("색깔 1-검정, 2-흰돌 : " + stone);

            string turn = "myturn";

            byte[] bDts = Encoding.UTF8.GetBytes("1:" + x + ':' + y + ':' + STONE + ':' + turn + ':');
            //서버에 전송한다.
            mainSock.Send(bDts);
        }
Пример #2
0
        private void panel1_MouseDown(object sender, MouseEventArgs e)
        {
            //자기 턴에만 그림을 그릴 수 있어야함.
            if (myturn == true)
            {
                if (reviveFlag == true)
                {
                    ReviveGame();
                    return;
                }

                // e.X는 픽셀단위, x는 바둑판 좌표
                int x = (e.X - margin + 눈Size / 2) / 눈Size;
                int y = (e.Y - margin + 눈Size / 2) / 눈Size;

                if (바둑판[x, y] != STONE.none)
                {
                    return;
                }

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

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

                        g.DrawImage(bmp, r);
                    }

                    lstRevive.Add(new Revive(x, y, STONE.black, stoneCnt));
                    DrawStoneSequence(stoneCnt++, Brushes.White, r);
                    flag      = true;
                    바둑판[x, y] = STONE.black;
                    OnSendData2(x, y, STONE.black);
                }
                else
                {
                    if (imageFlag == false)
                    {
                        g.FillEllipse(wBrush, r);
                    }
                    else
                    {
                        Bitmap bmp = new Bitmap("../../img/white.png");

                        g.DrawImage(bmp, r);
                    }
                    lstRevive.Add(new Revive(x, y, STONE.white, stoneCnt));
                    DrawStoneSequence(stoneCnt++, Brushes.Black, r);
                    flag      = false;
                    바둑판[x, y] = STONE.white;
                    OnSendData2(x, y, STONE.white);
                }
                myturn = false;
                CheckOmok(x, y);
            }
            else
            {
                MsgBoxHelper.Error("당신의 턴이 아닙니다!");
            }
        }