Консольная игра «камень-ножницы-бумага» - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет, нужна ваша помощь в решении данной задачи. Заранее благодарен Создать консольную игру «камень-ножницы-бумага». 1. Пользователь играет против Компьютера. 2. Необходимо создать класс «игрок» с полем «счет», в котором будет содержаться общее количество побед игрока. 3. Пользователь вводит с клавиатуры одно из указанных значений (или «камень», или «ножницы», или «бумага»), которое записывается в поле «бросок». 4. После этого, игрок «компьютер» определяет случайным образом свое значение (или «камень», или «ножницы», или «бумага») и записывает значение в поле «бросок». 5. Затем определяется победитель пары методом «сравнить» класса «игрок». В качестве аргументов метода передаются значения соответствующих полей объектов. Метод увеличивает значение поля «счет» соответствующего игрока. Если значения полей «бросок» совпадают (например, оба игрока выбрали «ножницы»), то счет не меняется. 6. Игра ведется до тех пор, пока пользователь не введет символ «*». После этого выводится счет «Пользователь» - «Компьютер». Note: Обращение к генератору случайных чисел может быть организовано следующим образом: Random random= new Random (); int answerCPU= random.Next (3); //метод возвращает случайное число от 0 до 2 Вот есть пару кодов, нужна помощь в правильной реализации, в соответствии с заданием
Random random = new Random();
 
String[] items = new String[3];
items[0] = «Stone»;
items[1] = «Scissors»;
items[2] = «Paper»;
 
int coincidental = random.Next(items.Length);
string coincidental2 = items[coincidental];
 
Console.WriteLine(«1. Stone»);
Console.WriteLine(«2. Scissors»);
Console.WriteLine(«3. Paper»);
 
Console.Write(«Your choice is ? — «);
int Choice = int.Parse(Console.ReadLine());
 
switch(Choice)
{
case 1:
Console.WriteLine(«Stone vs {0}», coincidental2);
 
if (coincidental2 != items[0] && coincidental2 != items[2])
Console.WriteLine(«You Win.»);
else if (coincidental2 != items[0] && coincidental2 != items[1])
Console.WriteLine(«You Lose.»);
else
Console.WriteLine(«You Draw.»);
 
break;
case 2:
Console.WriteLine(«Scissors vs {0}», coincidental2);
 
if (coincidental2 != items[1] && coincidental2 != items[0])
Console.WriteLine(«You Win.»);
else if (coincidental2 != items[1] && coincidental2 != items[2])
Console.WriteLine(«You Lose.»);
else
Console.WriteLine(«You Draw.»);
break;
case 3:
Console.WriteLine(«Paper vs {0}», coincidental2);
if (coincidental2 != items[2] && coincidental2 != items[1])
Console.WriteLine(«You Win.»);
else if (coincidental2 != items[2] && coincidental2 != items[0])
Console.WriteLine(«You Lose.»);
else
Console.WriteLine(«You Draw.»);
break;
}
 
Console.ReadKey();
public static void Main()
{
//приветствуем пользователя и даем понять, что его ждет впереди
Console.WriteLine(«Привет! Сыграем в одну игру?»);
//начинаем выполнение цикла, который закончится только если пользователь введет слово выход или нажмет enter
do
{
Console.WriteLine(«Выбирай — камень, ножницы или бумага? Если надоело играть, введи — \»выход\»");
string userChoise=Console.ReadLine();//переменная содержащая выбор пользователя
//прописываем завершение программы
if (userChoise==»выход») break;
if (userChoise==»") break;
//имитация ИИ :)
Console.Write(«А я выбираю «);
string aiChoise=» «;
Random ran=new Random();
int ai=ran.Next(3);
switch (ai){
case 0: aiChoise=»камень»;
break;
case 1: aiChoise=»ножницы»;
break;
case 2: aiChoise=»бумагу»;
break;
}
Console.WriteLine(aiChoise);
//сверяем ответы и выводим результат
switch (userChoise)
{
case «камень»:
if (aiChoise == «камень») Console.WriteLine(«Ничья.»);
if (aiChoise == «бумагу») Console.WriteLine(«Увы. Ты проиграл!»);
if (aiChoise==»ножницы») Console.WriteLine(«Поздравляю. Ты победил!»);
break;
 
case «ножницы»:
if (aiChoise == «ножницы») Console.WriteLine(«Ничья.»);
if (aiChoise==»камень») Console.WriteLine(«Увы. Ты проиграл!»);
if (aiChoise == «бумага») Console.WriteLine(«Поздравляю. Ты победил!»);
break;
case «бумага»:
if (aiChoise == «бумагу») Console.WriteLine(«Ничья.»);
if (aiChoise == «ножницы») Console.WriteLine(«Увы. Ты проиграл!»);
if (aiChoise == «камень») Console.WriteLine(«Поздравляю. Ты победил!»);
break;
}
}
while(true);
}
Console.Title= «GAME»;
Console.WriteLine(«\n \t \t\t хотите сыграть с роботом?»);
int vsegopobed =0;
int vsegogames =0;
 
do{
Console.ForegroundColor=ConsoleColor.Green;
Console.Write(«\n \n Cделайте выбор, напишите \»камень\» \»ножницы\» \»бумага\» или \»выход\» : «);
 
Console.ForegroundColor=ConsoleColor.Yellow;
string vibor =(Console.ReadLine());
int a=0;
vsegogames++;
Random random= new Random ();
int answerCPU= random.Next (3);
 
switch (vibor)
{
case «камень» : a=1; break;
case «ножницы»: a=2; break;
case «бумага»: a=3; break;
case «выход»: a=4; break;
default:
Console.WriteLine(«Вы сделали ошибку!!!»);
continue;
}
 
if ( a>3)
{
Console.WriteLine(» Программа должна закрыться, но я не знаю как это сделать))) продолжим:»);
break;
}
 
