Cześć,
Znalazłem błąd w zadaniu i nie wiem jak go naprawić. Grę napisałem w ten sposób, ze sami wybieramy pole gracza "X", natomiast pole gracza "O" powinno być losowe.
Błąd jest na pewno w kodzie, który opisuje ruch losowy gracza "O". Czasami zamiast wykonać ruch losowy nadpisuje mi ruch gracza "X". Troszkę cięzko to opisać, natomiast kopiując i uruchamiajac kod od razu mozna znalezc problem?
Mógłby mi ktoś proszę pomóc?
("Witaj w grze kolko i krzyzyk")
print("ZACZYNAMY")
import random
plansza = ["-","-","-","-","-","-","-","-","-",]
gracz1 = "X"
gracz2 ="O"
gra = True
def pole(plansza):
print(plansza[0] + " | " + plansza[1] + " | " + plansza[2])
print("---------")
print(plansza[3] + " | " + plansza[4] + " | " + plansza[5])
print("---------")
print(plansza[6] + " | " + plansza[7] + " | " + plansza[8])
def ruch (plansza):
ruch = int(input("Podaj cyfre od 0 do 8 - gracz X: "))
if plansza[ruch] == "-" and plansza[ruch] !="O":
plansza[ruch] = gracz1
print("Udało ci sie")
if sprawdz_wygrana_gracza1(plansza):
print("WYGRANA!!! :) ")
exit()
else:
print("zajęte")
ruch = int(input("Podaj cyfre od 0 do 8 - gracz X: "))
plansza[ruch] = gracz1
def ruch2 (plansza):
ruch = random.randrange(0,8)
if plansza[ruch] == "-" and plansza[ruch] !="X":
plansza[ruch] = gracz2
print("Udało ci sie")
if sprawdz_wygrana_gracza2(plansza):
print("WYGRANA!!! :) ")
exit()
else:
print("zajęte")
ruch = int(input("Podaj cyfre od 0 do 8 - gracz X: "))
plansza[ruch] = gracz1
def sprawdz_wygrana_gracza1(plansza):
if plansza[0] == "X" and plansza[1] == "X" and plansza[2] =="X":
return True
elif plansza[3] == "X" and plansza[4] == "X" and plansza[5] =="X":
return True
elif plansza[6] == "X" and plansza[7] == "X" and plansza[8] =="X":
return True
elif plansza[0] == "X" and plansza[3] == "X" and plansza[6] =="X":
return True
elif plansza[1] == "X" and plansza[4] == "X" and plansza[7] =="X":
return True
elif plansza[2] == "X" and plansza[5] == "X" and plansza[8] =="X":
return True
elif plansza[0] == "X" and plansza[4] == "X" and plansza[8] =="X":
return True
elif plansza[0] == "X" and plansza[6] == "X" and plansza[6] =="X":
return True
def sprawdz_wygrana_gracza2(plansza):
if plansza[0] == "O" and plansza[1] == "O" and plansza[2] =="O":
return True
elif plansza[3] == "O" and plansza[4] == "O" and plansza[5] =="O":
return True
elif plansza[6] == "O" and plansza[7] == "O" and plansza[8] =="O":
return True
elif plansza[0] == "O" and plansza[3] == "O" and plansza[6] =="O":
return True
elif plansza[1] == "O" and plansza[4] == "O" and plansza[7] =="O":
return True
elif plansza[2] == "O" and plansza[5] == "O" and plansza[8] =="O":
return True
elif plansza[0] == "O" and plansza[4] == "O" and plansza[8] =="O":
return True
elif plansza[0] == "O" and plansza[6] == "O" and plansza[6] =="O":
return True
while gra:
pole(plansza)
ruch(plansza)
ruch2(plansza)
sprawdz_wygrana_gracza1(plansza)
sprawdz_wygrana_gracza2(plansza)
~~~
ruch = int(input("Podaj cyfre od 0 do 8 - gracz X: "))
- wprowadzaszint
jako ruch,if plansza[ruch] == "-" and plansza[ruch] !="X":
- sprawdzasz string