You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.6 KiB
Markdown
62 lines
2.6 KiB
Markdown
5 years ago
|
# tobias.py
|
||
|
```python
|
||
|
|
||
|
pisk = [[" ", " ", " "],
|
||
|
[" ", " ", " "],
|
||
|
[" ", " ", " "]]
|
||
|
|
||
|
player = 'x'
|
||
|
|
||
|
def print_board(pisk): # beres board jako argument - super
|
||
|
|
||
|
for x in pisk: # sice se ti tam dela jedna cara navic ale je to elegantni
|
||
|
# takze super
|
||
|
print(f'{x[0]} | {x[1]} | {x[2]}')
|
||
|
print('--+---+--')
|
||
|
|
||
|
def check():
|
||
|
for i in range(3): # pouzivas cykly, taky fajn protoze si zjednodussujes praci
|
||
|
if pisk[i][0] == pisk[i][1] and pisk[i][1] == pisk[i][2] and pisk[i][1] != ' ':
|
||
|
print('Player ' + player + ' is the winner!!!')
|
||
|
return True
|
||
|
for i in range(3):
|
||
|
if pisk[0][i] == pisk[1][i] and pisk[1][i] == pisk[2][i] and pisk[1][i] != ' ':
|
||
|
print('Player ' + player + ' is the winner!!!')
|
||
|
return True
|
||
|
for i in range(1): # range(1).. hmm, tady to nesedi, vysral bych se na loop
|
||
|
# kdybys delal cykly cyklu a mel misto `1` nejakou promennou pak pohoda
|
||
|
if pisk[i][i] == pisk[i + 1][i + 1] and pisk[i + 1][i + 1] == pisk[i + 2][i + 2] and pisk[i + 1][i + 1] != ' ':
|
||
|
print('Player ' + player + ' is the winner!!!')
|
||
|
return True
|
||
|
for i in range(1):
|
||
|
if pisk[i][i + 2] == pisk[i + 1][i + 1] and pisk[i + 1][i + 1] == pisk[i + 2][i] and pisk[i + 1][i + 1] != ' ':
|
||
|
print('Player ' + player + ' is the winner!!!')
|
||
|
return True
|
||
|
if pisk[0][0] != ' ' and pisk[0][1] != ' ' and pisk[0][2] != ' ' and pisk[1][0] != ' ' and pisk[1][1] != ' ' and pisk[1][2] != ' ' and pisk[2][0] != ' ' and pisk[2][1] != ' ' and pisk[2][2] != ' ': # husty, ale slo by to vymyslet lip
|
||
|
print('Draw') # printy - chytrejsi je vracet to co se ma vytisknout jako string
|
||
|
# lepsi zvyk protoze printy jsou vedlejsi efekty
|
||
|
return True
|
||
|
return False
|
||
|
|
||
|
while True:
|
||
|
print_board(pisk)
|
||
|
print('Now plays player ' + player) # "now plays player" lol
|
||
|
print('Enter coordinates: ')
|
||
|
r = input('Row (0,1,2):')
|
||
|
c = input('Column(0,1,2): ')
|
||
|
if r == '0' or r == '1' or r == '2' and c == '0' or c == '1' or c == '2':
|
||
|
if pisk[int(r)][int(c)] == ' ':
|
||
|
pisk[int(r)][int(c)] = player
|
||
|
if check(): # chezky ze sis uvedomil ze `check` vraci bool
|
||
|
break
|
||
|
if player == 'x': # jde udelat chytreji, ale to jeste neumite
|
||
|
player = 'o'
|
||
|
elif player == 'o': # zbytecnej elif, staci else
|
||
|
player = 'x'
|
||
|
else:
|
||
|
print('Kill yourself! That position is already taken!') # lol nice
|
||
|
else:
|
||
|
print('Wrong input you idiot!')
|
||
|
print('End of the game')
|
||
|
# jinak vsechno funguje - super
|
||
|
```
|