Space Python Ładowanie Pythona…

Siatka odłamków

Napisz kodŚredni 2 etapy

Przed każdym manewrem podnoszenia orbity radar skanuje sektor przed statkiem i odsyła małą mapę: każdy wiersz to napis, # oznacza odłamki, a . wolną przestrzeń. Zespół dynamiki lotu potrzebuje dokładnego położenia każdego odłamka.

Przeszukaj siatkę w poszukiwaniu odłamków, a potem znajdź kolumny, przez które statek mógłby przelecieć.

Znajdź każdy #, wiersz po wierszu, i wypisz jego wiersz i kolumnę, obie liczone od 0, tak jak indeksy. Potem wypisz, ile ich jest:

Odłamki w wierszu 0, kolumnie 2
Odłamki w wierszu 2, kolumnie 5
Odłamki w wierszu 3, kolumnie 0
Trafienia: 3

Przejdź pętlą po wierszach z enumerate(grid), a w tej pętli po znakach wiersza z enumerate(line).

Znajdź każde trafienie
Działa dla każdego skanu

Ukończ etap 1, aby odblokować ten etap.

Statek może przelecieć tylko przez kolumnę bez odłamków w żadnym wierszu. Po trafieniach wypisz wolne kolumny albo brak:

Odłamki w wierszu 0, kolumnie 2
Odłamki w wierszu 2, kolumnie 5
Odłamki w wierszu 3, kolumnie 0
Trafienia: 3
Wolne kolumny: 1, 3, 4, 6, 7

Odwróć pętle: zewnętrzna przechodzi po numerach kolumn, range(len(grid[0])), a wewnętrzna po wierszach, sprawdzając line[column]. Flaga mówi, czy kolumna była zablokowana.

Znajdź wolne kolumny
Działa dla każdego skanu
Nie jesteś zalogowany, więc postęp zostaje tylko w tej przeglądarce. Zaloguj się, aby go zapisać i korzystać z podpowiedzi oraz rozwiązań.

Podpowiedzi

Pętla for z enumerate i range

enumerate() dodaje numerację do elementów. range() generuje sekwencję liczb. Można określić start, stop i krok.
petla-for-enumerate-range.py
# enumerate() - indeks + element

missions = ["Apollo 11", "Apollo 12", "Apollo 13"]

for number, mission in enumerate(missions, start=1):
    print(f"{number}. {mission}")

# range() - generowanie sekwencji liczb
print("\nKwadraty liczb:")
for n in range(1, 6):
    print(f"{n}^2 = {n**2}")

# range z krokiem
print("\nLata misji (co 5 lat):")
for year in range(2020, 2041, 5):
    print(year)
Otwórz cały przykład
script.py
PythonWiersz 1, kol. 1Spacje: 4
Ładowanie środowiska Pythona…

Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].