play_now add ai to play
This commit is contained in:
parent
58db15fcd3
commit
74f67da9b2
64
main.py
64
main.py
@ -1,5 +1,6 @@
|
||||
#!/usr/bin/python3
|
||||
from os import system
|
||||
import random
|
||||
|
||||
# Das ist die Liste in der die Felder für die ausgabe auf der Konsole. Die einzelnen Felder werden durch X oder O
|
||||
# beim Spiel ersetzt
|
||||
@ -8,8 +9,9 @@ field = ["",
|
||||
"4", "5", "6",
|
||||
"7", "8", "9"]
|
||||
|
||||
player = '\x1b[1;34m' "X" '\x1b[1;0m' # Die Zeichen X und O werden so farbig ausgegeben.
|
||||
#player = '\x1b[1;34m' "X" '\x1b[1;0m' # Die Zeichen X und O werden so farbig ausgegeben.
|
||||
# Achtung! O hat eine andere Farbe
|
||||
player = 'X'
|
||||
run = True # Variable, die auf Wahr gesetzt ist, damit das Programm sauber beendet wird.
|
||||
|
||||
|
||||
@ -57,7 +59,7 @@ def gamers():
|
||||
continue
|
||||
except ValueError:
|
||||
print("Bitte nur 1 oder 2 wählen!")
|
||||
gamers() # Hier steht nachher main() drin!
|
||||
main() # Hier steht nachher main() drin!
|
||||
|
||||
|
||||
one_two = gamers()
|
||||
@ -76,36 +78,48 @@ def p_field(): # p_ = print. Damit wird das Spielfeld aus der Liste field auf d
|
||||
|
||||
def play_now():
|
||||
global run
|
||||
while True:
|
||||
try: # Try eingebaut damit auch alle anderen Zeichen und Buchstaben abgefangen werden.
|
||||
sel_field = input("Bitte ein Feld auswählen:\nZum beenden des Spiels q drücken.\n")
|
||||
if sel_field == "q":
|
||||
run = False
|
||||
return 1
|
||||
if sel_field == "":
|
||||
print("Ohne eingabe kein gewinn!!!")
|
||||
continue
|
||||
sel_field = int(sel_field)
|
||||
if sel_field >= 1 and sel_field <= 9:
|
||||
if field[sel_field] == '\x1b[1;34m' "X" '\x1b[1;0m' or field[sel_field] == '\x1b[1;31m' "O" '\x1b[1;0m':
|
||||
print("Spielfeld wurde schon ausgewählt!\n")
|
||||
if player == 'O' and name_player2 == 'Computer':
|
||||
field_ai = []
|
||||
for i in field:
|
||||
if i != 'X' and i != 'O' and i != '':
|
||||
# hier wird geprüft, ob das element dem entspricht, was hier angegeben wurde.
|
||||
# ist das momentane element ungleich X und ungleich O und ungleich '' also ein anderes element,
|
||||
# dann wird es in die liste field_ai hinzugefügt. Info! In der Liste field sind nur Strings!
|
||||
field_ai += i
|
||||
sel_field = int(random.choice(field_ai))
|
||||
# hier wird ein zufälliges element, aus der neu erzeugten liste
|
||||
# ausgewählt dieser wird auch gleich in ein integer gecastet und der Variable sel_field zugewiesen
|
||||
return sel_field
|
||||
else:
|
||||
while True:
|
||||
try: # Try eingebaut damit auch alle anderen Zeichen und Buchstaben abgefangen werden.
|
||||
sel_field = input("Bitte ein Feld auswählen:\nZum beenden des Spiels q drücken.\n")
|
||||
if sel_field == "q":
|
||||
run = False
|
||||
return 1
|
||||
if sel_field == "":
|
||||
print("Ohne eingabe kein gewinn!!!")
|
||||
continue
|
||||
sel_field = int(sel_field)
|
||||
if sel_field >= 1 and sel_field <= 9:
|
||||
if field[sel_field] == 'X' or field[sel_field] == 'O':
|
||||
print("Spielfeld wurde schon ausgewählt!\n")
|
||||
else:
|
||||
return sel_field
|
||||
else:
|
||||
return sel_field
|
||||
else:
|
||||
print("Bitte nur Ziffern von 1 - 9 wählen!\n")
|
||||
except ValueError:
|
||||
print("Bitte nur Ziffern von 1 - 9 wählen!\n")
|
||||
except ValueError:
|
||||
print("Bitte nur Ziffern von 1 - 9 wählen!\n")
|
||||
|
||||
|
||||
def change_player(): # Prüfung welcher Spieler dran ist. (Funktion Spielerwechsel)
|
||||
global player
|
||||
if run:
|
||||
if player == '\x1b[1;34m' "X" '\x1b[1;0m':
|
||||
player = '\x1b[1;31m' "0" '\x1b[1;0m'
|
||||
if player == 'X':
|
||||
player = 'O'
|
||||
print("Spieler " + name_player2 + " ist dran.")
|
||||
|
||||
else:
|
||||
player = '\x1b[1;34m' "X" '\x1b[1;0m'
|
||||
player = 'X'
|
||||
print("Spieler " + name_player1 + " ist dran.")
|
||||
|
||||
|
||||
@ -155,10 +169,10 @@ def main():
|
||||
field[sel_field] = player
|
||||
winner = check_win()
|
||||
if winner:
|
||||
if winner == '\x1b[1;34m' "X" '\x1b[1;0m':
|
||||
if winner == 'X':
|
||||
print("Spieler " + name_player1 + " hat gewonnen.")
|
||||
run = False
|
||||
if winner == '\x1b[1;31m' "0" '\x1b[1;0m':
|
||||
if winner == 'O':
|
||||
print("Spieler " + name_player2 + " hat gewonnen.")
|
||||
run = False
|
||||
else:
|
||||
|
Loading…
Reference in New Issue
Block a user