if (a==answerCPU)
{
Console.WriteLine(» У нас поровну, давай сыграем еще раз.»);
continue;
}
 
if ((a==1) && (answerCPU==3))
{
Console.WriteLine(» Робот выиграл, у него была бумага \n»);
continue;
}
 
if ((a==2) && (answerCPU==1))
{
Console.WriteLine(» Робот выигралл, у него бил камень\n»);
continue;
}
if ((a==3) && (answerCPU==2))
{
Console.WriteLine(» Робот выиграл, у него были ножницы\n»);
continue;
}
if (a==100)
{;}
else
{
vsegopobed++;
Console.WriteLine(«Поздравляю вы выиграл. У Вас было {0} попиток, но выиграли — {1} игр.»,vsegogames ,vsegopobed);
continue;
}
 
}
 
while(true);
int Z;
int P=0; int L=0;
string word, EX;
bool Выход = false;
Console.WriteLine(«Добро пожаловать в игру Камень-Ножницы-Бумага!»);
 
while (!Выход) {
Console.WriteLine(«Что у вас? (ножницы/бумага/камень)? Для выхода наберите (выход).»);
word = Console.ReadLine();
word = word.ToLower().Trim();
if (word == «выход») goto FINISH;
 
Random random = new Random();
Z = random.Next(3);
switch (Z)
{
case 0: Console.WriteLine(«Компьютер выбрал — камень!»); break;
case 1: Console.WriteLine(«Компьютер выбрал — ножницы!»); break;
default: Console.WriteLine(«Компьютер выбрал — бумага!»); break;
}
if (word == «камень»)
{
Console.WriteLine(«Ваш выбор — » + word);
if (Z == 0) { Console.BackgroundColor = ConsoleColor.Blue; Console.WriteLine(«Ничья»); }
else if (Z == 1) { Console.BackgroundColor = ConsoleColor.Green; Console.WriteLine(«Вы победили»); P++; }
else { Console.BackgroundColor = ConsoleColor.Red; Console.WriteLine(«Вы проиграли»); L++; }
}
else if (word == «ножницы»)
{
Console.WriteLine(«Ваш выбор — » + word);
if (Z == 1) { Console.BackgroundColor = ConsoleColor.Blue; Console.WriteLine(«Ничья»); }
else if (Z == 2) { Console.BackgroundColor = ConsoleColor.Green; Console.WriteLine(«Вы победили»); P++; }
else { Console.BackgroundColor = ConsoleColor.Red; Console.WriteLine(«Вы проиграли»); L++; }
}
else if (word == «бумага»)
{
Console.WriteLine(«Ваш выбор — » + word);
if (Z == 2) { Console.BackgroundColor = ConsoleColor.Blue; Console.WriteLine(«Ничья»); }
else if (Z == 0) { Console.BackgroundColor = ConsoleColor.Green; Console.WriteLine(«Вы победили»); P++; }
else { Console.BackgroundColor = ConsoleColor.Red; Console.WriteLine(«Вы проиграли»); L++; }
}
else
{
Console.WriteLine(«Ваш выбор — неизвестен программе. Хотите выйти (да/нет)?»);
EX = Console.ReadLine();
EX = EX.ToLower().Trim();
if (EX == «да») Выход = true;
}
Console.BackgroundColor = ConsoleColor.Black;
}
 
FINISH:
Console.BackgroundColor = ConsoleColor.Green;
Console.WriteLine(«Вы победили » + P + » раз!»);
Console.BackgroundColor = ConsoleColor.Red;
Console.WriteLine(«Вы проиграли » + L + » раз!»);
Console.BackgroundColor = ConsoleColor.Black;
Console.WriteLine(«Осуществляется выход, нажмите любую клавишу . . .»);
Console.ReadKey();
namespace ConsoleApplication1
{
    class CInterface  //класс отрисовки интерфеса
    {
        public string name;
        public string Title;
        public string Query;
        public string[] face;
        public CInterface()
        {
            Title = "Игра: камень-ножницы-бумага";
            Query = "Нажмите любую клавишу чтобы повторить игру или Esc, чтобы выйти...";
            face = new string[21];
            face[0] =  " -----------------------------------------------------------";
            face[1] =  "|           Игра: камень ножницы бумага                      |";
            face[2] =  " -----------------------------------------------------------";
            face[3] =  "| Введите слово: камень, ножницы или бумага..                |";
            face[4] =  "|            Ваш ход     vs     Компьютер                    |";
            face[5] =  "|                                                            |";
            face[6] =  "|                                                            |";
            face[7] =  "|                                                            |";
            face[8] =  "|                                                            |";
            face[9] =  "|                                                            |";
            face[10] = "|                                                            |";
            face[11] = "|                                                            |";
            face[12] = "|                                                            |";
            face[13] = "|                                                            |";
            face[14] = "|                                                            |";
            face[15] = "|                                                            |";
            face[16] = "|                                                            |";
            face[17] = "|           © 2014 Дементьев Владимир                        |";
            face[18] = " ------------------------------------------------------------";
            face[19] = "|                                                            |";
            face[20] = " ------------------------------------------------------------";
        }  
        public void draw()  //функция рисования пустого поля
        {
             Console.SetCursorPosition(0, 0);
             Console.Clear();
            for (int i=0;i<=20;i++)
            {
                Console.WriteLine(face[i]);
            };
             
        }
    }
 
    class CObject
    {
        public string[] obj = {"камень","ножницы","бумага"};
        public string user = null;
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            CInterface iFace = new CInterface();
            Console.Title = iFace.Title;
            Console.ForegroundColor = ConsoleColor.Yellow;
   
            ConsoleKeyInfo keyCode = new ConsoleKeyInfo(); //начинаем обрабатывать нажатия клавиш
             
            CObject game = new CObject();
             
            while (keyCode.Key != ConsoleKey.Escape)
           {
               
               Console.Clear();
               iFace.draw();
               Console.SetCursorPosition(13, 6);
               game.user = Console.ReadLine();
               Random rand = new Random();
               int i = rand.Next(3);
               Console.SetCursorPosition(33, 6);
               Console.Write(game.obj[i]);
               Console.SetCursorPosition(21, 10);
               switch (game.user)
               {
                   case "камень":
                       if (game.obj[i]=="камень")
                       {
                           Console.Write("Ничья...");
                       }
                       if (game.obj[i] == "ножницы")
                       {
                           Console.Write("Вы победили..");
                       }
                       if (game.obj[i] == "бумага")
                       {
                           Console.Write("Вы проиграли...");
                       }
                   break;
  
                   case "ножницы":
                   if (game.obj[i] == "камень")
                   {
                       Console.Write("Вы проиграли...");
                   }
                   if (game.obj[i] == "ножницы")
                   {
                       Console.Write("Ничья..");
                   }
                   if (game.obj[i] == "бумага")
                   {
                       Console.Write("Вы победили...");
                   }
                   break;
  
                   case "бумага":
                   if (game.obj[i] == "бумага")
                   {
                       Console.Write("Ничья...");
                   }
                   if (game.obj[i] == "ножницы")
                   {
                       Console.Write("Вы проиграли..");
                   }
                   if (game.obj[i] == "камень")
                   {
                       Console.Write("Вы победили...");
                   }
                   break;
 
                   default:
                   {
                       Console.SetCursorPosition(7, 10);
                       Console.Write("Вы набрали неправильно слово. Попробуйте заново.");
                   } 
                   break;
               }

               Console.SetCursorPosition(3,19);
               Console.WriteLine("Для повтора нажмите любую клавишу. Еsc - выход");
               keyCode = Console.ReadKey(true);             
              
            };
 
        }
    }
}

Решение задачи: «Консольная игра «камень-ножницы-бумага»»

textual
Листинг программы
Console.WriteLine("\n" +r + "\n");

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


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

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

13   голосов , оценка 3.846 из 5