void InitGame(int mode, bool ispvp = false) { Init(mode, _renderer); if (ispvp == false) { if (mode == 1) { User.Color = eTeam.White; } else { User.Color = eTeam.Black; } } if (User.Color == eTeam.Black) { _renderer.UpdateTurnBackground(eTeam.Black); if (ispvp == true) { NetProcess.SendPassThroughMessage(x - 1, y - 1, User.Color); } } else { _renderer.UpdateTurnBackground(eTeam.White); } }
int CheckKey(int mode, bool isSend = false) { if (isComputer) { var ret = pOmok[curStone].placement(x, y, curStone); pOmok[curStone].getXY(ref x, ref y); if (ret != 11 && isSend == false) //삼삼 //내부 체크는 1,1부터 시작 하나 그래픽 ui는 0,0부터 시작 { _renderer.UpdateStone(x, y, curStone == 0 ? eTeam.Black : eTeam.White); } if (isSend == true) //네트워크는 기본 0,0 기준이라 변환해준다. { NetProcess.SendPassThroughMessage(x - 1, y - 1, User.Color); } return(ret); } else if (aix != -1 && aiy != -1) { if (isSend == false) { //내부 좌표는 1,1 시작 ui이는 0,0 시작이라 변환 x = aix + 1; y = aiy + 1; } else { x = aix + 1; y = aiy + 1; } aix = aiy = -1; var ret = pOmok[curStone].placement(x, y, curStone); if (ret != 11 && ret != 10 && isSend == false) //삼삼 11 이미 놓여졌음 10 { _renderer.UpdateStone(x, y, curStone == 0 ? eTeam.Black : eTeam.White, true); } if (isSend == true) //네트워크는 기본 0,0 기준이라 변환해준다. { NetProcess.SendPassThroughMessage(x - 1, y - 1, User.Color == eTeam.White ? eTeam.Black : eTeam.White); } else { } return(ret); } else { return(0); } }
void OnPutStone(object sender, System.EventArgs e) { if (User.IsMyTurn == false) { return; } if (board.ContainsKey(_renderer.aimy) == false) { board[_renderer.aimy] = new Dictionary <int, int>(); } if (board[_renderer.aimy].ContainsKey(_renderer.aimx) == false) { board[_renderer.aimy][_renderer.aimx] = 0; } else if (board[_renderer.aimy][_renderer.aimx] != 0) { return; } if (User.Color == eTeam.Black) { //내부 좌표는 1,1 시작 ui이는 0,0 시작이라 변환 int x = _renderer.aimx + 1; int y = _renderer.aimy + 1; var ret = renjuRuleChecker.placement(x, y, 0); if (ret == 11 || ret == 10) //삼삼 11 이미 놓여졌음 10 { DependencyService.Get <Toast>().Show("착수금지 구역입니다."); return; } } NetProcess.SendPassThroughMessage(_renderer.aimx, _renderer.aimy, User.Color); }
public Room() { InitializeComponent(); if (User.IsEnableScreenChat == true) { Chatting.IsEnabled = true; } InitTimer(); _ai._renderer = _renderer; renjuRuleChecker.initBoard(); InitBoardGrid(); if (User.Auto == true) { User.myInfo.ai_reset_flag = true; if (User.Color == eTeam.Black) { Thread.Sleep(1000); } } Button PrevBtn = new Button { Text = "◁", HorizontalOptions = LayoutOptions.Start }; PrevBtn.Clicked += (sender, e) => { Navigation.PopModalAsync(); }; ProgressRoom.Progress = 0.0f; timeLabel.IsEnabled = true; timeLabel.Text = "00"; rewardVideo = DependencyService.Get <iAd_RewardVideoView>(); Device.StartTimer(TimeSpan.FromSeconds(1), () => { try { if (User.IsMyTurn == true) { var current = ((DateTime.Now - User.MytrunStartTime).TotalSeconds * 0.033); ProgressRoom.Progress = current; int remainseconds = 30 - (int)((DateTime.Now - User.MytrunStartTime).TotalSeconds); if (remainseconds < 0) { remainseconds = 0; } Device.BeginInvokeOnMainThread(() => { timeLabel.Text = remainseconds.ToString(); }); // DependencyService.Get<Toast>().Show(timeLabel.Text); // ToastNotification.TostMessage(timeLabel.Text); if ((DateTime.Now - User.MytrunStartTime).TotalSeconds > 30) { if (User.Auto == true) { NetProcess.SendLeaveRoom(0); } else { NetProcess.SendPassThroughMessage(-1, -1, User.Color); } } } if (debug > 90) { NetProcess.SendLeaveRoom(0); } /////////////////////////////////////////////////////////////////// if (User.myInfo.ai_reset_flag == true) { //흑ai if (User.Color == eTeam.Black) { User.myInfo.ai_rule = 3; User.myInfo.ai_mode = 1; } else //백ai { User.myInfo.ai_rule = 3; User.myInfo.ai_mode = 2; } Device.BeginInvokeOnMainThread(() => { _ai.PlayGame(User.myInfo.ai_rule, User.myInfo.ai_mode, true); isPlaying = true; User.myInfo.ai_reset_flag = false; UpdateBattleInfo(); }); } if (isPlaying == true) { Device.BeginInvokeOnMainThread(() => { isPlaying = _ai.PlaygameLoop(this, User.myInfo.ai_mode, true); }); if (isPlaying == false) //종료 { isPlaying = false; } } } catch (Exception e) { Console.WriteLine(e.ToString()); } return(!isExit); }); MessagingCenter.Subscribe <Room>(this, "close", (sender) => { NetProcess.SendLeaveRoom(0); }); //언어 수동 변환 if (User.Locale != "ko") { LeaveRoom.Text = "Exit"; LeftButton.Text = "Left"; UPButton.Text = "Up"; Clicked.Text = "Stone"; DownButton.Text = "Down"; RightButton.Text = "Right"; black.Text = "Black"; white.Text = "White"; } }