Професионална програма
Loading...
+ Нов въпрос
RoYaL avatar RoYaL Trainer 6845 Точки

Card Wars (Telerik 24.06.2013) проблем с решение

Здравейте,

 

Заиграх се с тази задачка:

http://bgcoder.com/Contests/Practice/DownloadResource/451

Но имам проблем, не точно с решаването й, а по-скоро с постигането на всички верни отговори.

 

Тези, които са дадени в примера ги постигам. И четирите. Но като я пусна в bgcoder получавам 43 от 100, и грешките са Incorrect answer. Т.е. може би не бъркам никъде типове и т.н.?

 

Опитах се да я реша по различен от стандартния начин и да си направя обекти за всеки елемент в задачата, в този случай:

Player; Game; Cards и Result - като последния е отговорен за това да изчислява точките през конкретния рунд и след това в края на играта, където смятам, че ми е и проблема.

Ето го решението ми в Paste bin:

http://pastebin.com/VqGJuvDi

 

Ако някой има желание да го разгледа.

 

Като цяло от условието не става ясно, ако се играят примерно 100 рунда и в 5-6 от тях се падне "Х" карта и на двамата какво точно трябва да стане, а и няма такъв пример.

 

Благодаря :)

Тагове:
4
Programming Basics
RoYaL avatar RoYaL Trainer 6845 Точки
Best Answer

Благодаря ви много за отговорите и за решенията, изясниха ми се нещата, това не я прави по-трудна за решаване, но наистина я прави трудна за разбиране от пръв поглед.

 

Надявам се на изпита да не е така?

 

Докато СофтУни претендират, че безсмислената информация симулирала среда, в която клиента ти казва, че "днес докато беше облачно навън и гледах тревата, ме осени идеята, че искам програмата да прави еди какво си", то всъщност в тази среда ти имаш възможността да говориш с клиента или поне да му мейлнеш обратно за нещата, които не си разбрал. А това се случва често в реална среда.

 

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

3
dentia avatar dentia 362 Точки

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

1
XmUrF avatar XmUrF 363 Точки

Ще питаме асистентите, няма друг начин :).

0
kiko144 avatar kiko144 795 Точки

Ако се падне Х на един печели играта за всички рундове, без значение от точките! Ако се падне и на двамата, се добавят по 50 точки и на 2-мата към общите точки! 

1
RoYaL avatar RoYaL Trainer 6845 Точки

Въпросът ми е:

 

За рунд 1 примерно, тегля

A A X, а той тегли 2 2 X

Колко стават точките ни? 50 на 50 или 52 на 70?

 

И ако стават 52 на 70, пак никой не печели?

 

3
kiko144 avatar kiko144 795 Точки

Аз мисля,  че ще станат 20 на 2 щото X-a ти дава точки към крайните резултати не към резултата от самият рунд.. Прочети самото условие , X i Y ти работят с "Player score" а Z с " Current player's score"

1
RoYaL avatar RoYaL Trainer 6845 Точки

А ако е само един рунд? Тогава в края на рунда, преди да се обяви кой е победител, трябва да се добавят по 50 точки и на двамата, така ли?

2
georgimanov avatar georgimanov 107 Точки

Здравей,

 

Прилгам ти решението на колега, които като гледам доста се е помъчил. Като цяло задачата е зададена доста объркващо и от там идват доста от проблемите. http://firewonderland.wordpress.com/2013/08/04/problem-3-card-wars-batka/

Аз лично към момента изкарвам 43/100. Имам още да чистя.

 

Успех!

 

1
XmUrF avatar XmUrF 363 Точки

Наистина тази задача е доста объркана и според мен условието й има поне две грешни неща. И аз така бях направил играта и изкарвах 62/100, като нямах никаква идея къде греша. Порових се малко във форумите на Телерик и ето какво излезна:

 

1. Ако и двамата имат X карта, и двамата получават по 50 точки към totalscore-a, но това не значи, че текущото раздаване завършва наравно!!! Това тук накрая е много важно. Тоест сравняват се и точките до момента и ако има играч, който има повече, освен 50-те точки от X картата получава и тези до момента, като  и победите му стават + 1.

 

2. В условието пише, че при равен резултат се отпечатват both player scores. Оказва се, че не искат both ами само на единия. Ей тази "малка" подробност ми беше изяла 31 точки.

 

Това бяха моите проблеми с решението. Иначе другото, където може да се сгреши е при Y и Z карти. Те се отразяват на totalscore-a, а не на currentscore-a, като е важно да се отбележи, че текущите точки все още не са се добавили към крайните. Текущите точки винаги се добавят най-накрая, при проверка на кой е победил в рунда.

0
dim4o avatar dim4o 289 Точки

Аз потроших доста време по тази задача, стигнах до 86 точки и я зарязах, защото се изнервих. Просто правилата не могат да се тълкуват еднозначно. Накрая гледах тестевете и успях да разбера отчасти какво точно се иска. Някои неща си останаха обаче неясни. Смятам след време като ми мине афекцията да я атакувам пак. Иначе задачката изглеждаше тривиална и съм сигурен, че ако се редактира условието повечето хора няма да имат проблем. Ако някой я е решил на 100% ще бъде много полезно да пренапише условието, така както го е разбрал и да го пусне тук.

0
XmUrF avatar XmUrF 363 Точки

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

1