Хочу создать игру в консоли на С# - C#
Формулировка задачи:
[/CSHARP]Игра камень ножницы бумага.Суть игры Компилятор рандомно компилирует числа и со постовляет с твоими.К примеру Камень - 0;Ножницы-1;Бумага-2.При вода твоего числа он наугад ставит свое.
Решение задачи: «Хочу создать игру в консоли на С#»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace RPC
{
class Program
{
public enum SCPType { Stone = 1, Scissors = 2, Paper = 3 } // Перечисляемый тип: камень, ножницы, бумага
/// <summary>
/// Получение текстового наименования хода по его значению
/// </summary>
/// <param name="scpType">ход</param>
/// <returns>текстовое наименование хода</returns>
private static string GetTypeName(SCPType scpType)
{
string res = String.Empty;
switch (scpType)
{
case SCPType.Stone:
{
res = "Камень";
break;
}
case SCPType.Scissors:
{
res = "Ножницы";
break;
}
case SCPType.Paper:
{
res = "Бумага";
break;
}
}
return res;
}
/// <summary>
/// Сгенерировать ход компьютера
/// </summary>
/// <returns>возвращает выбранный компьютером ход</returns>
private static SCPType GenerateCPUStep()
{
Random r = new Random();
return (SCPType)(r.Next(1, 4));
}
/// <summary>
/// Проверка на победу пользователя над компьютером
/// </summary>
/// <param name="user">ход пользователя</param>
/// <param name="cpu">ход компьютера</param>
/// <returns>возвращает признак победы пользователя над компьютером</returns>
private static bool Victory(SCPType user, SCPType cpu)
{
bool res = false;
res = (
(user == SCPType.Scissors && cpu == SCPType.Paper) ||
(user == SCPType.Stone && cpu == SCPType.Scissors) ||
(user == SCPType.Paper && cpu == SCPType.Stone)
);
return res;
}
static void Main(string[] args)
{
SCPType cpu = GenerateCPUStep(); // компьютер выбирает ход
Console.WriteLine(String.Format("Выберите своё значение: {0} Камень: 1 {0} Ножницы: 2 {0} Бумага: 3 {0} И нажмите Enter", Environment.NewLine));
int intUser = 0; // ход юзера
while(intUser < 1)
{
string strUserValue = Console.ReadLine();
int.TryParse(strUserValue, out intUser);
if (intUser < 0 || !(intUser > 0 && intUser < 4))
Console.WriteLine("Необходимо ввести числовое значение от 1 до 3");
}
SCPType user = (SCPType)intUser;
if (cpu == user)
Console.WriteLine(String.Format("Ничья. Вы вместе с компьютером выбрали {0}", GetTypeName(cpu)));
else if (Victory(user, cpu))
Console.WriteLine(String.Format("Вы победили. Вы выбрали {0}, а компьютер {1}", GetTypeName(user), GetTypeName(cpu)));
else
Console.WriteLine(String.Format("Вы проиграли. Вы выбрали {0}, а компьютер {1}", GetTypeName(user), GetTypeName(cpu)));
Console.WriteLine("Нажмите ввод, чтобы выйти");
Console.ReadLine();
}
}
}