Derniers messages sur Zeste de Savoirhttps://zestedesavoir.com/forums/2019-11-30T18:31:01+01:00Les derniers messages parus sur le forum de Zeste de Savoir.Besoin d'aide pour un jeu "Morpion" en python, message #2116452019-11-30T18:31:01+01:00Gregory-F/@Gregory-Fhttps://zestedesavoir.com/forums/sujet/13276/besoin-daide-pour-un-jeu-morpion-en-python/?page=1#p211645<p>Salut,</p>
<p>je ne sais pas si tu as déjà vu les dictionnaires, mais je pense qu’ils t’aideraient pour ta grille. chiffres de 1 à 9 en clef et l’un des trois suivants <code>["empty", "circle", "x"]</code> en valeur. Rien que la création se ferait en une simple ligne: <code>case = {i+1:"empty" for i in range(9)}</code></p>
<p>Avec ça tu peux transformer ta fonction <code>show_grid()</code> comme ceci:</p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span></div><pre><code class="hljs language-py"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">show_grid</span><span class="hljs-params">()</span>:</span>
print(<span class="hljs-string">f"| <span class="hljs-subst">{case[<span class="hljs-number">1</span>]=}</span> | <span class="hljs-subst">{case[<span class="hljs-number">2</span>]=}</span> | <span class="hljs-subst">{case[<span class="hljs-number">3</span>]=}</span> |"</span>)
<span class="hljs-comment">#je n'écris pas les deux autres lignes.</span>
</code></pre></div>
<p>NOTE: ceci ne marche que depuis python3.8 pas avant. Avant tu devras utiliser: <code>print(f"| case[1]={case[1]} | case[2]={case[2]} | case[3]={case[3]} |")</code>. Si ta version est encore plus ancienne que 3.6 tu devras utiliser la fonction formate. Si elle est encore plus ancienne, il faudra demander à Fred Pierrafeu <img src="/static/smileys/langue.png" alt=":P" class="smiley"></p>
<p>pour mettre ton dictionnaire que je nommé "case" tu procèdes comme ceci:</p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span></div><pre><code class="hljs language-py">playerChoice=input(<span class="hljs-string">"What case do you want to play ( you'll play the crosses) : "</span>)
case[playerChoice]=<span class="hljs-string">"x"</span>
</code></pre></div>
<p>Pour l’IA qui prend un chiffre au hasard, vérifie qu’il soit <code>empty</code> et mets à jour la case. Si la case est non <code>empty</code> reste dans ta boucle de choix.</p>
<p>lignes 37 et 38 j’aurais fait le contraire:</p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span></div><pre><code class="hljs language-py">played = <span class="hljs-literal">True</span>
<span class="hljs-keyword">while</span> played:
<span class="hljs-comment">#tout le reste</span>
</code></pre></div>
<p>ou change <code>played</code> par <code>is_playing</code> si tu veux <img src="/static/smileys/smile.png" alt=":)" class="smiley"> quoi qu’il en soit ce que j’essaye de te dire c’est que ça t’aurais fait économiser des touches XD</p>
<p>Je te laisse voir par toi même comment adapter tes vérifications aux dictionnaires. Je ne voudrais pas te priver de ce plaisir.</p>
<p>Bon WE</p>Besoin d'aide pour un jeu "Morpion" en python, message #2116252019-11-29T21:46:35+01:00kayou/@kayouhttps://zestedesavoir.com/forums/sujet/13276/besoin-daide-pour-un-jeu-morpion-en-python/?page=1#p211625<p>Voici un example de debut de la fonction <code>playerWin</code> qui permet ensuite d’utiliser les symboles <code>X</code> et <code>O</code> lors de l’appel de la fonction dans la boucle de fin:</p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div><pre><code class="hljs language-py"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">playerWin</span><span class="hljs-params">(mark)</span>:</span> <span class="hljs-comment"># Nota 1</span>
gameFinished = <span class="hljs-literal">False</span> <span class="hljs-comment"># Cf Nota 2</span>
<span class="hljs-comment">#lines and columns </span>
<span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> range(<span class="hljs-number">3</span>): <span class="hljs-comment"># Cf Nota 1</span>
<span class="hljs-keyword">if</span> all(mark == grid[i][j] <span class="hljs-keyword">for</span> j <span class="hljs-keyword">in</span> range(<span class="hljs-number">3</span>)) <span class="hljs-keyword">or</span> all(
mark == grid[j][i] <span class="hljs-keyword">for</span> j <span class="hljs-keyword">in</span> range(<span class="hljs-number">3</span>)
):
</code></pre></div>
<p><strong>Nota 1:</strong> Dans la declaration de fonction on n’utilise pas des chaines mais des variables, ici je la nome <code>mark</code>, tu peux ensuite dans la boucle finale l’utiliser en faisant <code>playerWin('X')</code></p>
<p><strong>Nota 2:</strong> la variable <code>gameFinished</code> ne sert a rien dans l’appel de la fonction, il faut juste l’initialiser au debut la fonction pour éviter <code>UnboundLocalError: local variable 'gameFinished' referenced before assignment</code>.</p>
<p>PS: Je te conseille fortement de lire <a href="https://zestedesavoir.com/tutoriels/799/apprendre-a-programmer-avec-python-3/">le Tutoriel python de zds</a> et en particulier la partie 5 sur les fonctions.</p>Besoin d'aide pour un jeu "Morpion" en python, message #2116202019-11-29T19:07:16+01:00Moréo/@Mor%C3%A9ohttps://zestedesavoir.com/forums/sujet/13276/besoin-daide-pour-un-jeu-morpion-en-python/?page=1#p211620<p>Alors, pour la boucle de fin de <a href="/membres/voir/kayou/" rel="nofollow" class="ping ping-link">@<span class="ping-username">kayou</span></a> , problème étant que quand je définis playerWin, je peux pas mettre une string en paramètre apparemment, du coup est-ce qu’il y aurai une solution</p>Besoin d'aide pour un jeu "Morpion" en python, message #2116082019-11-29T10:14:17+01:00Moréo/@Mor%C3%A9ohttps://zestedesavoir.com/forums/sujet/13276/besoin-daide-pour-un-jeu-morpion-en-python/?page=1#p211608<p>Je vais essayer vos conseils <a href="/membres/voir/kayou/" rel="nofollow" class="ping ping-link">@<span class="ping-username">kayou</span></a> et <a href="/membres/voir/Angelo/" rel="nofollow" class="ping ping-link">@<span class="ping-username">Angelo</span></a>, et <a href="/membres/voir/fred1599/" rel="nofollow" class="ping ping-link">@<span class="ping-username">fred1599</span></a> ce qu’on a fait en cours n’est pas allé vers ce que tu as proposé, et pourtant le cours avait l’air complet, donc je suis pas trop allé chercher plus loin.</p>Besoin d'aide pour un jeu "Morpion" en python, message #2115932019-11-28T23:58:55+01:00kayou/@kayouhttps://zestedesavoir.com/forums/sujet/13276/besoin-daide-pour-un-jeu-morpion-en-python/?page=1#p211593<p>Le jeu ne peut pas finir, la variable du <code>while</code> de Main loop est <code>gameFinished</code>, par contre dans les test de fin (lignes 86, 87) la variable est renommée en <code>gamefinished</code>, les majuscules ou minuscules sont importantes, de plus au 10<sup>eme</sup> tour l’IA ne peut pas jouer et donc restera indéfiniment dans sa boucle <code>while</code> de la fonction <code>turn</code>, cela revient à résoudre le cas "Match nul".</p>
<p>Pour simplifier ton code suis le conseil de <a href="/membres/voir/Angelo/" rel="nofollow" class="ping ping-link">@<span class="ping-username">Angelo</span></a> et fait une seule fonction dans la quelle tu passeras en paramètre le type de joueur avec <code>X</code> ou <code>O</code> par exemple. La boucle de fin pourrait devenir:</p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span></div><pre><code class="hljs language-py"><span class="hljs-keyword">while</span> gameFinished == <span class="hljs-literal">False</span> :
turn()
gameFinished = playerWin(<span class="hljs-string">'X'</span>) <span class="hljs-keyword">or</span> playerWin(<span class="hljs-string">'O'</span>)
</code></pre></div>Besoin d'aide pour un jeu "Morpion" en python, message #2115882019-11-28T23:10:23+01:00fred1599/@fred1599https://zestedesavoir.com/forums/sujet/13276/besoin-daide-pour-un-jeu-morpion-en-python/?page=1#p211588<p>Bonsoir,</p>
<p>Pourquoi ces "00", "01", "..", … ?</p>
<p>Heureusement que pour <code>showGrid</code>, on a que trois lignes <img src="/static/smileys/heureux.png" alt=":D" class="smiley"> </p>
<p>Pourquoi le morpion est représenté sur 3 lignes distinctes (ligne 5 à 7) alors que par la suite on le représente sur 1 ligne ?</p>
<p>Ligne 21 à 34, c’est quand même très ressemblant <img src="/static/smileys/huh.png" alt=":o" class="smiley"> </p>
<p>Les conditions sont trop longues, par exemple ligne 40</p>
<p>Je vois deux gros problèmes,</p>
<ol>
<li>La conception (elle n’est pas assez posée sur papier avant l’écriture du code)</li>
<li>L’algorithme trop complexe</li>
</ol>
<p>Et un autre, dans le sens qu’on utilise pas assez la force du langage pour faire ce genre d’exercice.</p>
<p>Par exemple, la fonction <code>showGrid</code> aurait pu être représentée comme ci-dessous.</p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div><pre><code class="hljs language-py">aiGrid=[<span class="hljs-string">'_'</span> <span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> range(<span class="hljs-number">9</span>)]
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">showGrid</span><span class="hljs-params">(grid, column)</span>:</span>
<span class="hljs-keyword">for</span> i, char <span class="hljs-keyword">in</span> enumerate(aiGrid, start=<span class="hljs-number">1</span>):
print(<span class="hljs-string">f'[<span class="hljs-subst">{char}</span>]'</span>, end=<span class="hljs-string">''</span>)
<span class="hljs-keyword">if</span> i % column == <span class="hljs-number">0</span>:
print(<span class="hljs-string">'\n'</span>)
showGrid(aiGrid, <span class="hljs-number">3</span>) <span class="hljs-comment"># découpage de la ligne en lignes contenant 3 colonnes</span>
</code></pre></div>
<p>Mais faut avoir chercher ce qu’est <code>enumerate</code>, savoir utiliser l’opérateur modulo (<code>%</code>) et avoir un minimum de connaissance dans les chaînes de caractères et leur formatage.
En ce qui me concerne, ça reste dans les bases du langage que tu apprends.
Si tu prends le tutoriel officiel, tu ne les trouveras pas très loin de son départ.</p>Besoin d'aide pour un jeu "Morpion" en python, message #2115752019-11-28T20:06:54+01:00Moréo/@Mor%C3%A9ohttps://zestedesavoir.com/forums/sujet/13276/besoin-daide-pour-un-jeu-morpion-en-python/?page=1#p211575<p>Donc de pas mettre en paramètre le gamefinished1 pour aiWin ? </p>Besoin d'aide pour un jeu "Morpion" en python, message #2115742019-11-28T19:58:17+01:00kayou/@kayouhttps://zestedesavoir.com/forums/sujet/13276/besoin-daide-pour-un-jeu-morpion-en-python/?page=1#p211574<p>La partie est finie quand le joueur à gagné <code>ou</code> l’ia à gagné <code>ou</code> il y a match nul.</p>
<p>c’est mieux de la supprimer le 1 dans la variable <code>gameFinished1</code> de 'aiWin(gameFinished1)' </p>Besoin d'aide pour un jeu "Morpion" en python, message #2115732019-11-28T19:47:59+01:00Moréo/@Mor%C3%A9ohttps://zestedesavoir.com/forums/sujet/13276/besoin-daide-pour-un-jeu-morpion-en-python/?page=1#p211573<p>Donc il faudrait que je refasse gameFinished1 si j’ai bien compris ? </p>Besoin d'aide pour un jeu "Morpion" en python, message #2115722019-11-28T19:45:10+01:00kayou/@kayouhttps://zestedesavoir.com/forums/sujet/13276/besoin-daide-pour-un-jeu-morpion-en-python/?page=1#p211572<p>Il ya un problème dans la boucle de finale:</p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span><span></span></div><pre><code class="hljs language-py"><span class="hljs-keyword">while</span> gameFinished == <span class="hljs-literal">False</span>: <span class="hljs-comment"># or gameFinished1 == False:</span>
turn()
gamefinished=playerWin(gameFinished)
gamefinished=aiWin(gameFinished)
</code></pre></div>
<p>Pour que cette boucle se termine il faut que ce soit l’IA qui gagne parce que la variable <code>gamefinished</code> a toujours la valeur de <code>aiWin</code> lors du passage par le <code>while</code>, et il manque aussi le cas du match nul.</p>
<p>Edit: Le cas des diagonales n’est bien traité. </p>Besoin d'aide pour un jeu "Morpion" en python, message #2115612019-11-28T18:07:14+01:00adri1/@adri1https://zestedesavoir.com/forums/sujet/13276/besoin-daide-pour-un-jeu-morpion-en-python/?page=1#p211561<blockquote>
<p>et gameFinished1 est une erreur, j’ai oublié de l’enlever sur cette ligne mais ce n’est pas la source du probleme.</p>
</blockquote>
<p>Ben peut être bien que si puisqu’il fait partie de ta condition de sortie…</p>Besoin d'aide pour un jeu "Morpion" en python, message #2115602019-11-28T18:05:57+01:00Moréo/@Mor%C3%A9ohttps://zestedesavoir.com/forums/sujet/13276/besoin-daide-pour-un-jeu-morpion-en-python/?page=1#p211560<p>Salut, les deux fonctions c’est un peu cons mais c’était pour avoir bien la structure et pas m’y perdre, et gameFinished1 est une erreur, j’ai oublié de l’enlever sur cette ligne mais ce n’est pas la source du probleme.</p>Besoin d'aide pour un jeu "Morpion" en python, message #2115562019-11-28T17:11:04+01:00DonKnacki/@DonKnackihttps://zestedesavoir.com/forums/sujet/13276/besoin-daide-pour-un-jeu-morpion-en-python/?page=1#p211556<p>Salut</p>
<p>J’ai 2 remarques:</p>
<p>1) pourquoi faire 2 fonctions playerWin et aiWin qui font la même chose (à un print près)<br>
2) ou est la déclaration de la variable gameFinished1 </p>Besoin d'aide pour un jeu "Morpion" en python, message #2115532019-11-28T16:28:40+01:00Moréo/@Mor%C3%A9ohttps://zestedesavoir.com/forums/sujet/13276/besoin-daide-pour-un-jeu-morpion-en-python/?page=1#p211553<p>Bonjour, je suis actuellement en première et je dois programmer un morpion en python. J’ai quasiment fini mais je n’arrive pas à faire terminer le jeu, il continue malgré les fonctions qui permettent d’y mettre fin. J’ai également reçu de l’aide de mon professeur qui m’a donné des pistes, mais je n’arrive toujours pas à voir la faute. ( ci-joint le message de mon professeur et le code ).</p>
<p>PS : Les commentaires sont en anglais car je travaille avec une anglophone.`<code></code>py</p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div><pre><code class="hljs language-py"><span class="hljs-comment">#import</span>
<span class="hljs-keyword">import</span> random
<span class="hljs-keyword">import</span> sys
<span class="hljs-comment">#grid declaration</span>
line1 =[<span class="hljs-string">"00"</span>,<span class="hljs-string">"01"</span>,<span class="hljs-string">"02"</span>]
line2 =[<span class="hljs-string">"10"</span>,<span class="hljs-string">"11"</span>,<span class="hljs-string">"12"</span>]
line3 =[<span class="hljs-string">"20"</span>,<span class="hljs-string">"21"</span>,<span class="hljs-string">"22"</span>]
grid=[line1, line2, line3]
<span class="hljs-comment">#function to show the grid</span>
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">showGrid</span><span class="hljs-params">()</span> :</span>
print(line1[<span class="hljs-number">0</span>], line1[<span class="hljs-number">1</span>], line1[<span class="hljs-number">2</span>])
print(line2[<span class="hljs-number">0</span>], line2[<span class="hljs-number">1</span>] ,line2[<span class="hljs-number">2</span>])
print(line3[<span class="hljs-number">0</span>], line3[<span class="hljs-number">1</span>], line3[<span class="hljs-number">2</span>])
<span class="hljs-comment">#function with the whole game</span>
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">turn</span><span class="hljs-params">()</span> :</span>
showGrid()
<span class="hljs-comment">#The player choose what case he wants to play</span>
playerChoice=input(<span class="hljs-string">"What case do you want to play ( you'll play the crosses) : "</span>)
<span class="hljs-comment">#Three loops, one for each line, to put the "X" at the chosen spot</span>
n=<span class="hljs-number">0</span>
<span class="hljs-keyword">for</span> case <span class="hljs-keyword">in</span> line1:
<span class="hljs-keyword">if</span> case == playerChoice:
line1[n] = <span class="hljs-string">"X"</span>
n+=<span class="hljs-number">1</span>
o=<span class="hljs-number">0</span>
<span class="hljs-keyword">for</span> case <span class="hljs-keyword">in</span> line2:
<span class="hljs-keyword">if</span> case == playerChoice:
line2[o] = <span class="hljs-string">"X"</span>
o+=<span class="hljs-number">1</span>
p=<span class="hljs-number">0</span>
<span class="hljs-keyword">for</span> case <span class="hljs-keyword">in</span> line3:
<span class="hljs-keyword">if</span> case == playerChoice:
line3[p] = <span class="hljs-string">"X"</span>
p+=<span class="hljs-number">1</span>
<span class="hljs-comment">#The "A.I." choose randomly a case among the "aiGrid" list</span>
aiGrid=[<span class="hljs-string">"00"</span>, <span class="hljs-string">"01"</span>, <span class="hljs-string">"02"</span>, <span class="hljs-string">"10"</span>, <span class="hljs-string">"11"</span>, <span class="hljs-string">"12"</span>, <span class="hljs-string">"20"</span>, <span class="hljs-string">"21"</span>, <span class="hljs-string">"22"</span>]
played = <span class="hljs-literal">False</span>
<span class="hljs-keyword">while</span> played == <span class="hljs-literal">False</span>:
aiChoice= random.choice(aiGrid)
<span class="hljs-keyword">if</span> grid[int(aiChoice[<span class="hljs-number">0</span>])][int(aiChoice[<span class="hljs-number">1</span>])] != <span class="hljs-string">"O"</span> <span class="hljs-keyword">and</span> grid[int(aiChoice[<span class="hljs-number">0</span>])][int(aiChoice[<span class="hljs-number">1</span>])] != <span class="hljs-string">"X"</span>:
grid[int(aiChoice[<span class="hljs-number">0</span>])][int(aiChoice[<span class="hljs-number">1</span>])] = <span class="hljs-string">"O"</span>
played = <span class="hljs-literal">True</span>
<span class="hljs-keyword">else</span>:
played = <span class="hljs-literal">False</span>
<span class="hljs-comment">#function to detect if the player wins</span>
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">playerWin</span><span class="hljs-params">(gameFinished)</span>:</span>
<span class="hljs-comment">#lines and columns </span>
<span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> range(<span class="hljs-number">3</span>):
<span class="hljs-keyword">if</span> all(<span class="hljs-string">"X"</span> == grid[i][j] <span class="hljs-keyword">for</span> j <span class="hljs-keyword">in</span> range(<span class="hljs-number">3</span>)) <span class="hljs-keyword">or</span> all(
<span class="hljs-string">"X"</span> == grid[j][i] <span class="hljs-keyword">for</span> j <span class="hljs-keyword">in</span> range(<span class="hljs-number">3</span>)
):
gameFinished = <span class="hljs-literal">True</span>
<span class="hljs-keyword">break</span>
<span class="hljs-comment"># diagonals</span>
<span class="hljs-keyword">if</span> (
<span class="hljs-keyword">not</span> gameFinished
<span class="hljs-keyword">and</span> all(<span class="hljs-string">"X"</span> == grid[i][i] <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> range(<span class="hljs-number">3</span>))
<span class="hljs-keyword">or</span> all(<span class="hljs-string">"X"</span> == grid[i][<span class="hljs-number">2</span> - i] <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> range(<span class="hljs-number">3</span>))):
gameFinished = <span class="hljs-literal">True</span>
print(<span class="hljs-string">"Bravo !"</span>)
<span class="hljs-keyword">return</span> gameFinished
<span class="hljs-comment">#function to detect if the player wins </span>
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">aiWin</span><span class="hljs-params">(gameFinished1)</span>:</span>
<span class="hljs-comment">#lines and columns</span>
<span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> range(<span class="hljs-number">3</span>):
<span class="hljs-keyword">if</span> all(<span class="hljs-string">"O"</span> == grid[i][j] <span class="hljs-keyword">for</span> j <span class="hljs-keyword">in</span> range(<span class="hljs-number">3</span>)) <span class="hljs-keyword">or</span> all(
<span class="hljs-string">"O"</span> == grid[j][i] <span class="hljs-keyword">for</span> j <span class="hljs-keyword">in</span> range(<span class="hljs-number">3</span>)
):
gameFinished = <span class="hljs-literal">True</span>
<span class="hljs-keyword">break</span>
<span class="hljs-comment">#diagonals</span>
<span class="hljs-keyword">if</span> (
gameFinished == <span class="hljs-literal">False</span>
<span class="hljs-keyword">and</span> all(<span class="hljs-string">"O"</span> == grid[i][i] <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> range(<span class="hljs-number">3</span>))
<span class="hljs-keyword">or</span> all(<span class="hljs-string">"O"</span> == grid[i][<span class="hljs-number">2</span> - i] <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> range(<span class="hljs-number">3</span>))
):
gameFinished1 = <span class="hljs-literal">True</span>
print(<span class="hljs-string">"Dommage !"</span>)
<span class="hljs-keyword">return</span> gameFinished
<span class="hljs-comment">#gameFinished is for the player and gameFinished for the A.I.</span>
gameFinished=<span class="hljs-literal">False</span>
<span class="hljs-comment">#Main loop</span>
<span class="hljs-keyword">while</span> gameFinished == <span class="hljs-literal">False</span> <span class="hljs-keyword">or</span> gameFinished1 == <span class="hljs-literal">False</span>:
turn()
gamefinished=playerWin(gameFinished)
gamefinished=aiWin(gameFinished)
sys.exit()
</code></pre></div>