public void AddPae(Pae p) { _arrPae.Add(p); }
//======================================================= //패선택 처리해준다. SelectBoardPae //패를 선택했을대 이미지를 좀 크게 보여준다. //======================================================= private void SelectBoardPae(string thisLabeName, Pae pae, Label paeLabel, int paeindex) { //====================================================== // 패를 클릭했을때 , 두번째. 등등. //====================================================== DebugWrite(">SelectBoardPae 패선택] " + _firstChoicePaeName + "==" + thisLabeName + "\r\n"); if (_firstChoicePaeName == thisLabeName) //첫번째 선택패랑 지금 선택한 패랑 같다면(처음이면 없겠지) { _firstChoicePaeName = ""; paeLabel.Size = new Size(50, 68); //선택한 패의 사이즈 키우기 50 -> 60, 86->96 Point beforLocation = new Point(paeLabel.Location.X + 3, paeLabel.Location.Y + 3); paeLabel.Location = beforLocation; //살짝 위로 좌로 보내낸거 다시 원위치 정렬해주자 paeLabel.BringToFront(); //aosdkvdmfh rkwudhsek. CmdSoundPlay2(_GSound_SenchoicePae); //효과음 주자 //paepoindex = _arrPaePosition[paeindex].sNo; DebugWrite(">다시선택해서 선택 해제] thisLabeName:" + thisLabeName + ", paeLabel.name" + paeLabel.Name + ", _firstChoicePaeName:" + _firstChoicePaeName); _fristChoiceLabl = null; //라벨선택한걸 할당해제한다. _fristChoiceINDEXsNo = 999; //_firstChoicePaePo = paepo; paeLabel.Refresh(); //다시그려준다. } else { if (_firstChoicePaeName == "") //첫선택이다. { //GameSound1("KbdKeyTap.wav"); //효과음 주자 CmdSoundPlay2(_GSound_SenchoicePae); //효과음 주자 _firstChoicePaeName = thisLabeName; _fristChoiceLabl = paeLabel; _fristChoiceINDEXsNo = paeindex; //_firstChoicePaePo = _arrPaePosition[paeindex]; paeLabel.Size = new Size(56, 74); //선택한 패의 사이즈 키우기 50 -> 60, 86->96 Point beforLocation = new Point(paeLabel.Location.X - 3, paeLabel.Location.Y - 3); paeLabel.Location = beforLocation; //살짝 위로 좌로 보내서 정렬해주자 paeLabel.BringToFront(); //맨앞으로 보내주자 paeLabel.Refresh(); //다시그려준다. //DebugWrite(">첫번째 선택 : 비교중 = "+ thisLabeName + " | "+ paeLabel.Name + " | " + paeindex); } else { //패를 2개째 선택이다. // 첫번째 선택했던 패와 지금 패를 비교해서 처리한다. //1. 첫번째 패와 두번째선택패가 같은 그림인지 비교 //2. 첫번재패와 두번째패를 화면에서 지워준다. //3. 패어레이에서 맞춘(두패 다) 거로 표시해준다. //4. 점수를 올려준다. DebugWrite("두개째선택 : 1(" + _firstChoicePaeName + ") = 2(" + thisLabeName + ")\r\n"); //string fimgstring = _fristChoiceLabl.Name; string fimgstring = _arrPaePosition[_fristChoiceINDEXsNo].ImageName; string thisimgstring = _arrPaePosition[paeindex].ImageName; if (fimgstring == thisimgstring) { //DebugWrite("> 두번째패 선택완료 : 이미지가 같다." + _arrPaePosition[_fristChoiceINDEXsNo] + " [=] " + thisimgstring); _fristChoiceLabl.Location = new Point(_fristChoiceLabl.Location.X + 3, _fristChoiceLabl.Location.Y + 3); //원래 위치로 돌려주자 _fristChoiceLabl.Visible = false; //같이니까 없애자 paeLabel.Visible = false; //1. PaePosition에서 패를 없앤거로 표시해주거나 삭제하자 //2. 점수를 주자 //3. 성공 사운드를 넣어주자 //4. 없앤 패 어레이에 추가시키자... //_NowPlayGameLevel = 2; //_NowPlayGameGrade = 1; //시간 계산해서 점수 추가해주자. TimeSpan NextRemoveTime = DateTime.Now - _LastRemovePaeStopWatch; if (NextRemoveTime.TotalSeconds < 2) { _Game_RemovePoint_NOW = _Game_RemovePoint_NOW + (3 * _NowPlayGameLevel * _NowPlayGameGrade); _ClearPaeSungCode = _ClearPaeSungCode + 1; } else if (NextRemoveTime.TotalSeconds < 3) { _Game_RemovePoint_NOW = _Game_RemovePoint_NOW + (2 * _NowPlayGameLevel * _NowPlayGameGrade); _ClearPaeSungCode = _ClearPaeSungCode + 1; } else if (NextRemoveTime.TotalSeconds < 4) { _Game_RemovePoint_NOW = _Game_RemovePoint_NOW + (1 * _NowPlayGameLevel * _NowPlayGameGrade); _ClearPaeSungCode = _ClearPaeSungCode + 1; } else { _Game_RemovePoint_NOW = 10; _ClearPaeSungCode = 1; } DebugWrite(">점수 : " + _myGameScore + " + " + _Game_RemovePoint_NOW + " = " + NextRemoveTime.TotalSeconds.ToString("#,##0") + "초"); _myGameScore = _myGameScore + _Game_RemovePoint_NOW; _LastRemovePaeStopWatch = DateTime.Now; //패를 없애 시간을 넣어주자 lblGameNowPoint.Text = _myGameScore.ToString("#,##0"); //_firstChoicePaePo.Cvisibl(); _arr_Clear_PaeList = _arr_Clear_PaeList + "|" + thisLabeName + "|" + _firstChoicePaeName; //DebugWrite("현재없앨 패리스트: thisLabeName[" + thisLabeName + "] _firstChoicePaeName[" + _firstChoicePaeName + "]\r\n"); //DebugWrite("현재없앤패리스트: " + _arr_Clear_PaeList + "\r\n"); // 아래코드는 어레이에서 인덱스를 찾아 삭제하면 인덱스가 밀리니 사용 불가능함 //_arrWholePae.RemovePaeAt(paeindex); // 패포지션 어레이에서 패를 삭제한다. //_arrWholePae.RemovePaeAt(_fristChoiceINDEXsNo); // 패포지션 어레이에서 패를 삭제한다. //DebugWrite("없앨 패 인덱스1 : " + paeindex + " \r\n"); //DebugWrite("없앨 패 인덱스2 : " + _fristChoiceINDEXsNo + " \r\n"); _GAme_LeftPae_Count = _GAme_LeftPae_Count - 2; //DebugWrite("남은패 갯수 : " + _GAme_LeftPae_Count + " 개\r\n"); //paepostiton 에서 paeList의 인덱스 값으로 sno검색해서 인덱스 찾아 삭제하자 for (int i = 0; i < _arrPaeLeft.Count; i++) { if (_arrPaeLeft[i].sNo == paeindex) { DebugWrite("1:없앤다:" + thisLabeName + "(" + thisimgstring + ")\r\n"); _arrPaeLeft.RemovePaeLeftAt(i); break; } } for (int i = 0; i < _arrPaeLeft.Count; i++) { if (_arrPaeLeft[i].sNo == _fristChoiceINDEXsNo) { DebugWrite("2:없앤다:" + _firstChoicePaeName + "(" + fimgstring + ") \r\n"); _arrPaeLeft.RemovePaeLeftAt(i); break; } } //DebugWrite("남은 어레이 갯수 : " + _arrPaeLeft.Count + " 개\r\n"); //DebugWrite("없앤패릿트 : " + _arr_Clear_PaeList + " \r\n"); _fristChoiceLabl = null; //없앴으니 첫번째 라벨선택한걸 할당해제한다. _fristChoiceINDEXsNo = 999; //없앴으니 첫번째 인덱스 날리자. _firstChoicePaeName = ""; //없앴으니 첫번째 선택패 없애 주자. if (_ClearPaeSungCode > 8) { _ClearPaeSungCode = 8; } CmdSoundPlay3(_ClearPaeSungCode); //효과음 주자 lbl_PaePosition.Text = _NowPlayGame_ResultDataString; // 최고점수& 유저를 를 계속 표시해주게 된다. if (_GAme_LeftPae_Count <= GameEndLeftPae) //패남은갯수가 0이면 게임완료 { CmdGameCLEAR(_NowPlayGameLevel, _GameStartTime, _myGameScore, _NowPlayGameGrade); //게임클리어로 보내자 } else if (!LeftPaeMoveCheck()) //더이상 게임에 제거할수 있는패가 없는지 검사해서 게임을 종료시킨다.(실패) { //DebugWrite(">> 더 없앨수 있는 패가 없다!!! .\r\n"); DeleGameOver("1", "더 없앨수 있는 패가 없습니다. !"); } } else { DebugWrite("> 같은 패가 아닙니다." + fimgstring + " [=] " + thisimgstring); //_fristChoiceLabl.Size = new Size(50, 68); // 처음 선택한 패의 사이즈 원래 대로 // 실패 사운드 넣어주자 CmdSoundPlay2(_GSound_FailClickPae); //효과음 주자 } } } }
//게임 실패 //========================================================================================== //게임 보드에 깔린 패를 선택했을경우 myPae_Click //========================================================================================== private void myPae_Click(object sender, EventArgs e) { // 패를 치기 위해 선택한 라벨로 부터 패정보를 가져옮니다. Pae thisPae = ((Pae)((Label)sender).Tag); //PaePo thisPaePo = ((PaePo)((Label)sender).Tag); Label thisLabelPae = ((Label)sender); string thisLabeName = thisLabelPae.Name; //DebugWrite("myPae_Click(lv:"+ _NowPlayGameLevel + ")> :" + thisLabeName + "\r\n"); int thisP = thisPae.sNo; string rePlString = "lblGamePae"; if (_NowPlayGameLevel == 2) { rePlString = "lblGamePa2"; } else if (_NowPlayGameLevel == 3) { rePlString = "lblGamePa3"; } else if (_NowPlayGameLevel == 4) { rePlString = "lblGamePa4"; } else if (_NowPlayGameLevel == 5) { rePlString = "lblGamePa5"; } string thisPaePocode = thisLabeName; int thisPaePoCodeINTX = int.Parse(thisPaePocode.Replace(rePlString, "").Substring(2, 2)); //라벨에서 위치코드만 추출해 INT로 저장 int thisPaePoCodeINTY = int.Parse(thisPaePocode.Replace(rePlString, "").Substring(0, 2)); //라벨에서 위치코드만 추출해 INT로 저장 //DebugWrite(">패선택 : "+ thisLabeName + " | "+ thisPaePoCodeINTX ); DebugWrite("(Lv." + _NowPlayGameLevel + ") " + _PaeCenterPanArrangePositionStyle + " 라벨이름검사 :" + thisLabeName + "\r\n"); // lblGamePae0614 // 01234567890123 // 123456789012 string Left_thisLabeName = ""; string Right_thisLabelName = ""; int nowlblNum = int.Parse(thisLabeName.Substring(12, 2).ToString()); //열단위 int nowlblNum100 = int.Parse(thisLabeName.Substring(11, 1).ToString()); //줄단위 int left_lblNum = nowlblNum - 1; int right_lblNum = nowlblNum + 1; if (left_lblNum < 10) { Left_thisLabeName = thisLabeName.Substring(0, 12) + "0" + left_lblNum.ToString(); } else { Left_thisLabeName = thisLabeName.Substring(0, 12) + left_lblNum.ToString(); } if (right_lblNum < 10) { Right_thisLabelName = thisLabeName.Substring(0, 12) + "0" + right_lblNum.ToString(); } else { Right_thisLabelName = thisLabeName.Substring(0, 12) + right_lblNum.ToString(); } //_arr_Clear_PaeList : 없앤 패 리스트 //게임패 배치스타일 분기 switch (_PaeCenterPanArrangePositionStyle) { case 1: //벌집형일경우 //뒤에 2자리가 홀수일경우 위쪽이다. 고로 (좌는= (자신의번호에서 같은10단위 에서 1단위 -1 && ,-10단위 1단위-1) 우는 x,1) //뒤에 2자리가 짝수일 경우 (좌는 자신번호 string Left_thisLabeName2 = "자신 왼쪽2"; string Right_thisLabelName2 = "자신 오른쪽2"; if ((nowlblNum100 == 1) && (nowlblNum % 2 == 1)) //홀수이면서 1번이면 -1은 없다.(첫줄의 홀수다) { DebugWrite("1번라인의 홀수):" + thisLabeName + " > " + Right_thisLabelName + "\r\n"); if ((_arr_Clear_PaeList.IndexOf(Left_thisLabeName) > 0) || (_arr_Clear_PaeList.IndexOf(Right_thisLabelName) > 0)) { SelectBoardPae(thisLabeName, thisPae, thisLabelPae, thisP); } else { // 없앤 패리스트엔 없지만 판때기에 없을수 있으므로 검사한다. //nowlblNum = 내패넘버 2자리 if ((_arr_Clear_PaeList_MakePaeList.IndexOf(Left_thisLabeName) < 1) || (_arr_Clear_PaeList_MakePaeList.IndexOf(Right_thisLabelName) < 1)) { //만들패드 모든 리스트에서 오른쪽패가 없다. 고로 오른쪽이 비었다. //DebugWrite("만든패 모든리스트에서 왼쪽 또는 오른쪽패가 없다.. :" + thisLabeName + " > " + Right_thisLabelName + "\r\n"); SelectBoardPae(thisLabeName, thisPae, thisLabelPae, thisP); } } } else { // 조건 (CL1 || ML1) && (CL2 || ML3) == true bool CL1 = false; bool CL2 = false; bool ML1 = false; bool ML2 = false; bool CR1 = false; bool CR2 = false; bool MR1 = false; bool MR2 = false; //홀수일경우 left_lblNum = nowlblNum - 1; 했지만 짝수일 경우는 반대다. //앞자리 0 처리 int leftMinerNum = 1; //내패에서 빼서 찾을 100단위 넘버 //홀수는 나자신보다 -1, 짝수면 +1 if (nowlblNum % 2 != 1) { leftMinerNum = -1; } if (left_lblNum < 10) { Left_thisLabeName2 = thisLabeName.Substring(0, 11) + (nowlblNum100 - leftMinerNum) + "0" + left_lblNum.ToString(); } else { Left_thisLabeName2 = thisLabeName.Substring(0, 11) + (nowlblNum100 - leftMinerNum) + left_lblNum.ToString(); } //앞자리 0 처리 if (right_lblNum < 10) { Right_thisLabelName2 = thisLabeName.Substring(0, 11) + (nowlblNum100 - leftMinerNum) + "0" + right_lblNum.ToString(); } else { Right_thisLabelName2 = thisLabeName.Substring(0, 11) + (nowlblNum100 - leftMinerNum) + right_lblNum.ToString(); } //조건 조합 시작 //조건 C = 클리어패 리스트 //조건 L1 왼쪽1, L2왼쪽2 //조건 (CL1 || ML1) && (CL2 || ML2) == true if ((_arr_Clear_PaeList.IndexOf(Left_thisLabeName) > 0)) { CL1 = true; } if ((_arr_Clear_PaeList.IndexOf(Left_thisLabeName2) > 0)) { CL2 = true; } if ((_arr_Clear_PaeList.IndexOf(Right_thisLabelName) > 0)) { CR1 = true; } if ((_arr_Clear_PaeList.IndexOf(Right_thisLabelName2) > 0)) { CR2 = true; } if ((_arr_Clear_PaeList_MakePaeList.IndexOf(Left_thisLabeName) < 1)) { ML1 = true; } if ((_arr_Clear_PaeList_MakePaeList.IndexOf(Left_thisLabeName2) < 1)) { ML2 = true; } if ((_arr_Clear_PaeList_MakePaeList.IndexOf(Right_thisLabelName) < 1)) { MR1 = true; } if ((_arr_Clear_PaeList_MakePaeList.IndexOf(Right_thisLabelName2) < 1)) { MR2 = true; } // TRUE 조건들 (CL,CR, ML, ML) // 조건 1 : 좌측 둘다 없앤패에 있다. // 조건 2 : 우측 둘다 없앤패에 있따. // 조건 1 : 좌측 둘다 만든패에 없다. // 조건 1 : 우측 둘다 만든패에 없다. // 조건 2 : 홀수이면서1 이고 없앤패에 있다. //완 // 조건 2 : 홀수이면서1 이고 만든패에 없다. //완 // 조건 : (L1 true && L2 true) = true // 조건 : (R1 true && R2 true) = true //조건 =========== // 조건 (CL1 || ML1) && (CL2 || ML3) == true DebugWrite("패정보 : ((" + CL1 + " || " + ML1 + ") && (" + CL2 + " || " + ML2 + "))"); DebugWrite("패정보 : ((" + CR1 + " || " + MR1 + ") && (" + CR2 + " || " + MR2 + "))"); if ((CL1 || ML1) && (CL2 || ML2)) { SelectBoardPae(thisLabeName, thisPae, thisLabelPae, thisP); } else if ((CR1 || MR1) && (CR2 || MR2)) { SelectBoardPae(thisLabeName, thisPae, thisLabelPae, thisP); } ; } //else//짝수면 //{ // //앞자리 0 처리 // if (left_lblNum < 10) Left_thisLabeName2 = thisLabeName.Substring(0, 11) + (nowlblNum100 - 1) + "0" + left_lblNum.ToString(); // else Left_thisLabeName2 = thisLabeName.Substring(0, 11) + (nowlblNum100 - 1) + left_lblNum.ToString(); // //앞자리 0 처리 // if (right_lblNum < 10) Right_thisLabelName2 = thisLabeName.Substring(0, 11) + (nowlblNum100 - 1) + "0" + right_lblNum.ToString(); // else Right_thisLabelName2 = thisLabeName.Substring(0, 11) + (nowlblNum100 - 1) + right_lblNum.ToString(); // if ((_arr_Clear_PaeList.IndexOf(Left_thisLabeName) > 0) && (_arr_Clear_PaeList.IndexOf(Left_thisLabeName2) > 0)) // { // DebugWrite("좌측 둘다 업앤패중에 있다 고로 선택가능한패다..\r\n"); // SelectBoardPae(thisLabeName, thisPae, thisLabelPae, thisP); // } // else if ((_arr_Clear_PaeList.IndexOf(Right_thisLabelName) > 0) && (_arr_Clear_PaeList.IndexOf(Right_thisLabelName2) > 0)) // { // DebugWrite("우측 둘다 업앤패중에 있다 고로 선택가능한패다..\r\n"); // SelectBoardPae(thisLabeName, thisPae, thisLabelPae, thisP); // } //} break; default: //바둑판 게임 방식 일경우 if ((_arr_Clear_PaeList.IndexOf(Left_thisLabeName) > 0) || (_arr_Clear_PaeList.IndexOf(Right_thisLabelName) > 0)) { //DebugWrite("라벨 오른쪽 또는 왼쪽 없앤거 있다. :" + thisLabeName + " > " + Right_thisLabelName + "\r\n"); SelectBoardPae(thisLabeName, thisPae, thisLabelPae, thisP); } else { // 없앤 패리스트엔 없지만 판때기에 없을수 있으므로 검사한다. //nowlblNum = 내패넘버 2자리 if ((_arr_Clear_PaeList_MakePaeList.IndexOf(Left_thisLabeName) < 1) || (_arr_Clear_PaeList_MakePaeList.IndexOf(Right_thisLabelName) < 1)) { //만들패드 모든 리스트에서 오른쪽패가 없다. 고로 오른쪽이 비었다. DebugWrite("만든패 모든리스트에서 왼쪽 또는 오른쪽패가 없다.. :" + thisLabeName + " > " + Right_thisLabelName + "\r\n"); SelectBoardPae(thisLabeName, thisPae, thisLabelPae, thisP); } } break; //패 배치스타일 바둑판스타일 끝 } //// 게이머의 정보를 얻기위해 라벨이 속한 패널을 찾아 냅니다. //Panel pn = (Panel)((Label)sender).Parent.Parent; // 패널을 가져오고 //// 패널로 부터 게이머의 정보를 얻어 냅니다. //Player per = (Player)pn.Tag; //// 칠 순서의 사용자라면 //if (_myID == per.ID && per.ID == _nextPlayer.ID) //{ // // 치기 위해 낸 패를 모든 게이머에게 전송합니다. // SendMessage("PAESEND:" + thisPae.PaeCode); //} }
//==================================================================== // 움직일수 있는 패인지 체크 하는 로직 CheckChoicePassblePaeHEXA //==================================================================== private bool CheckChoicePassblePaeHEXA(Pae thisPae, Label thisLabelPae) // //움직일수 있는 패인지 체크한다. { bool rtnbool = false; string thisLabeName = thisLabelPae.Name; //DebugWrite("myPae_Click(lv:"+ _NowPlayGameLevel + ")> :" + thisLabeName + "\r\n"); int thisP = thisPae.sNo; string rePlString = "lblGamePae"; if (_NowPlayGameLevel == 2) { rePlString = "lblGamePa2"; } else if (_NowPlayGameLevel == 3) { rePlString = "lblGamePa3"; } else if (_NowPlayGameLevel == 4) { rePlString = "lblGamePa4"; } else if (_NowPlayGameLevel == 5) { rePlString = "lblGamePa5"; } string thisPaePocode = thisLabeName; int thisPaePoCodeINTX = int.Parse(thisPaePocode.Replace(rePlString, "").Substring(2, 2)); //라벨에서 위치코드만 추출해 INT로 저장 int thisPaePoCodeINTY = int.Parse(thisPaePocode.Replace(rePlString, "").Substring(0, 2)); //라벨에서 위치코드만 추출해 INT로 저장 string Left_thisLabeName = ""; string Right_thisLabelName = ""; int nowlblNum = int.Parse(thisLabeName.Substring(12, 2).ToString()); //열단위 int nowlblNum100 = int.Parse(thisLabeName.Substring(11, 1).ToString()); //줄단위 int left_lblNum = nowlblNum - 1; int right_lblNum = nowlblNum + 1; if (left_lblNum < 10) { Left_thisLabeName = thisLabeName.Substring(0, 12) + "0" + left_lblNum.ToString(); } else { Left_thisLabeName = thisLabeName.Substring(0, 12) + left_lblNum.ToString(); } if (right_lblNum < 10) { Right_thisLabelName = thisLabeName.Substring(0, 12) + "0" + right_lblNum.ToString(); } else { Right_thisLabelName = thisLabeName.Substring(0, 12) + right_lblNum.ToString(); } //_arr_Clear_PaeList : 없앤 패 리스트 //게임패 배치스타일 분기 switch (_PaeCenterPanArrangePositionStyle) { case 1: //벌집형일경우 string Left_thisLabeName2 = "자신 왼쪽2"; string Right_thisLabelName2 = "자신 오른쪽2"; if ((nowlblNum100 == 1) && (nowlblNum % 2 == 1)) //홀수이면서 1번이면 -1은 없다.(첫줄의 홀수다) { DebugWrite("1번라인의 홀수):" + thisLabeName + " > " + Right_thisLabelName + "\r\n"); if ((_arr_Clear_PaeList.IndexOf(Left_thisLabeName) > 0) || (_arr_Clear_PaeList.IndexOf(Right_thisLabelName) > 0)) { rtnbool = true; } else { // 없앤 패리스트엔 없지만 판때기에 없을수 있으므로 검사한다. //nowlblNum = 내패넘버 2자리 if ((_arr_Clear_PaeList_MakePaeList.IndexOf(Left_thisLabeName) < 1) || (_arr_Clear_PaeList_MakePaeList.IndexOf(Right_thisLabelName) < 1)) { rtnbool = true; } } } else { // 조건 (CL1 || ML1) && (CL2 || ML3) == true bool CL1 = false; bool CL2 = false; bool ML1 = false; bool ML2 = false; bool CR1 = false; bool CR2 = false; bool MR1 = false; bool MR2 = false; //홀수일경우 left_lblNum = nowlblNum - 1; 했지만 짝수일 경우는 반대다. //앞자리 0 처리 int leftMinerNum = 1; //내패에서 빼서 찾을 100단위 넘버 //홀수는 나자신보다 -1, 짝수면 +1 if (nowlblNum % 2 != 1) { leftMinerNum = -1; } if (left_lblNum < 10) { Left_thisLabeName2 = thisLabeName.Substring(0, 11) + (nowlblNum100 - leftMinerNum) + "0" + left_lblNum.ToString(); } else { Left_thisLabeName2 = thisLabeName.Substring(0, 11) + (nowlblNum100 - leftMinerNum) + left_lblNum.ToString(); } //앞자리 0 처리 if (right_lblNum < 10) { Right_thisLabelName2 = thisLabeName.Substring(0, 11) + (nowlblNum100 - leftMinerNum) + "0" + right_lblNum.ToString(); } else { Right_thisLabelName2 = thisLabeName.Substring(0, 11) + (nowlblNum100 - leftMinerNum) + right_lblNum.ToString(); } if ((_arr_Clear_PaeList.IndexOf(Left_thisLabeName) > 0)) { CL1 = true; } if ((_arr_Clear_PaeList.IndexOf(Left_thisLabeName2) > 0)) { CL2 = true; } if ((_arr_Clear_PaeList.IndexOf(Right_thisLabelName) > 0)) { CR1 = true; } if ((_arr_Clear_PaeList.IndexOf(Right_thisLabelName2) > 0)) { CR2 = true; } if ((_arr_Clear_PaeList_MakePaeList.IndexOf(Left_thisLabeName) < 1)) { ML1 = true; } if ((_arr_Clear_PaeList_MakePaeList.IndexOf(Left_thisLabeName2) < 1)) { ML2 = true; } if ((_arr_Clear_PaeList_MakePaeList.IndexOf(Right_thisLabelName) < 1)) { MR1 = true; } if ((_arr_Clear_PaeList_MakePaeList.IndexOf(Right_thisLabelName2) < 1)) { MR2 = true; } DebugWrite("패정보 : ((" + CL1 + " || " + ML1 + ") && (" + CL2 + " || " + ML2 + "))"); DebugWrite("패정보 : ((" + CR1 + " || " + MR1 + ") && (" + CR2 + " || " + MR2 + "))"); if ((CL1 || ML1) && (CL2 || ML2)) { rtnbool = true; } else if ((CR1 || MR1) && (CR2 || MR2)) { rtnbool = true; } } break; default: //바둑판 게임 방식 일경우 if ((_arr_Clear_PaeList.IndexOf(Left_thisLabeName) > 0) || (_arr_Clear_PaeList.IndexOf(Right_thisLabelName) > 0)) { rtnbool = true; } else { // 없앤 패리스트엔 없지만 판때기에 없을수 있으므로 검사한다. //nowlblNum = 내패넘버 2자리 if ((_arr_Clear_PaeList_MakePaeList.IndexOf(Left_thisLabeName) < 1) || (_arr_Clear_PaeList_MakePaeList.IndexOf(Right_thisLabelName) < 1)) { //만들패드 모든 리스트에서 오른쪽패가 없다. 고로 오른쪽이 비었다. DebugWrite("만든패 모든리스트에서 왼쪽 또는 오른쪽패가 없다.. :" + thisLabeName + " > " + Right_thisLabelName + "\r\n"); rtnbool = true; } } break; //패 배치스타일 바둑판스타일 끝 } return(rtnbool); }