Advertisement
Guest User

Untitled

a guest
Jan 20th, 2020
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.87 KB | None | 0 0
  1. #plansza
  2. plansza = ["-", "-",  "-",
  3.            "-", "-", "-",
  4.            "-", "-", "-", ]
  5. gra_w_trakcie = True    
  6. #kto wygrał
  7. zwyciezca = None
  8. #kogo kolej
  9. obecny_gracz = "X"    
  10. def zagraj():    
  11. #pokazanie planszy początkowej
  12.   pokaz_plansze()
  13.   while gra_w_trakcie:
  14.     ruch(obecny_gracz)
  15.     sprwadz_czy_gra_sie_skonczyla()
  16.     zmien_gracza()
  17. #koniec gry
  18.   if zwyciezca == "X" or zwyciezca == "O":
  19.     print(zwyciezca + " Zwycięstwo.")
  20.   elif zwyciezca == None:
  21.     print("Remis.")
  22. def pokaz_plansze():
  23.   print("\n")
  24.   print(plansza[0] + " | " + plansza[1] + " | " + plansza[2] +"     1 | 2 | 3")
  25.   print(plansza[3] + " | " + plansza[4] + " | " + plansza[5] +"     4 | 5 | 6")
  26.   print(plansza[6] + " | " + plansza[7] + " | " + plansza[8] +"     7 | 8 | 9")  
  27.   print("\n")  
  28. def ruch(gracz):
  29.   print ("kolej " + gracz )
  30.   pozycja = input("Wybierz pozycje od 1-9: ")
  31.   valid = False
  32.   while not valid:
  33.     while pozycja  not in ["1","2", "3", "4", "5", "6", "7", "8", "9"]:
  34.       pozycja = input("Wprowadzono niepoprawny znak. Wybierz pozycje od 1 do 9: ")
  35.       pozycja = int(pozycja) - 1 #-1 służy do tego, żeby zgadzały się wpisywane cyfry i index jaki mają przypisany
  36.     if plansza[int(pozycja)] == "-":
  37.       valid = True
  38.     else:  
  39.       print("to miejsce jest już zajęte, wybierz inne")
  40.   plansza[int(pozycja)] = gracz
  41.   pokaz_plansze()
  42. def  sprwadz_czy_gra_sie_skonczyla():
  43.   sprawdz_czy_wygrana()
  44.   sprawdz_czy_remis()
  45. def sprawdz_czy_wygrana():
  46.   #globalna zmienna
  47.   global zwyciezca
  48.   #sprwdzamy rzędy
  49.   zwyciezca_przez_rzad = sprawdz_rzedy()
  50.   #sprawdzamy kolumy
  51.   zwyciezca_przez_kulumny = sprawdz_kulumny()
  52.   #sprawdzamy po ukosie
  53.   zwyciezca_przez_ukos = sprawdz_po_ukosie()
  54.   if zwyciezca_przez_rzad:
  55.     zwyciezca = zwyciezca_przez_rzad
  56.   elif zwyciezca_przez_kulumny:
  57.     zwyciezca = zwyciezca_przez_kulumny
  58.   elif zwyciezca_przez_ukos:
  59.     zwyciezca = zwyciezca_przez_ukos
  60.   else:
  61.     zwyciezca = None    
  62.   return
  63. def sprawdz_rzedy():
  64.   global gra_w_trakcie
  65.   rzad_1 = plansza[0] == plansza[1] == plansza[2] != "-" # nie może być to myślinik
  66.   rzad_2 = plansza[3] == plansza[4] == plansza[5] != "-" # nie może być to myślinik
  67.   rzad_3 = plansza[6] == plansza[7] == plansza[8] != "-" # nie może być to myślinik
  68.   #jeśli w którymś rzędzie jest 3 x lub 0 zakończ gre
  69.   if rzad_1 or rzad_2 or rzad_3:
  70.     gra_w_trakcie = False
  71.   if rzad_1:
  72.    return plansza[0]
  73.   elif rzad_2:
  74.     return plansza[3]
  75.   elif rzad_3:
  76.     return plansza[6]    
  77.   else:
  78.     return None  
  79. def sprawdz_kulumny():  
  80.   global gra_w_trakcie
  81.   kolumna_1 = plansza[0] == plansza[3] == plansza[6] != "-" # nie może być to myślinik
  82.   kolumna_2 = plansza[1] == plansza[4] == plansza[7] != "-" # nie może być to myślinik
  83.   kolumna_3 = plansza[2] == plansza[5] == plansza[8] != "-" # nie może być to myślinik
  84.   #jeśli w krórejś kolumnie jest 3 x lub 0 zakończ gre
  85.   if kolumna_1 or kolumna_2 or kolumna_3:
  86.     gra_w_trakcie = False
  87.   if kolumna_1:
  88.    return plansza[0]
  89.   elif kolumna_2:
  90.     return plansza[3]
  91.   elif kolumna_3:
  92.     return plansza[6]    
  93.   else:
  94.     return None
  95. def sprawdz_po_ukosie():
  96.   global gra_w_trakcie
  97.   ukos_1 = plansza[0] == plansza[4] == plansza[8] != "-" # nie może być to myślinik
  98.   ukos_2 = plansza[6] == plansza[4] == plansza[2] != "-" # nie może być to myślinik
  99.   #jeśli w którymś ukosie  jest 3 x lub 0 zakończ gre
  100.   if ukos_1 or ukos_2:
  101.     gra_w_trakcie = False
  102.   if ukos_1:
  103.    return plansza[0]
  104.   elif ukos_2:
  105.     return plansza[3]    
  106.   else:
  107.     return None
  108. def sprawdz_czy_remis():
  109.   global gra_w_trakcie
  110.   if "-" not in plansza:
  111.     gra_w_trakcie = False
  112.     return True
  113.   else:
  114.     return False
  115. def zmien_gracza():
  116.   global obecny_gracz
  117.   if obecny_gracz == "X":
  118.     obecny_gracz = "O"
  119.   elif  obecny_gracz == "O":
  120.     obecny_gracz = "X"
  121.  
  122. zagraj()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement