morpionnb.py

Created by florian-allard

Created on June 01, 2020

2.71 KB


from ion import *
from kandinsky import *
from time import sleep

black=(0,0,0)
white=(255,255,255)
score=[0,0]
j=0 #choix du joueur

while True:
  Jeu=[" "]*9
  fin=0

  draw_string("Appuyez sur EXE",84,42)

  while not keydown(KEY_EXE):
    sleep(0.05)

  draw_string("                  ",68,25)
  draw_string("               ",84,42)
  fill_rect(65,73,90,90,white)
  for a in range(65,160,30):
    fill_rect(65-3,a+8,91,1,black)
    fill_rect(a-3,73,1,90,black)

  draw_string("Joueur0 : "+str(score[0]),170,100)
  draw_string("Joueur1 : "+str(score[1]),170,120)

  while fin==0:
    fait=0 #le tour n'est pas encore joué
    while fait==0:
      if keydown(KEY_ONE) and fait==0 and Jeu[6]==" ":
        Jeu[6]=j
        fait=1
      elif keydown(KEY_TWO) and fait==0 and Jeu[7]==" ":
        Jeu[7]=j
        fait=1
      elif keydown(KEY_THREE) and fait==0 and Jeu[8]==" ":
        Jeu[8]=j
        fait=1
      elif keydown(KEY_FOUR) and fait==0 and Jeu[3]==" ":
        Jeu[3]=j
        fait=1
      elif keydown(KEY_FIVE) and fait==0 and Jeu[4]==" ":
        Jeu[4]=j
        fait=1
      elif keydown(KEY_SIX) and fait==0 and Jeu[5]==" ":
        Jeu[5]=j
        fait=1
      elif keydown(KEY_SEVEN) and fait==0 and Jeu[0]==" ":
        Jeu[0]=j
        fait=1
      elif keydown(KEY_EIGHT) and fait==0 and Jeu[1]==" ":
        Jeu[1]=j
        fait=1
      elif keydown(KEY_NINE) and fait==0 and Jeu[2]==" ":
        Jeu[2]=j
        fait=1

    for l in range(3):
      for m in range(3):
        draw_string(str(Jeu[l+3*m]),72+30*l,80+30*m)

    fait=0 #le tour est terminé
    j=1-j #changement de joueur

    for k in range(3):
      if Jeu[0+3*k] in [0,1] and Jeu[0+3*k]==Jeu[1+3*k]==Jeu[2+3*k]:
        draw_string("Joueur"+str(Jeu[0+3*k])+" a gagné",84,25)
        score[Jeu[0+3*k]]+=1
        draw_string("Joueur"+str(Jeu[0+3*k])+" : "+str(score[Jeu[0+3*k]]),170,100+20*Jeu[0+3*k])
        fin=1
      if Jeu[0+k] in [0,1] and Jeu[0+k]==Jeu[3+k]==Jeu[6+k]:
        draw_string("Joueur"+str(Jeu[0+k])+" a gagné",84,25)
        score[Jeu[0+k]]+=1
        draw_string("Joueur"+str(Jeu[0+k])+" : "+str(score[Jeu[0+k]]),170,100+20*Jeu[0+k])
        fin=1
    if Jeu[0] in [0,1] and Jeu[0]==Jeu[4]==Jeu[8]:
      draw_string("Joueur"+str(Jeu[0])+" a gagné",84,25)
      score[Jeu[0]]+=1
      draw_string("Joueur"+str(Jeu[0])+" : "+str(score[Jeu[0]]),170,100+20*Jeu[0])
      fin=1
    elif Jeu[2] in [0,1] and Jeu[2]==Jeu[4]==Jeu[6]:
      draw_string("Joueur"+str(Jeu[2])+" a gagné",84,25)
      score[Jeu[2]]+=1
      draw_string("Joueur"+str(Jeu[2])+" : "+str(score[Jeu[2]]),170,100+20*Jeu[2])
      fin=1
    elif Jeu.count(0) in [4,5] and Jeu.count(1)==9-Jeu.count(0):
      draw_string("Personne n'a gagné",68,25)
      fin=1