Skip to content

Instantly share code, notes, and snippets.

@thevops
Created January 16, 2023 18:07
Show Gist options
  • Select an option

  • Save thevops/6466e2aa3955cbe1adc5179e584f5f9e to your computer and use it in GitHub Desktop.

Select an option

Save thevops/6466e2aa3955cbe1adc5179e584f5f9e to your computer and use it in GitHub Desktop.
# dla testów
# ta część kodu nadpisuje wbudwaną funkcję input()
# i podaje programowi dane udając użytkownika
# ten fragment wystarczy zakomentować
# i program wróci do normalnego trybu działa
# czyli będzie pytał użytkownika o parametry
def input_values():
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'
]
for i in a:
yield i
g = input_values()
def input(text):
return g.__next__()
#####################################
def graj(mapa, lista_polecen):
glowa_w = 0
glowa_k = 0
snake_wk = [
[glowa_w, glowa_k]
]
snake_c = [0]
# wykonywanie poleceń
for polecenie in lista_polecen:
polecenie = polecenie.split()
if polecenie[0] == "Z":
wiersz = int(polecenie[1]) - 1 # -1 bo indeksujemy od zera
kolumna = int(polecenie[2]) - 1
if [wiersz, kolumna] in snake_wk:
i = snake_wk.index([wiersz, kolumna])
print("Wynik: ", snake_c[i])
else:
print("Wynik: ", "-1")
continue
elif polecenie[0] == "G":
glowa_w = glowa_w - 1
elif polecenie[0] == "D":
glowa_w = glowa_w + 1
elif polecenie[0] == "L":
glowa_k = glowa_k - 1
elif polecenie[0] == "P":
glowa_k = glowa_k + 1
else:
print("Błędne polecenie")
exit(1)
# wykonaj ruch
# sprawdź czy na nowym miejscu jest przekąska
if mapa[glowa_w][glowa_k] != ".":
# jest przekąska - zjedz ją - przesun głowę na pozycję przekąski
przekaska = mapa[glowa_w][glowa_k]
snake_wk.append([glowa_w, glowa_k])
snake_c.append(przekaska)
else:
# nie ma nic - przesuń całego węża
# weź wszystko oprócz ogona
snake_wk = snake_wk[1:]
# dodaj nową głowę
snake_wk.append([glowa_w, glowa_k])
def main():
mpn = input("Podaj m p n: ")
m = int(mpn.split()[0]) # wielkość planszy (liczba kolumn = liczba wierszy)
p = int(mpn.split()[1]) # liczba przekąsek
n = int(mpn.split()[2]) # liczba polecen
# p - liczba wierszy
# tablica 2d - współrzędne przekąski i jej kolor jako wartość
# tablica wypełniona kropkami
p_wkc = [['.' for k in range(p)] for w in range(p)]
for i in range(p):
_wkc = input("Podaj wspórzędne oraz kolor przekąski (w k c): ")
w = int(_wkc.split()[0]) - 1 # -1 bo tablica jest indeksowana od zera
k = int(_wkc.split()[1]) - 1
c = str(_wkc.split()[2])
p_wkc[w][k] = c
# n - liczba polecen do obsłużenia
n_polecenia = [] # lista stringów
for i in range(n):
_polecenie = input("Podaj polecenie: ")
n_polecenia.append(_polecenie)
# print wszystkiego
print("mpn:", mpn)
print("m", m)
print("p", p)
print("n", n)
print("Mapa przekąsek: ")
for i in range(p):
print(p_wkc[i])
print("Lista poleceń: ")
for i in range(n):
print(n_polecenia[i])
graj(p_wkc, n_polecenia)
# start
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment