IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

adapter un programme pour jouer contre la machine,


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 208
    Par défaut adapter un programme pour jouer contre la machine,
    Bonjour,
    je bloque sur un exercice de morpion

    le code est le suivant :

    je dois 'adapter ce programme pour jouer contre la machine, et non plus à deux
    joueurs humains
    "
    j'ai aucune idée sur comment le faire :s

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    #!/usr/bin/env python
    # -*- coding: UTF-8 -*-
     
    J = True
    T = 3
    H = 60
    M = [T * [False] for x in range(T)]
     
     
    def joue(event) :
    	global J
    	w = event.widget
    	if M[w.R][w.C] :
    		return
    	if J :
    		fais_x(w)
    	else :
    		fais_o(w)
    	s = symbole(J)
    	M[w.R][w.C] = s
    	if gagnant(s) : 
    		info['text'] = 'joueur %s gagne' % s
    	J =  not J
     
     
    def fais_x(w) :
    	w.create_polygon(10, 10, 20, 10, 55, 45, 55, 55, 45, 55, 10, 20, fill = 'red')
    	w.create_polygon(10, 55, 10, 45, 45, 10, 55, 10, 55, 20, 20, 55, fill = 'red')
     
    def fais_o(w) : w.create_oval(10, 10, 55, 55, width = 10)
     
    def symbole(j) : return ['O', 'X'][j]
     
     
    def gagnant(s) :
    	global info
    	for x in range(T) :
    		if [M[x][0], M[x][1], M[x][2]].count(s) is T :
    			return True	
    		if [M[0][x], M[1][x], M[2][x]].count(s) is T :
    			return True	
    	if [M[0][0], M[1][1], M[2][2]].count(s) is T :
    			return True
    	if [M[0][2], M[1][1], M[2][0]].count(s) is T :
    			return True
    	if False not in M[0] + M[1] + M[2] :
    		info ['text'] = 'GAME OVER'
     
    from Tkinter import *
    morpion = Tk()
    morpion.title('MORPION 1.0')
    grille = Frame(morpion)
     
    for R in range(T) :
    	for C in range(T) :
    		Cell = Canvas(grille, bg = 'light grey', width = H, height = H)
    		Cell.bind("<Button-1>", joue)
    		Cell.grid(row = R, column = C)
    		Cell.R, Cell.C = R, C
     
     
    grille.pack()
    stop = Button(morpion, text='ASSEZ', command = morpion.destroy)
    stop.pack()
    info = Label(morpion)
    info.pack()
     
    morpion.mainloop()

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 787
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 787
    Par défaut
    Salut,

    Il faudrait ajouter une fonction "machine_joue" paramétrable en fonction de qui commence: machine ou joueur.
    Dans un premier temps, la machine pourra jouer bêtement en choisissant n'importe quelle case libre.
    Puis elle pourrait gagner à tous les coups dans certaines conditions.

    Cela change pas mal de choses dans la structure du programme que vous avez.
    Mais c'est votre exercice de programmation...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Arguments pour et contre Access ?
    Par bottura dans le forum Sondages et Débats
    Réponses: 240
    Dernier message: 23/03/2018, 23h25
  2. Réponses: 0
    Dernier message: 21/02/2014, 10h46
  3. logiciel programmable pour allumer et jouer musique
    Par happyboon dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 07/12/2012, 18h26
  4. comment adapter un programme vb 6.0 pour tous les écran
    Par saidm dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/05/2009, 15h29
  5. Réponses: 7
    Dernier message: 27/04/2006, 14h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo