Loading...

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

inkarnasion avatar inkarnasion 278 Точки
Best Answer

Заповядай, преработих ти кода, сега дава 100/100 в джъдж.

https://pastebin.com/YTtguf3k

0
01/09/2019 13:30:22
Jimipage avatar Jimipage 7 Точки

Егати обърканата разбота  :D

0
inkarnasion avatar inkarnasion 278 Точки

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

while 
(!command.equals("End of game")){}

Или докато командата е различна от тази, да се изпълнява кода който си написал, и в случай че пполучиш тази команда тогава прекъсваш всичко и принтираш даден резултат, до тук беше обяснението защо се ползва отделна променлива за вход, въпреки че не е указана в условието. След това в условието е следното:

Вход

Първоначално се четат два реда:

  • Име на първия играч - текст
  • Име на втория играч - текст

След това, до получаване на команда "End of game", се четат многократно по два реда:

  1. Карта, която дава първият играч- цяло число в интервала [2…9]
  2. Карта, която дава вторият играч -  цяло число в интервала [2…9]

 

Което означава че ти имаш стринг за имената и след това получаваш само числа обаче в един момент може да получиш пак стринг за вход който да прекрати цялата операция, и така както ти си написал кода той ще ти гръмне защото се опитваш да четеш стринг а имаш  Integer.parseInt(scanner.nextLine()):

За това съм сложил 

Integer.parseInt(command);

 така казано метода " парсва" string към Integer, или ти си подаваш числа но ако в един момент получиш стринг команда тогва тоззи метод го обръща и няма да ти гръмне с :

Exception in thread "main" java.lang.NumberFormatException: For input string: ""

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

int diffOne = cardPlayerOne - cardPlayerTwo;
int diffTwo = cardPlayerTwo - cardPlayerOne;

Надявам се че си разбрал това което съм ти написал.Поздрави.

0
Jimipage avatar Jimipage 7 Точки

Много благодаря за обяснението! Пускам дебъга да си го прегледам ;)

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