Temat: Dokładniejsze wyjaśnienie kolorowego węża
Cześć!
Mam parę pytań co do tego zadania. Nie rozumiem z niego większości. Mam użyć jakiegoś modułu GUI jeśli chodzi o Pythona, czy jak? Nie wiem o co chodzi z rzeczami tego typu: „Z w′j k′j”. A może mam zrobić tak, żeby ktoś wpisał dane do konsoli, a następnie ma się wyświetlić okno z animacją? Jestem zmieszany. Czy można prosić o jakiś schemat blokowy tego zadania dla ułatwienia lub jakiś plik wykonywalny dla systemu Windows z przykładem? Mam jeszcze jakiś pomysł z wideo na YouTube, które by to zaprezentowało?
Mam parę pytań co do tego zadania. Nie rozumiem z niego większości. Mam użyć jakiegoś modułu GUI jeśli chodzi o Pythona, czy jak? Nie wiem o co chodzi z rzeczami tego typu: „Z w′j k′j”. A może mam zrobić tak, żeby ktoś wpisał dane do konsoli, a następnie ma się wyświetlić okno z animacją? Jestem zmieszany. Czy można prosić o jakiś schemat blokowy tego zadania dla ułatwienia lub jakiś plik wykonywalny dla systemu Windows z przykładem? Mam jeszcze jakiś pomysł z wideo na YouTube, które by to zaprezentowało?
Tutaj jest wszystko wytłumaczone
https://youtu.be/ugjX7BUshgM
https://youtu.be/ugjX7BUshgM
Dziękuję. :-)
W takim razie rozumiem, że do tych zadań wystarczy tylko konsola, ale mam jedno pytanie. Na tym webinarium ten nie wiem jak go nazwać wkleił w jedno wejście wszystko na raz, a w pythonie się tak nie da. W takim razie muszę to zrobić w kilku wejściach? Szczerze mówiąc to nadal nie rozumiem o co chodzi z tym „Z w′j k′j” i nie wiem co znaczą te liczby z 0, 1 i kropkami. Czy można prosić o osobiste wytłumaczenie?
Napis "Z w'_j k'_j" oznacza to zapytanie czy jakiś fragment węża znajduje się w polu w wierszu w'_j i kolumnie k`_j . Jeśli nie, wypisz -1. Jeśli tak, to wypisz liczbę oznaczającą kolor tego fragmentu.
Poradziłem już z tym sobie i rozumiem całą treść zadania. Mimo to dziękuję. :-) Jednak pojawił się nowy problem. W webinarium ten "nie wiem jak go nazwać" użył do tego zadania C++, a już jak skończył pisać program to w jedno wejście skopiował i wkleił całe dane. W Pythonie się tak nie da, można tylko oddzielić końce linii za pomocą "\n". Ciekawi mnie tylko to jak to jest sprawdzane, czy każda linia danych jest wpisywana w jedno wejście, czyli wszystkie dane w kilka wejść, czy w wymagane jest jedno wejście, a serwer wszystko sobie oddzieli znakiem "\n". Chociaż myślę, że raczej to pierwsze, ponieważ wprowadzana przez użytkownika jest liczba kroków, więc chyba raczej mało prawdopodobne aby użyć tego tylko w jednym wejściu, ale pewny nie jestem. Prawdziwy programista jest zdolny do wszystkiego. :-)
W dodatku pojawia się też pytanie, czy na przykład pierwsza linia (6 5 14) z przykładu będzie zapisana w jednym wejściu, czy w trzech różnych?
Usuń pythona, przeproś mame
O czym ty w ogóle mówisz, jakiej ty konsoli używasz co nie pozwala wklejać więcej niż jednej linii tekstu
Używam konsoli Pythona. Gdy wcisnę prawy klawisz myszy to menu Mo się nie pojawia, a jak nacisnę Ctrl + V to wpisuje mi się ^V. Jednak jak użyję Shella z IDLE to mogę wkleić kilka linii tekstu w jedno wejście, ale do zmiennej trafia tylko ta pierwsza linia. Podkreślam, w <jedno> wejście, a nie w kilka.
Miałem oczywiście na myśli terminal, po angielsku to znaczy to samo i się pomyliłem. Próbowałeś Ctrl+Shift+V ?
Próbowałem i wynik ten sam. Podkreślam jeszcze raz, że mam na myśli wklejenie kilku wierszy tekstu w jedno wejście (jednego inputa). Czy to jest w ogóle możliwe? Moje pytanie po prostu brzmi, czy w programie ma być kilka inputów, czy tylko jeden?
Spójrz na przykład:
>>> b = []
>>> a = input()
6 5 14
1 3 1
5 1 5
2 3 2
3 4 1
3 5 3
Z 1 1
Z 1 2
P
P
D
D
P
Z 3 5
P
Z 3 5
D
Z 3 5
L
Z 3 5
>>> a
6 5 14
1 3 1
5 1 5
2 3 2
3 4 1
3 5 3
Z 1 1
Z 1 2
P
P
D
D
P
Z 3 5
P
Z 3 5
D
Z 3 5
L
Z 3 5
>>> b.append(a)
>>> b
['6 5 14\n1 3 1\n5 1 5\n2 3 2\n3 4 1\n3 5 3\nZ 1 1\nZ 1 2\nP\nP\nD\nD\nP\nZ 3 5\nP\nZ 3 5\nD\nZ 3 5\nL\nZ 3 5']
Czy to tak mniej więcej będzie sprawdzane i będzie działało? To tylko przykład. Nie mam na myśli tego, że ten snake ma tak działać.
Spójrz na przykład:
>>> b = []
>>> a = input()
6 5 14
1 3 1
5 1 5
2 3 2
3 4 1
3 5 3
Z 1 1
Z 1 2
P
P
D
D
P
Z 3 5
P
Z 3 5
D
Z 3 5
L
Z 3 5
>>> a
6 5 14
1 3 1
5 1 5
2 3 2
3 4 1
3 5 3
Z 1 1
Z 1 2
P
P
D
D
P
Z 3 5
P
Z 3 5
D
Z 3 5
L
Z 3 5
>>> b.append(a)
>>> b
['6 5 14\n1 3 1\n5 1 5\n2 3 2\n3 4 1\n3 5 3\nZ 1 1\nZ 1 2\nP\nP\nD\nD\nP\nZ 3 5\nP\nZ 3 5\nD\nZ 3 5\nL\nZ 3 5']
Czy to tak mniej więcej będzie sprawdzane i będzie działało? To tylko przykład. Nie mam na myśli tego, że ten snake ma tak działać.
a to ciekawe, u mnie input() po prostu wczytuje jedną linię. Najlepiej zrobisz, jeśli po prostu nie będziesz używał input() i print(), i tak jest są za wolne na olimpiadę
w sensie będziesz używał stdin i stout. Było to gdzieś napisane w oficjalnych radach do olimpiady, albo może olimpiady juniorów, nie pamiętam
A czy stdin i stdout wczytują tylko jedną linię, czy mogą wczytywać kilka?
I gdzie dokładnie mogę znaleźć o tym informacje?
w google
Ok, ale czy to jest osobny moduł? Jeśli tak to czy będzie on zainstalowany na serwerze?
no to jest moduł sys
jeśli cię dobrze rozumiem, to potrzebujesz użyć funkcji sys.stdin.read().split()
Dzięki.