Linia 1. ROZMIAR podkreślnik SIATKI znak równości 5.
Linia 2. ZYWA znak równości 1.
Linia 3. MARTWA znak równości 0.
Linia 6. def policzZywychSasiadow otwórz nawias okrągły y przecinek x przecinek siatka zamknij nawias okrągły dwukropek.
Linia 7. ile znak równości 0.
Linia 9. for i in range otwórz nawias okrągły y minus 1 przecinek y plus 2 zamknij nawias okrągły dwukropek.
Linia 10. for j in range otwórz nawias okrągły x minus 1 przecinek x plus 2 zamknij nawias okrągły dwukropek.
Linia 11. if 0 otwórz nawias ostrokątny znak równości i otwórz nawias ostrokątny ROZMIAR podkreślnik SIATKI and 0 otwórz nawias ostrokątny znak równości j otwórz nawias ostrokątny ROZMIAR podkreślnik SIATKI and siatka otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy j zamknij nawias kwadratowy znak równości znak równości ZYWA dwukropek.
Linia 12. ile plus znak równości 1.
Linia 14. if siatka otwórz nawias kwadratowy y zamknij nawias kwadratowy otwórz nawias kwadratowy x zamknij nawias kwadratowy znak równości znak równości ZYWA dwukropek.
Linia 15. ile minus znak równości 1.
Linia 17. return ile.
Linia 20. def ewolucja otwórz nawias okrągły siatka zamknij nawias okrągły dwukropek.
Linia 21. ileSasiadow znak równości otwórz nawias kwadratowy.
Linia 22. otwórz nawias kwadratowy 0 przecinek 0 przecinek 0 przecinek 0 przecinek 0 zamknij nawias kwadratowy przecinek.
Linia 23. otwórz nawias kwadratowy 0 przecinek 0 przecinek 0 przecinek 0 przecinek 0 zamknij nawias kwadratowy przecinek.
Linia 24. otwórz nawias kwadratowy 0 przecinek 0 przecinek 0 przecinek 0 przecinek 0 zamknij nawias kwadratowy przecinek.
Linia 25. otwórz nawias kwadratowy 0 przecinek 0 przecinek 0 przecinek 0 przecinek 0 zamknij nawias kwadratowy przecinek.
Linia 26. otwórz nawias kwadratowy 0 przecinek 0 przecinek 0 przecinek 0 przecinek 0 zamknij nawias kwadratowy.
Linia 27. zamknij nawias kwadratowy.
Linia 29. for i in range otwórz nawias okrągły ROZMIAR podkreślnik SIATKI zamknij nawias okrągły dwukropek.
Linia 30. for j in range otwórz nawias okrągły ROZMIAR podkreślnik SIATKI zamknij nawias okrągły dwukropek.
Linia 31. ileSasiadow otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy j zamknij nawias kwadratowy znak równości policzZywychSasiadow otwórz nawias okrągły i przecinek j przecinek siatka zamknij nawias okrągły.
Linia 33. for i in range otwórz nawias okrągły ROZMIAR podkreślnik SIATKI zamknij nawias okrągły dwukropek.
Linia 34. for j in range otwórz nawias okrągły ROZMIAR podkreślnik SIATKI zamknij nawias okrągły dwukropek.
Linia 35. if siatka otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy j zamknij nawias kwadratowy znak równości znak równości MARTWA and ileSasiadow otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy j zamknij nawias kwadratowy znak równości znak równości 3 dwukropek.
Linia 36. siatka otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy j zamknij nawias kwadratowy znak równości ZYWA.
Linia 37. elif siatka otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy j zamknij nawias kwadratowy znak równości znak równości ZYWA and ileSasiadow otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy j zamknij nawias kwadratowy otwórz nawias ostrokątny 2 dwukropek.
Linia 38. siatka otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy j zamknij nawias kwadratowy znak równości MARTWA.
Linia 39. elif siatka otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy j zamknij nawias kwadratowy znak równości znak równości ZYWA and ileSasiadow otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy j zamknij nawias kwadratowy zamknij nawias ostrokątny 3 dwukropek.
Linia 40. siatka otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy j zamknij nawias kwadratowy znak równości MARTWA.
Linia 43. def main otwórz nawias okrągły zamknij nawias okrągły dwukropek.
Linia 44. siatka znak równości otwórz nawias kwadratowy.
Linia 45. otwórz nawias kwadratowy 1 przecinek 1 przecinek 0 przecinek 0 przecinek 0 zamknij nawias kwadratowy przecinek.
Linia 46. otwórz nawias kwadratowy 0 przecinek 0 przecinek 1 przecinek 0 przecinek 1 zamknij nawias kwadratowy przecinek.
Linia 47. otwórz nawias kwadratowy 1 przecinek 0 przecinek 1 przecinek 1 przecinek 0 zamknij nawias kwadratowy przecinek.
Linia 48. otwórz nawias kwadratowy 1 przecinek 0 przecinek 0 przecinek 1 przecinek 0 zamknij nawias kwadratowy przecinek.
Linia 49. otwórz nawias kwadratowy 1 przecinek 1 przecinek 0 przecinek 1 przecinek 1 zamknij nawias kwadratowy.
Linia 50. zamknij nawias kwadratowy.
Linia 52. ewolucja otwórz nawias okrągły siatka zamknij nawias okrągły.
Linia 54. for rzad in siatka dwukropek.
Linia 55. print otwórz nawias okrągły rzad zamknij nawias okrągły.
Linia 58. if podkreślnik podkreślnik name podkreślnik podkreślnik znak równości znak równości apostrof podkreślnik podkreślnik main podkreślnik podkreślnik apostrof dwukropek.
Linia 59. main otwórz nawias okrągły zamknij nawias okrągły.
ROZMIAR_SIATKI = 5
ZYWA = 1
MARTWA = 0
def policzZywychSasiadow(y, x, siatka):
ile = 0
for i in range(y - 1, y + 2):
for j in range(x - 1, x + 2):
if 0 <= i < ROZMIAR_SIATKI and 0 <= j < ROZMIAR_SIATKI and siatka[i][j] == ZYWA:
ile += 1
if siatka[y][x] == ZYWA:
ile -= 1
return ile
def ewolucja(siatka):
ileSasiadow = [
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]
]
for i in range(ROZMIAR_SIATKI):
for j in range(ROZMIAR_SIATKI):
ileSasiadow[i][j] = policzZywychSasiadow(i, j, siatka)
for i in range(ROZMIAR_SIATKI):
for j in range(ROZMIAR_SIATKI):
if siatka[i][j] == MARTWA and ileSasiadow[i][j] == 3:
siatka[i][j] = ZYWA
elif siatka[i][j] == ZYWA and ileSasiadow[i][j] < 2:
siatka[i][j] = MARTWA
elif siatka[i][j] == ZYWA and ileSasiadow[i][j] > 3:
siatka[i][j] = MARTWA
def main():
siatka = [
[1, 1, 0, 0, 0],
[0, 0, 1, 0, 1],
[1, 0, 1, 1, 0],
[1, 0, 0, 1, 0],
[1, 1, 0, 1, 1]
]
ewolucja(siatka)
for rzad in siatka:
print(rzad)
if __name__ == '__main__':
main()