Исправить код игры «Камень-ножницы-бумага» - 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++;
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.333 из 5
Похожие ответы