Най-задълбочената програма по софтуерно инженерство в България
Loading...
+ Нов въпрос
DHristoskov avatar DHristoskov 211 Точки

[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.

}

Можете да решите задачата на всеки език за програмиране, който сметнете за удачен и ще ви бъде по-лесно да достигнете до крайния резултат.

Успех!!!

Тагове:
5
C# Advanced 01/05/2015 17:32:27
Inspix avatar Inspix 51 Точки

Здравей, отдавна гледам твоите предизвикателства, но все се срамувам да си покажа творенията :D Надявам се да съм разбрал добре задачата и да съм се справил, че набързо я написах :)


Да добавя малък дисклеймър, че се занимавам с това от около 2 месеца(1 месец сериозно), така че със сигурност решението не е от най-добрите, но пък ми е забавно да правя такива "игри" и ще бъда благодарен на всякакви препоръки и съвети :)

Guess The Number

Само да отбележа, компютъра нарочно прави "глупави" грешки от време на време, че иначе беше безгрешен.

 

Продължавай с интересните задачки, дано има повече участници занапред! :)

 

Поздрави!

3
09/05/2015 02:46:37
DHristoskov avatar DHristoskov 211 Точки

От това, което виждам не мисля, че има защо да се срамуваш и притесняваш. За две месеца работа със C# това изглежда pretty impressive. А и интерпретацията на решението е единствено в твоите ръце, можеш да го разнообразиш или съкратиш според твоите възможности.

Браво и благодаря за положения труд.

 

1
03/05/2015 10:11:51
TonislavAtanasov avatar TonislavAtanasov 86 Точки

"Тъй като вече сме „Ниво 1“, и от нас се очаква да можем да се справяме с класове, наследяване и т.н."

Тук определено не съм съгласен. Никой не очаква от нас да се "справяме" с тези неща. Това е материал от курса по ООП, който предстои. В последната лекция от Basics курса само загатнахме какво е то клас и обект, да не говорим за наследяване, интерфейс, полиморфизъм, капсулация и т.н. за които е възможно голяма част от хората в Ниво 1 да не са чували дори (и в това няма нищо срамно).

Разбира се, може да има колеги, които имат понятие. Може да има и по-напреднали или хора които се занимават от повече време и разбират добре ООП, но никой в момента не "очаква" да можем да решаваме подобни проблеми.  В края на следващия месец - да, но сега? Надали.

Поздрави!

4
DHristoskov avatar DHristoskov 211 Точки

Вземам си бележка напълно прав си. За следващата задача от раздела ще се постарая да бъде съобразена с това, което учим в момента. Благодаря за критиката, много е важно да има повече такива коментари за да мога да преценя какви задачи да подбирам за напред.

2
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.