Исправить код игры «Камень-ножницы-бумага» - C#
Формулировка задачи:
Условие: 1-й класс должен содержать следующие элементы: конструкторы , методы, свойства.
2-й класс должен содержать метод Main, в котором должна выполняться проверка разработанных элементов класса.
Игрок первым выбирает вариант, затем случайно компьютер. Предусмотреть метод очередного хода, свойство «счет», метод обнуления счета. В случае ввода недопустимых значений - исключения.
using System; namespace ConsoleApplication11 { class game { static void Main() { string[] combs = { "Камень", "Ножницы", "Бумага" }; Random random = new Random(); do { var r = random.Next(3); Console.WriteLine("Введите свое значение"); for (int i = 0; i < combs.Length; i++) { Console.WriteLine("{0} {1}", i, combs[i]); } uint input; while (!uint.TryParse(Console.ReadLine(), out input) || input > 2) { } Console.WriteLine("Компьютер выбрал {0}, вы выбрали {1}", combs[r], combs[input]); if (r == input) Console.WriteLine("Ничья"); else if (input == 2 && r == 0 || input < r) Console.WriteLine("Поражение"); else Console.WriteLine("Победа"); Console.WriteLine("Попробовать еще раз? Y/N"); } while (Console.ReadKey(true).Key == ConsoleKey.Y); Console.WriteLine("Игра окончена, нажмите любую клавишу"); Console.ReadKey(); } } }
Решение задачи: «Исправить код игры «Камень-ножницы-бумага»»
textual
Листинг программы
using System; using System.Linq; using System.Threading; internal class Program { private static Game game; private static Random rnd = new Random(); private static string history = ""; private static void Main(string[] args) { game = new Game(); int result = Play(); if (result > 0) Console.WriteLine("Победа!"); else if (result < 0) Console.WriteLine("Проигрыш..."); else Console.WriteLine("Ничья"); Thread.Sleep(1000); } private static int Play(int index = 0) { Console.Clear(); Func<int, string> get = n => n == 0 ? "Камень" : n == 1 ? "Ножницы" : "Бумага"; int i = 0, score = game.Player1 - game.Player2; Action<string> write = s => { if (i++ == index) { Console.ForegroundColor = ConsoleColor.White; Console.BackgroundColor = ConsoleColor.Gray; } Console.Write(s); Console.ResetColor(); Console.Write(" "); }; write(get(0)); write(get(1)); write(get(2)); Console.WriteLine("\r\nВаш счет : {0}", score); if (history.Count('\n'.Equals) > 20) { history = history.Remove(0, history.IndexOf('\n') + 1); } Console.Write(history); switch (Console.ReadKey().Key) { case ConsoleKey.Enter: { int c = rnd.Next(0, 3); history += String.Format( "Вы выбрали {0}, компьютер выбрал {1}\r\n", get(index), get(c)); game.Play(index, c); break; } case ConsoleKey.Escape: { Console.Clear(); return score; } case ConsoleKey.LeftArrow: { index += 2; break; } case ConsoleKey.RightArrow: { index++; break; } } return Play(index%3); } } internal class Game { public int Player1 = 0, Player2 = 0; public void Play(int player1, int player2) { int res = player1 - player2; if (res == 0) return; if (res == -1 || res == 2) Player1++; else Player2++; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д