//오목 전송 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); }
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("당신의 턴이 아닙니다!"); } }