[Challenge][Intermediate to Advanced] Guess The Number [week#4]
След кратко закъснение (еуфорията покрай изпита) пускам следващата задача от раздел [Challenge], тъй като все още няма нова група от „Ниво 0“, избраната задача ще бъде съобразена само с настоящето ниво [C# Advanced] и колегите от по - горните нива. Опитал съм се да подбера нещо, което ще бъде интересно, забавно и в същото време голямо предизвикателство.
Задача: Създайте играта „Познай цифрата, която съм си намислил“ (Guess the number).Предполагам всеки знае тази игра (а за тези които не я знаят ето линк) един от играчите си намисля цифра от 1 до 100, и неговия опонент трябва да отгатне цифрата в рамките на определен брой опити, като след всеки опит получава „Hint“, - „на горе“ и „на долу“, за да насочи играча дали избраната от него цифра е по - малка или по - голяма от целта и – „студено“ , „топло“, „по-топло“, „горещо“ в зависимост от това колко близо е избраната цифра до целта. А ето и важния момент в задачата: трябва да направите играта, така че и играчът(потребител) и играчът компютъра(AI) да имат правото да избират цифрата и да се опитат да познаят цифрата на опонента си (при еднакви условия), с други думи трябва да си създадете AI (много просто AI), което да е вашият компютърен играч. И да бъде адекватен противник.
Тъй като вече сме „Ниво 1“, и от нас се очаква да можем да се справяме с класове, наследяване и т.н. за това съм подбрал тази задача. Следващите редове код са част от моето решение (но всеки е свободен да създаде своя интерпретация) на задачата, поствам ги с единствената цел да насоча хората, които се чудят от къде да започнат.
abstract class Player
{
Some code.
}
sealed class HumanPlayer : Player
{
Some code.
}
sealed class JarvisAI : Player
{
The computer player’s name is Jarvis
in my case.
}
private class GameLogic
}
More code here.
{
class GuessTheNumber
{
Main class.
}
Можете да решите задачата на всеки език за програмиране, който сметнете за удачен и ще ви бъде по-лесно да достигнете до крайния резултат.
Успех!!!
Вземам си бележка напълно прав си. За следващата задача от раздела ще се постарая да бъде съобразена с това, което учим в момента. Благодаря за критиката, много е важно да има повече такива коментари за да мога да преценя какви задачи да подбирам за напред.