Chocolate game’s
Année 2016-2017
Fait par : Mathieu DECORDE, Maxime FARUGIA, Nicolas UGLIETA, Benjamin NICOLET, Guillaume GARROS. Tous des éleves de 1
èreS3.
Lycée Pierre Mendes France
Encadré par Mme GOUIRAND-THUILLET
Chercheurs : Pierre GUILLON de l’I2M Marseille et Kevin PERROT du LIF de Marseille.
Présentation du sujet
C’est un jeu qui se joue à deux jouerus. Il consiste en une tablette de chocolat de taille x par y dont le carré bas-gauche est empoisonné. A tour de rôle, chaque « croque » un carré de la tablette en retirant en même temps tous les carrés à la droite et au dessus. Le joueur qui mange le carré empoisonné perd.
Question : Comment gagner ? (stratégies gagnantes "simples" : n x n, 2 x n)
Sommaire
1. Présentation du jeu : ...2
A .Les règle du jeu ...2
B. Comment y jouer ? ...2
2. Les techniques pour gagner ! ...4
A. Tablettes x=y (carré) ...4
Exemples ...4
Démonstration ...6
B. Tablettes x et y=2 ...9
Exemples ...9
Démonstration ...10
Cet article est rédigé par des élèves. Il peut comporter des oublis et imperfections, autant que possible signalés par nos relecteurs dans les notes d’édition.
1. Présentation du jeu :
A .Les règles du jeu
Nous avons une tablette de chocolat rectangulaire qui a pour Longueur x et pour largeur=y qui *.
La tablette est placée horizontalement et possède un carreau empoisonné situé en bas à gauche.
Ce jeu se joue à deux joueurs (J
1et J
2), le but étant de faire manger le carreau empoisonné à l’adversaire.
B. Comment y jouer ?
Pour manger les carreaux, on doit faire des croques (coordonnées d’un croque C(x’ ; y’) de carreaux mangés) On a le droit à une infinité de croques et les croques doivent être faits en haut à droite (à l’ opposé du carreau
empoisonné).
On a représenté cela dans un repère (x ; y) :
y y
x
x 2
2
1 3 4
1 y
4
3
Prenons un exemple : C(3 ; 3)
Ici nous avons fait un croque en (3 ; 3)
4 3 2 1
1 2 3 4 x
y
Cet article est rédigé par des élèves. Il peut comporter des oublis et imperfections, autant que possible signalés par nos relecteurs dans les notes d’édition.
2. Les techniques pour gagner !
A. Tablettes x=y (carré) Exemples
Nous avons donc une tablette x=y donc carré.
Comme exemple nous avons pris une tablette avec x=y=4
Pour cette tablette nous avons fait plusieurs tentatives pour que le joueur 1 (J
1) puisse gagner. Nous avons trouvé que la seule technique qui
permettrait de gagner est de faire un « maxi croque » (c’est un énorme croque qui mange tous les carreaux qui ne sont ni sur la colonne ni sur la ligne du carreau empoisonné) donc de coordonnées C(2 ;2).
Ensuite, c’est au tour de J
2de jouer, il fait n’importe quel coup, par exemple C(3 ;1)
x 2
1 4 3 y
1 2 3 4
x 2
1 4 3 y
1 2 3 4
Ensuite c’est au tour de J
1de jouer, il joue l’opposé de J
2c'est-à-dire C(1 ; 3).
C’est au tour de J
2, il croque un carreau au choix, par exemple C(1 ; 2)
x 2
1 4 3
1 2 3 4
x 2
1 4 3
1 2 3 4
x 2
1 4 3
1 2 3 4
Cet article est rédigé par des élèves. Il peut comporter des oublis et imperfections, autant que possible signalés par nos relecteurs dans les notes d’édition.
J
1fait le croque opposé à celui de J
2c'est-à-dire (2 ; 1)
Il ne reste plus que le carreau empoisonné pout J
2Démonstration
Démonstration quand x=y (tablette carrée) J
1peut toujours jouer.
Quand J
1finit de jouer, il reste toujours un nombre impair de carreaux.
Prenons exemple de x=y=4 donc une tablette 4*4
1
ercoup : J
1croque en (2 ;2) (maxi-croque) donc il mange (x-1)
2carreaux.
Il reste donc : x
2-(x-1)
2carreaux.
Y
4 3 2 1
1 2 3 4 X
Y
4 3 2 1
1 2 3 4 X
x 2
1 4 3
1 2 3 4
2
èmecoup : J
2fait un croque en (x’
1; y’
1)
Si y’
1=1, J
2fait un croque en (x’
1; 1) Si x’
1=1 J
2fait un croque (1 ; y’
1) J
2mange x-x’
1carreaux Donc il reste x
2–(x-1)
2-(x-x’
1)
3
èmecoup : J
1fait un croque en (1 ; x’
1) : il enlève x-x’
1carreaux.
Il reste donc : x-1+x’
1-1(x-x’
1)
=x-1+x’
1-x-x’
1=2x
1’’-1
4
èmecoup : J
2fait un croque en (x’
2; y’
2) Si on a y’
2=1 J
2fait un croque en (x’
2; 1) J
2a mangé x’
1-x’
2carreaux
=2x’
1-1-(x’
1-x’
2)
=2x’
1-1-x’
1+x’
2=x’
1-1+x’
2Y
4 3 2 1
1 2 3 4 X
Y
4 3 2 1
1 2 3 4 X
Cet article est rédigé par des élèves. Il peut comporter des oublis et imperfections, autant que possible signalés par nos relecteurs dans les notes d’édition.
5
èmecoup : J
1fait un coup en (0 ; x’
2) donc il mange x’
1-x’
2carreaux
=x’
1-1+x’
2-x’
1+x’
2=2x’
2-1 carreaux restants
6
èmecoup : J
2fait un coup en (x’
2-x’
3) donc mange x’
2-x’
3X’
3et y’
3< x’
2< x’
1< x
=2x’
2-1-x’
2+x’
3=x’
2-1+x
3’
7
èmecoup : il reste 2x’
3-1 carreaux restants
Il reste un nombre impair de carreaux qui est de plus en plus petit après le coup de J
1. Le plus petit impair positif est 1 donc on arrive forcément au carreau empoisonné donc : J
1gagne.
Y
4 3 2 1
1 2 3 4 X
Y
4 3 2 1
1 2 3 4 X
Y
4 3 2 1
1 2 3 4 X
B. Tablettes x et y=2 Exemples
Prenons une tablette x=5 et y=2
J1 croque en (5;2)
J2 croque en (3;1)
J1 croque en (2;2)
J2 croque en (2;1)
Y
2 1
Y
2 1
Y
2 1
Y
2 1
Y
2 1
Cet article est rédigé par des élèves. Il peut comporter des oublis et imperfections, autant que possible signalés par nos relecteurs dans les notes d’édition.
J1 croque en (1;2)
J2 est obligé de manger le carreau empoisonné, J1 a gagné ! Démonstration
Soit une tablette de y = 2, cela fait 2x carreaux
1
ercoup, J1 doit manger le carreau en haut à droite ce qui donne : 2x-1 carreaux restants. J1C(x ;2)
2
èmecoup, il y a 2 cas de figures possibles : 1
ercas : J2 mange sur y=2
J2C(x’
1;2)
Il nous reste donc 2x-1 -(x-x’
1) =x-1+x’
1carreaux 3
èmecoup, J1C(x’
1+1;1)
Y
2 1
Y
2 1
Y
2 1
Il nous reste donc x-1+x’
1-(x-x’
1)
= x-1+x’
1-x+x’
1= 2x’
1-1 carreaux
2
èmecas : J2 mange sur y=1 J2C(x’
1;1)
Il nous reste donc 2x-1-(2(x-x’
1)+1) 2x-1-2x+2x’
1-1 2x’
1-2 = 2(x’
1-1) 3
èmecoup, J1C(x’
1+1;1)
Il nous reste donc 2x’
1-2-1
2x’
1-3 = 2(x’
1-1)-1
On se retrouve donc dans même configuration que le 1er coup avec un nombre impair de carreaux restants.
Vu que c’est au tour de J2, c’est lui qui va manger le carreau empoisonné qui reste à la fin.
Y
2 1
Y
2 1
Y
2 1
Y
2 1
Cet article est rédigé par des élèves. Il peut comporter des oublis et imperfections, autant que possible signalés par nos relecteurs dans les notes d’édition.
Jeu CHOCOLAT calculette sur TI-83 Premium CE en 5.2.1.0042. Fait par Guillaume GARROS
Lb l 0DelVar ⌊C EffÉcran 0
Menu(" Jeu du chocolat ","J1 vs J2",J,"J1 vs IA Hardcore",I1,"J1 vs IA aléatoire",I2,"IA vs IA (aléa)",I3,"IA vs IA (hard)",I4,"Quitter",Q Lb l I4
Rep+1 Lb l I3 Rep+1 Lb l I2 Rep+1 Lb l I1 Rep+1 Lb l J Rep→I If I=4 Then EffÉcran
Output(2,3,"Le mode ne marche pas"
Goto Q End If I=1 Then
Input "Choisir x : ",Q 2→O
Goto R End
Output(10,1,"No mbres entiers (min 2) Input "Nombres de carreau x : ",Q Output(10,1,"No mbres entiers (min 2) Input "Par : ",O
If abs(Q)≠ent(Q) ou abs(O)≠ent(O) ou Q≤1 ou O≤1 Then
Disp "Respecte la consigne !!!"
Pause Goto 0 End
If Q>999 ou O>999 Then
Disp "No mbre trop grands"
Pause Goto 0 End If O>Q Then O→N Q→O N→Q End Lb l R
Label 0 Reset la liste C
Menu chocolat choix du jeu
Si 1 alors I=0 Si 2 alors I=1 Si 3 alors I=2
Si 4 alors I=3 Si 5 alors I=4 Si 6 alors fin Si I=4 alors afficher « non » et fin
Si I=1 alors entrer x dans Q et O=2
Sinon entrer x et y dans Q et O
Si O et Q ≠ ℕ alors aller à Lbl 0
Si O et Q > 999 alors aller à Lb l 0
Si O>Q alors inverser les variables
Lb l R(eco mencer) Duplication des variables Q=A=C
EffÉcran Q→A O→B A→C B→D EffDess
A→Xmax:0→Xmin:B→Ymax:0→Ymin FoncNAff
ArrPlanAff BLANC AxesNAff
Plein Écr CouleurBord 4 CouleurTexte(BLEU) A→dim(⌊C)
Remp lir(B,⌊C) For(N,0,B,1)
Horizontal N,MA RRON End
For(N,0,A,1)
Vertical N,MA RRON End
Cercle(.5,.5,.4,2,VERT 1→J
0→K 1→H
While K≠45 et ⌊C(1)≠0 Pt-Aff(C-.5,D-.5,2,BLEU 0→K
If (I≠0 et J=2) ou I≥3 Then
J-2→J 105→K
Pt-Aff(C-.5,D-.5,2,BLANC
If I=2 ou I=3 Then If som(⌊C)=1 Then 1→C 1→D Else
nbrAléatEnt(2,som(⌊C))→M 1→N
While M>⌊C(N) M-⌊C(N)→M N+1→N End
O=B=D
O,Q : taille de la tablette in itiale
A,B : taille de la tablette sur la caluclette C,D : curseur du joueur
Réglage de la fenêtre du graphique
Création de la liste C (voir schéma à la fin)
Afficher la tablette avec des lignes marron et un rond vert pour le carreau empoisonné
Set des variables
J=1 (pour savoir J1 et J2)
K=0 (pour la détection de touche) H=1 (pour le delta du curseur)
Tant que on appui pas sur annuler et que la tablette n’est pas mangée
afficher curseur en bleu en C-.5 et D-.5 K=0
Si (I≠0 et J=2) ou I≥3 alors J=J-2
K=105
effacer le curseur
Si I=2 ou I=3 (IA aléatoire) alors
Si il reste que le carreau empoisonné alors le manger C=D=1
Sinon nbrAléatoireEntier entre 2 et nomb re de carreau x restant et le stocker dans M Boucle qui gère à red istribuer en fonction du chiffre tiré pour C et D
Cet article est rédigé par des élèves. Il peut comporter des oublis et imperfections, autant que possible signalés par nos relecteurs dans les notes d’édition.
N→C M→D End End
If I=1 et B=2 Then
If som(min(⌊C,1))=som(⌊C-min(⌊C,1)) Then
som(⌊C-min(⌊C,1))→C 2→D
Else
If som(min(⌊C,1))-1=som(⌊C-min(⌊C,1)) Then
If som(⌊C)=1 Then 1→C 1→D Else
If som(⌊C)=3 Then
nbrAléatEnt(1,2)→D reste(D,2)+1→C Else
If D=2 Then
nbrAléatEnt(1,2)→D C-nbrAléatEnt(D-1,D)→C Else
nbrAléatEnt(1,2)→D C-nbrAléatEnt(D,D+1)→C End
End
End Else
If som(min(⌊C,1))>som(⌊C-min(⌊C,1)) Then
som(⌊C-min(⌊C,1))+2→C 1→D
Else If D=1 Then C-1→C D+1→D Else C+1→C D-1→D End
Si I=1 et le joueur 1 a mangé sur B=1 alors
Si la tablette est un rectangle alors
C= en haut a droite D=2
Sinon
Si position perdante alors
Si il reste que le carreau empoisonné alors le manger
C=D=1 Sinon
Si tablette a 3 carreau x alors
D= nbrA léatoireEntier entre 1 et 2 C=(reste D/2)+1
Sinon Si D=2 alors
D= nbrA léatoireEntier entre 1 et 2 C= C-nbrAléatoireEntier entre D et D-1 Sinon
D= nbrA léatoireEntier entre 1 et 2 C= C-nbrAléatoireEntier entre D et D+1 Fin
Fin
Fin Sinon
Si la ligne du haut est inférieur a la ligne du bas alors
apliquer stratégie gagnante et stoquer les nombre dans C et D
Sinon Si D=1 alors C=C-1 D=D+1 Sinon C=C+1 D=D-1 Fin Fin Fin Fin
End End End End
Pt-Aff(C-.5,D-.5,2,ROUGE End
While K=0 getKey→K End
If K=34 ou K=24 ou K=25 ou K=26 Then
Pt-Aff(C-.5,D-.5,2,BLANC If K=34 et D-H>0:D-H→D If K=24 et C-H>0:C-H→C If K=25 et D+H≤B:D+H→D If K=26 et C+H≤A :C+H→C End
If K=21 Then 5→H Else 1→H End
If K=95 Then
Menu("Voulez-vous zoomer l'écran","Oui",Z,"Non",N Lb l Z
EffDess
Σ(⌊C(N)>0,N,1,A)→A
⌊C(1)→B
A→Xmax:0→Xmin:B→Ymax:0→Ymin Ligne(0,0,0,B,MARRON
For(N,1,A,1)
Ligne(N,0,N,⌊C(N),MARRON End
Ligne(0,0,A,0,MARRON For(N,1,B,1)
Ligne(0,N,Σ(⌊C(M)>(N-1),M,1,A),N,MA RRON End
Cercle(.5,.5,.4,2,VERT A→C
B→D Lb l N End
If K=105 et D≤⌊C(C)
Fin
Afficher curseur rouge pour montrer ou l’IA mange
Fin
Récuperer la valleur de la touche et la mettre dans K
Si K=34 ou K=24 ou K=25 ou K=26 (déplacer le curseur)
effacer le curseur
Changer la valeur de C ou D en fonction de quelle direction et tant que ça ne dépasse pas la taille de la fenêtre
Fin
Si bouton 2nde alors
H=5 Sinon H=1 Fin
Si bouton + alors
Valider le zoo m
Effacer l’écran
A= longueur de la ligne du bas non nul B= longueur ligne du haut
Réglage de la fenêtre du graphique Afficher la tablette en fonction la liste C
Afficher le cercle vert
Afficher le cu rseur sur le carreau en haut à gauche (C=A et D=B
Fin
Si bouton entrer et carreau non mangé alors
Cet article est rédigé par des élèves. Il peut comporter des oublis et imperfections, autant que possible signalés par nos relecteurs dans les notes d’édition.
Then
Σ(⌊C(N)>0,N,1,A)→M
If D=1:Ligne(M,0,(C-1)+.006A,0,BLA NC For(N,D,⌊C(C),1)
Ligne(M,N,(C-1)+.008A,N,BLA NC End
If C=1:Ligne(0,⌊C(1),0,(D-1)+.006B,BLANC For(N,C,M,1)
Ligne(N,⌊C(N),N,(D-1)+.006B,BLANC End
For(N,C,A,1)
min(D-1,⌊C(N))→⌊C(N) End
CouleurTexte(BLEU) If J≥0:reste(J,2)+1→J
If I=0 ou J=1:Texte(0,244,"J:",J
If (J=2 et I≠0) ou J≤0:CouleurTexte(ROUGE) If J=2 et I≠0:Texte(0,244,"IA
If J≤0:Texte(0,240,"IA",reste(ent(abs(J-1)/2),2)+1 End
If ⌊C(1)=0 Then EffDess
CouleurTexte(ROUGE)
If I=0:Texte(72,85,"Joueur ",J," WIN"
If J=2 et I≠0:Texte(72,35,"Inteligence Artificielle WIN"
If J=1 et I≠0:Texte(72,100," You WIN"
If J≤0:Texte(72,35,"Inteligence ",reste(ent(abs(J-1)/2),2)+1,"
Artificielle WIN"
For(N,0,100,1)
Pt-Aff(NbrA léat*A,NbrAléat*B,3,nbrAléatEnt(10,19)) End
End End
Menu(" Jeu du chocolat ","Rejouer au jeu",0," Reco mmencer la partie",R,"Qu itter",Q
Lb l Q DelVar ⌊C EffDess
10→Xmax:10→Xmin :10→Ymax: 10→Ymin AxesAff
CouleurBord 1
"GG well p layed
Effacer les lignes de chocolat des carreaux mangés
Recréer la liste C en enlevant les carreau x mangés
Couleur du texte en b leu Si J≥0 alors J=1 + reste J/2
Si I=0 ou J=1 alo rs afficher le joueur Si IA alo rs Couleur du texte en rouge Si IA alo rs afficher IA
Si J≤0 alors afficher IA 1 ou IA 2 Fin de manger
Si Fin du jeu alors
Effacer écran
Couleur du texte en rouge Si I=0 alors afficher Joueur WIN Si J=2 et I≠0 afficher IA WIN Si J=1 et I≠0 afficher You Win
Si J≤0 afficher Intéligence 1ou2 artificielle Win
Afficher 100 conféties sur l’écran aléatoirement
Fin Fin Fin
Menu Rejouer au jeu:Aller à Lbl 0 Reco mencer la partie:Aller à Lb l R Quitter : A ller à Lb l Q
Lb l Q
Effacer la liste C Effacer l’écran
Reset les graphiques par défaux
Afficher GG well p layed