W twoim kodzie masz wiele bardzo długich, nudnych wyglądających warunków:
if flag == 1:
while have != needed:
if type == 7:
Można je przekształcić w ich znacznie bardziej urocze <3odpowiedniki warunkowe:
if abs(flag - 1) + 2 <3:
while 3 - abs(have - needed) <3:
if 2 + abs(type - 7) <3:
Zadanie
Twoim zadaniem jest przyjęcie warunku i uczynienie go pod względem <3. Jedyne, co się liczy, to to, że nie ma między nimi <i 3.
Warunkowe będą dwa wyrazy oddzielone albo ==, !=, >, <, >=lub <=.
Wyrażenia będą zawierały tylko dodawanie, odejmowanie, jednoargumentową negację ( -something), gdzie występuje jedna +lub -przed każdą zmienną lub liczbą (z wyjątkiem pierwszej, która nie ma nic lub -przed nią).
Liczby będą [0-9]+, a zmienne będą [a-z]+. Jeśli odpowiedź wymaga użycia |x|(wartość bezwzględna x), użyj abs()funkcji. Możesz założyć, że wszystkie zmienne są liczbami całkowitymi, a wszystkie stałe liczbowe na wejściu wynoszą <1000.
Dane wyjściowe nie muszą być w najprostszej formie. Musi to być warunek taki jak powyżej, co oznacza, że są to tylko dwa wyrażenia, oddzielone jednym znakiem warunkowym, ale może również używać absfunkcji, zawierającej prawidłowe wyrażenie, a następnie zachowuje się jak zmienna pod względem ważności.
Jeśli dane wejściowe nie zawierają danych wyjściowych dla żadnej wartości zmiennej, wypisz warunek, który zawsze jest fałszywy, ale nadal pod względem <3.
Część wyzwania polega na zastanowieniu się, jak to zrobić, ale oto kroki, które należy wykonać w have != neededpowyższym:
have != needed
have - needed != 0
abs(have - needed) > 0
-abs(have - needed) < 0
3 - abs(have - needed) <3
Punktacja
To jest golf golfowy, więc wygrywa najkrótszy prawidłowy kod w bajtach.
Przypadki testowe
(Uwaga: te dane wyjściowe nie są jedynymi, ale starałem się je uprościć).
flag == 1
abs(flag - 1) + 2 <3
have != needed
3 - abs(have - needed) <3
type == 7
2 + abs(type - 7) <3
x > y
3 - x + y <3
x + 5 < -y
x + 8 + y <3
x + 6 <= y
x + 8 - y <3
-x >= y + 3
x + y + 5 <3
x < x
3 <3
# Unsimplified; both would be valid outputs.
x - x + 3 <3