Jeu du Morpion ou Tic Tac Toe, avec gestion de l’appui sur les touches et une IA assez sommaire. Se joue en utilisant les touches 1 à 9. C’est ma version d’ébauche. Les versions suivantes sont disponibles ici et ici.
from ion import * from kandinsky import * from time import sleep score=[0,0] j=0 #choix du joueur tour=0 t=0.5 def joueur_joue(): global Jeu j=1 k=9 while k==9: #Le tour n'est pas encore joué if keydown(KEY_ONE) and Jeu[6]==" ": k=6 elif keydown(KEY_TWO) and Jeu[7]==" ": k=7 elif keydown(KEY_THREE) and Jeu[8]==" ": k=8 elif keydown(KEY_FOUR) and Jeu[3]==" ": k=3 elif keydown(KEY_FIVE) and Jeu[4]==" ": k=4 elif keydown(KEY_SIX) and Jeu[5]==" ": k=5 elif keydown(KEY_SEVEN) and Jeu[0]==" ": k=0 elif keydown(KEY_EIGHT) and Jeu[1]==" ": k=1 elif keydown(KEY_NINE) and Jeu[2]==" ": k=2 Jeu[k]=j draw_string(str(j),72+30*(k%3),80+30*(k//3),'red') j=0 return None def IA_joue(i): global Jeu j=0 Jeu[i]=j sleep(t) draw_string(str(j),72+30*(i%3),80+30*(i//3),'red') while True: Jeu=[" "]*9 fin=0 draw_string("Appuyez sur EXE",84,42,(160,0,255)) while not (keydown(KEY_EXE) or keydown(KEY_OK)):True fill_rect(62,25,255,190,'white') for a in range(65,160,30): 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') j=0 if j==0: # IA qui joue IA_joue(0) joueur_joue() if Jeu[1]==1-j: IA_joue(4) joueur_joue() if Jeu[8]==" ": IA_joue(8) else: IA_joue(6) joueur_joue() if Jeu[3]==" ": IA_joue(3) else: IA_joue(2) elif Jeu[2]==1-j: IA_joue(6) joueur_joue() if Jeu[3]==" ": IA_joue(3) else: IA_joue(8) joueur_joue() if Jeu[4]==" ": IA_joue(4) else: IA_joue(7) elif Jeu[3]==1-j: IA_joue(4) joueur_joue() if Jeu[8]==" ": IA_joue(8) else: IA_joue(2) joueur_joue() if Jeu[1]==" ": IA_joue(1) else: IA_joue(6) elif Jeu[4]==1-j: IA_joue(2) joueur_joue() if Jeu[1]==" ": IA_joue(1) else: IA_joue(7) joueur_joue() if Jeu[3]==1-j: IA_joue(5) joueur_joue() if Jeu[8]==" ": IA_joue(8) else: IA_joue(6) elif Jeu[5]==1-j: IA_joue(3) joueur_joue() if Jeu[6]==" ": IA_joue(6) else: IA_joue(8) elif Jeu[6]==1-j: IA_joue(8) joueur_joue() if Jeu[5]==" ": IA_joue(5) else: IA_joue(3) elif Jeu[8]==1-j: IA_joue(6) joueur_joue() if Jeu[3]==" ": IA_joue(3) else: IA_joue(5) elif Jeu[5]==1-j: IA_joue(4) joueur_joue() if Jeu[8]==" ": IA_joue(8) else: IA_joue(2) joueur_joue() if Jeu[1]==" ": IA_joue(1) else: IA_joue(6) elif Jeu[6]==1-j: IA_joue(2) joueur_joue() if Jeu[1]==" ": IA_joue(1) else: IA_joue(8) joueur_joue() if Jeu[4]==" ": IA_joue(4) else: IA_joue(5) elif Jeu[7]==1-j: IA_joue(4) joueur_joue() if Jeu[8]==" ": IA_joue(8) else: IA_joue(6) joueur_joue() if Jeu[3]==" ": IA_joue(3) else: IA_joue(2) elif Jeu[8]==1-j: IA_joue(2) joueur_joue() if Jeu[1]==" ": IA_joue(1) else: IA_joue(6) joueur_joue() if Jeu[4]==" ": IA_joue(4) else: IA_joue(3) gagnant=2 #Pas de gagnant 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]: gagnant=Jeu[0+3*k] if Jeu[0+k] in [0,1] and Jeu[0+k]==Jeu[3+k]==Jeu[6+k]: gagnant=Jeu[0+k] if Jeu[0] in [0,1] and Jeu[0]==Jeu[4]==Jeu[8]: gagnant=Jeu[0] elif Jeu[2] in [0,1] and Jeu[2]==Jeu[4]==Jeu[6]: gagnant=Jeu[2] if gagnant<2: draw_string("Joueur"+str(gagnant)+" a gagné",84,25,'red') score[gagnant]+=1 draw_string("Joueur"+str(gagnant)+" : "+str(score[gagnant]),170,100+20*gagnant,'red') fin=1 elif Jeu.count(0)+Jeu.count(1)==9 and fin==0: draw_string("Personne n'a gagné",68,25) fin=1