morpion0.py

Created by florian-allard

Created on July 10, 2020

2.94 KB

Version d’origine du morpion à deux joueurs, sans IA, avec gestion de l’appui sur les touches 1 à 9 avec le module ion.


from ion import *
from kandinsky import *
from time import sleep
red=(255,0,0)
orange=(255,160,0)
purple=(160,0,255)
green=(0,160,0)
blue=(0,0,255)
white=(255,255,255)
black=(0,0,0)
score=[0,0]
j=0 #choix du joueur

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

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

  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):
    #draw_string("--------",65,a)
    #draw_string("         ",72,a+15)
    fill_rect(65-3,a+8,91,1,orange)
    fill_rect(a-3,73,1,90,orange)

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

  while fin==0:
    fait=0 #le tour n'est pas encore joué
    #draw_string(" ",30,30)
    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,red)


    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,red)
        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],red)
        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,red)
        score[Jeu[0+k]]+=1
        draw_string("Joueur"+str(Jeu[0+k])+" : "+str(score[Jeu[0+k]]),170,100+20*Jeu[0+k],red)
        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,red)
      score[Jeu[0]]+=1
      draw_string("Joueur"+str(Jeu[0])+" : "+str(score[Jeu[0]]),170,100+20*Jeu[0],red)
      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,red)
      score[Jeu[2]]+=1
      draw_string("Joueur"+str(Jeu[2])+" : "+str(score[Jeu[2]]),170,100+20*Jeu[2],red)
      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