Cześć, wydaje mi się, że robię jakiś szkolny błąd w wykorzystaniu funkcji zip() i już kompletnie się pogubiłem. Prosiłbym o wskazanie tego błędu, ponieważ nie rozumiem czemu moja funkcja nie działa.
Napisałem funkcje, która ma sprawdzać poziomo wiersze tablicy i w przypadku wystąpienia 3 razy X lub O w jednym wierszu, zwracać wartość True i drukować napis o tym, która wartość się powtarza.
Niestety funkcja działa jedynie dla tablicyX a powinna również dla tablicyY.
Domyślam się, że jest jeszcze pewnie parę innych sposobów implementacji funkcji checkHorizontally ale chciałbym skorzystać z tego, który używa funkcji zip właśnie, chyba że zwyczajnie się nie nadaje.
tablica = [[0, 0, 0], # [0, 0, 0], [0, 0, 0], [0, 0, 0]
[0, 0, 0],
[0, 0, 0]]
tablicaX = [['X', 0, 0], #['X', 0, 0], ['X', 0, 0], ['X', 0, 0]
['X', 0, 0],
['X', 0, 0]]
tablicaY = [[0, 0, 'O'], #[0, 0, 'O'], [0, 0, 'O'], [0, 0, 'O']
[0, 0, 'O'],
[0, 0, 'O']]
tablicaTestowa = [['X', '0', 'X'], [1, 2, 3], [1, 5, 0]]
#Poziomo
def checkHorizontally(tablica):
for x, y, z in zip(tablica[0], tablica[1], tablica[2]):
if(x == y == z):
if x == 'X':
print('Gracz z X wygrał')
return True
elif x == '0':
print('Gracz z 0 wygrał')
return True
else:
print('Nikt nie wygrał')
return False
checkHorizontally(tablicaY)