public static void StartOneGame(bool blnFirst) { // кто сейчас ходит // результат текущего хода игроков =TRUE, если ход состоялся bool blnFRes, blnSRes; // признак окончания игры EFinish efFinish = EFinish.Play; // сообщения о результате игры string[] arrFinishMsg = { "---", "Победил первый игрок!", "Победил второй игрок!", "Рыба!" }; // количество доминушек в базаре, нужно для определения корректности хода игрока int intBoneyard = 0; // Чем ходить SBone sb; // куда ходить bool blnEnd; // Инициализация игры Initialize(); // Раздача доминошек в начале игры GetHands(); // первая доминушка - первая из базара // определяем случайным образом доминушку из базара int intN = rnd.Next(lBoneyard.Count - 1); lGame.Add(lBoneyard[intN]); lBoneyard.RemoveAt(intN); // вывод на экран начального состояния игры blnFRes = true; blnSRes = true; // Первым ходит первый игрок intBoneyard = lBoneyard.Count; //----------------------------------------------------------------- // ИГРА do { // кто ходит? ---- Ходит первый игрок if (blnFirst) { // количество взятых доминушек intLastTaken = intTaken; intTaken = 0; // ход первого игрока intBoneyard = lBoneyard.Count; blnFRes = MFPlayer.MakeStep(out sb, out blnEnd); // если ход сделан if (blnFRes) { // пристраиваем доминушку if (SetBone(sb, blnEnd) == false) { return; } } // если ход не сделан else if (intBoneyard == lBoneyard.Count && intBoneyard > 0) { return; } if (blnFRes == false && blnSRes == false) { // рыба efFinish = EFinish.Lockdown; } else if (blnFRes == true) { // если нет домино, то я выиграл if (MFPlayer.GetCount() == 0) { efFinish = EFinish.First; } } } // кто ходит? ---- Ходит вторый игрок else { // количество взятых доминушек intLastTaken = intTaken; intTaken = 0; // ход первого игрока intBoneyard = lBoneyard.Count; blnSRes = MSPlayer.MakeStep(out sb, out blnEnd); // если ход сделан if (blnSRes) { // пристраиваем доминушку if (SetBone(sb, blnEnd) == false) { return; } } // если ход не сделан else if (intBoneyard == lBoneyard.Count && intBoneyard > 0) { return; } if (blnFRes == false && blnSRes == false) { // рыба efFinish = EFinish.Lockdown; } else if (blnSRes == true) { // если нет домино, то я выиграл if (MSPlayer.GetCount() == 0) { efFinish = EFinish.First; } } } // после хода вывести данные на столе-------------------------------------------------------- MFPlayer.PrintAll(); MSPlayer.PrintAll(); //Console.ReadKey() // будет ходить другой игрок blnFirst = !blnFirst; intBoneyard = lBoneyard.Count; intGameStep += 1; }while (efFinish == EFinish.Play); // результат текущей игры int[] points = new int[2]; points[0] = MFPlayer.GetScore(); points[1] = MSPlayer.GetScore(); }