Chat:Ru/2021-06-20
tutubalin: чтобы из неких входных данных делать объекты используется Factory
tutubalin: а внутри неё уже может использоваться Builder
TTeaLL: если я print() пишу в стобик 2 принта
TTeaLL: и игра считывает в одном раунде 1 принт в другом другой, это не норма?
TTeaLL: In each turn, the player can perform more than one action. They must be separated by a semicolon. For instance, to perform the three previously showed actions in the same turn, the player must provide the following multi-action: “1 100 50; 3 -100 -10; 5 0 0”.
TTeaLL: мне нужно вывести принтом по 3 параметра, но я чёт не понимаю как это сделать 1 ринтом, он не режет если в нудном порядке через запятую перечислить все параметры
wlesavo: They must be separated by a semicolon. через точку с запятой
wlesavo: сами параметры через пробел, там же даже пример иесть
TTeaLL: print(spear spear_x spear_y;sword1 sword_x sword_y;cav1 cav_x cav_y)
TTeaLL: пишет что это неверный синтаксис
NeAlyssa: используй sep и end в принте, почитай про них print(a,b,c, sep = ' ', end = ';') print(a,b,c, sep = ' ', end = ';')
NeAlyssa: print(a,b,c, sep = ' ', end = '.')
735487: только ему наоборот end не надо а sep=';'
NeAlyssa: sep вставит между переменными ему тогда и они все будут через ;
NeAlyssa: но sep = ' ' не обязателен да, он по умолчанию такой
NeAlyssa: лучше почитай, это легкая но удобная штука, вроде она тебе и нужна
TTeaLL: print(spear spear_x, sep=';', spear_y;sword1 sword_x sword_y, sep=';', cav1 cav_x cav_y)
NeAlyssa: а тебе обязательно одним принтом? на один принт можно использовать только один sep и end
NeAlyssa: print(a,b,c, end = '; ') print(a,b,c, end = '; ') print(a,b,c, end = '.') Чтобы получить строку, как из примера, вот так можно написать
TTeaLL: print(spear, spear_x, spear_y, end=';') print(sword1, sword_x, sword_y, end=';') print(cav1, cav_x, cav_y, end=';')
a5kin: попробуй последний просто print(cav1, cav_x, cav_y)
NeAlyssa: пробел добавь в end, не ';' a '; ', в примере там пробелы между трйоками данных
a5kin: в конце должен быть перенос строки, а не ;
TTeaLL: так, последнее как написать
NeAlyssa: в примере оно в одном строку введено
TTeaLL: може реально в один принт ввести
NeAlyssa: из последнего вообще попробуй end убрать как и написали
TTeaLL: print(spear, spear_x, spear_y, sep=' ', end='; ') print(sword1, sword_x, sword_y, sep=' ', end='; ') print(cav1, cav_x, cav_y, sep=' ')
TTeaLL: тут чёт не отображается
TTeaLL: короче не знаю, приколы с принтом
NeAlyssa: сеп по умолчанию равен пробелу, его можно вообще не писать
NeAlyssa: а откуда вообще это задание
TTeaLL: https://www.codingame.com/contribute/view/486222077fe22e3aa6bcdc0f729dd46223bb
a5kin: там вроде разделитель между экшнами " ; "
TTeaLL: верно, но как это написать
a5kin: пробелы с обеих сторон от ;
TTeaLL: print(spear, spear_x, spear_y, sep=, end=' ; ') print(sword1, sword_x, sword_y, sep=, end=' ; ') print(cav1, cav_x, cav_y, sep=)
TTeaLL: это конечно прикольно что есть проблемы с выводом
NeAlyssa: сепы убери
NeAlyssa: нет, я так понимаю в конце перенос строки, то есть ничего не ставь
TTeaLL: но без сепа как исзбиваться от запятых?
TTeaLL: они же через пробел должны быть
NeAlyssa: запятые не будут отображаться, это просто перечисление параметров функции print
NeAlyssa: по умолчанию sep равен пробелу и все параметры print указанные через запятую отображаются через пробел
TTeaLL: print(spear, spear_x, spear_y, end=' ; ') print(sword1, sword_x, sword_y, end=' ; ') print(cav1, cav_x, cav_y)
TTeaLL: по отельности print(x, y, id) в работает, просто через раз
NeAlyssa: а твой вывод последний сам по себе выглядит как то что прописано в условии?
You can send more than one order (without limit) in one turn separating them with ";", for example "2 0 300 ; 4 100 0"
a5kin: значит либо в данных, которые ты выводишь проблема, либо движок игры бажный :)
TTeaLL: нет, данные которые вывожу норм, потом что по отдельности они работали
TTeaLL: не совсем понял, что значит последний сам по себе выглядит как то что происано в условии?
TTeaLL: http://chat.codingame.com/pastebin/51bdf938-2991-49af-9b59-f3de7d191620
NeAlyssa: это то, что должно получаться да?
NeAlyssa: http://chat.codingame.com/pastebin/7c7990fc-5b0e-45d2-b891-b32b6dab95b6
NeAlyssa: ой, там конечно по одному пробелу только
TTeaLL: 1 125 555; 2 -125 555; 3 -525 655; 4 125 555
TTeaLL: а дальше уже игра прописывает столбиком кто куда
TTeaLL: вообще он бота выклывал на джаве в сурсе, но я джаву не знаю и при попытке разобраться я понял, что это надо делать основательно
a5kin: а что игра пишет на твой ход?
735487: да нахера ты ему в end советуешь ставить если ему разделить вывод ими надо. это разделитель же, sep
735487: вобщем полез почитать что там реально надо выводить
735487: таки я не прав и надо через end но кроме последнего либо в строку заджойнить
NeAlyssa: :upside_down:
TTeaLL: вот с последним вариантом, что я скинул ничего
TTeaLL: просто timeout правда дальше 2 такта игра не идёт
TTeaLL: System.out.println("0 0 0"); System.out.println(finalString); System.out.println(type + " " + x + " " + y);
TTeaLL: в джаве он вот так выводит
TTeaLL: ну это строки из разных частей кода
Uljahn: лучше ходы добавлять в список, а потом в конце выводить одним принтом, там и заджойнить можно как надо, без сепов и эндов, и отдебажить проще в случае чего, и не напутаешь с двойным выводом
TTeaLL: да я бы с радостью, но джоином не особо владею, и не понятно можно ли так
Uljahn: самое время научиться, там не очень сложно
Uljahn: ещё можно про f-strings глянуть, эта штука сильно повышает удобство построения вывода
Uljahn: (т.н. строковая интерполяция)
Uljahn: как можно больше экспериментируй с новыми фишками, которые изучаешь, так их лучше запомнишь и поймёшь, в каких ситуациях они могут пригодиться, какие удобства можно извлечь из них
Uljahn: я когда начинал учить питон (до этого давным-давно на паскале кодил), очень часто офигевал - "как же я раньше жил без этой фичи?"
a5kin: а потом, когда кодишь на других языках после питона, офигеваешь: "и как мне теперь жить без этой фичи?"))
Uljahn: когда пробовал пазлы на плюсах да на джяве решать, то как дело доходит до дебага (массив какой-нить вывести или хэшмэп), то сразу "wtf, почему так сложно?!" - питон расслабляет, от синтаксического сахара уже зависимость
Uljahn: ну и производительностью приходится расплачиваться за удобства
Uljahn: т.е. тут сахар уже даже не синтаксический, в коде его нет, он под капотом
a5kin: сахар в образе мышления, который позволяет лаконично построить определение для сложных вещей
a5kin: мне кстати скала еще в этом плане оч понравилась
a5kin: может руби тоже зайдет, говорят он бомба
Uljahn: тогда уж сразу Crystal
a5kin: о, спасибо за наводку, даже не слышал о нем)