Исправить код игры «Камень-ножницы-бумага» - 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++;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д