Софтуерно Инженерство
Loading...
+ Нов въпрос
krokicha avatar krokicha 76 Точки

[Exam Problems] Programming Basics Exam 29 March 2015 Morning - Задача 2 - Basket Battle

Мисля, че в Judge-а при един от тестовете има грешка!

В задачата е казано:

"Each round consists of the two players shooting."

...

"A player can’t make more than 500 points in the game. For example if a player has 450 points and he scores successfully 90 points, the player stays with 450 points after that round."

Ето това е моят код:

http://pastebin.com/XxDBcXHA

На ред 39 и 40 (след края на рунда) ако точките на играчите са надхвърлили 500 отнемам последно спечелените точки, както се изисква в условието на задачата.

Но в Judge-а ми дава 90 точки - дава грешен отговор на тест 2.

Като преместя 39-я ред след 28-я (след "if (isWiner) break; "- за 1-я играч) ми дава 100 точки. 

Само че според мен края на рунда е там където се затваря цикъла който брои рундовете, а не след като е играл 1-я играч!

kiso_blg avatar kiso_blg 56 Точки

Пропуснал си един важен ред от условието.

If someone reaches 500 points, the game stops and your program should break and print the output.

0
krokicha avatar krokicha 76 Точки

Не съм го пропуснал. На ред 28 и 37 ("if (isWiner) break;")се осъществява прекъсването ако текущия играч е достигнал 500 точки. Въпросът е, че ако е 2-я играч в текущия гейм а 1-я е надхвърлил 500 точки гейма се прекъсва и не се стига до края му т.е. точките на прехвърлилия 1-ви играч не се намалят според условието на задачата. Общо взето има момент на тълкование. Мисля, че е трябвало да се каже, че точките се изваждат (когато надхвърлят 500) след изпълненито на текущия играч а не в края на гейма.

0
Filkolev avatar Filkolev 4428 Точки

Точките не се изваждат, а просто не се добавят ако сумата ще надхвърли 500. Това е особеност на твоята имплементация, а не на условието.

0