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

Apple Discussion :

Echec et Mat


Sujet :

Apple

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2016
    Messages : 5
    Par défaut Echec et Mat
    Bonjour, je suis un grand débutant en programmation et je dois faire un exercice donné par mon professeur de programmation et je suis bloqué. Tout d'abord voici la consigne:

    Joseph Marchand est en train d'apprendre à jouer aux échecs en compagnie de son ami Garry Kasparov. Afin de vérifier si Joseph a bien compris comment se déplace une reine, Garry place N reines sur un échiquier et lui demande combien il y a de cases qu'aucune reine ne peut atteindre en un seul tour de jeu. Vous devez réaliser pour lui un programme qui se charge de trouver la réponse afin de vérifier celle de Joseph.

    On rappelle qu'un échiquier est composé de 8 × 8 = 64 cases. Une reine peut se déplacer en ligne droite, verticalement, horizontalement, et diagonalement, d'autant de cases qu'elle le veut.

    L'entrée standard contient l'échiquier. '.' représente une case libre et 'X' représente une case occupée par une reine.

    Sortie
    Le nombre de cases qu'aucune reine ne peut atteindre en un seul tour de jeu.

    Contraintes
    0 <= N <= 64 où N est le nombre de reines.
    Contraintes d'exécution
    Utilisation mémoire maximum
    100 kilo-octets
    Temps d'exécution maximum
    200 millisecondes
    Exemples d'entrée/sortie
    Exemple d'entrée
    ........ ........ ........ ........ ...X.... ........ ........ ........
    Exemple de sortie
    36
    Commentaire
    Les déplacements possibles de la dame sont ici indiqués par des x minuscules :

    1
    2
    3
    4
    5
    6
    7
    8
    ...x...x
    x..x..x.
    .x.x.x..
    ..xxx...
    xxxXxxxx
    ..xxx...
    .x.x.x..
    x..x..x.
    Il reste donc 36 cases libres.

    Exemple d'entrée
    ........ .X...... ........ ........ ...X.... ........ ........ ........
    Exemple de sortie
    20
    et donc j'ai essayer de faire l'échequier avec une boucle for, avec un np. array ou avec une list mais quoique je fasse je n'arrive pas à afficher d'échequier. Pour tout dire je suis totalement perdu et j'attends avec impatience votre aide. Merci à vous!

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 567
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 567
    Par défaut
    Montres-nous le code que tu as déjà fait.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2016
    Messages : 5
    Par défaut
    import numpy as np
    def echecEtMath (N):
    if N<=64:
    echequier=np.array([["."],["."],["."],["."],["."],["."],["."],["."]],
    [["."],["."],["."],["."],["."],["."],["."],["."]],
    [["."],["."],["."],["."],["."],["."],["."],["."]],
    [["."],["."],["."],["."],["."],["."],["."],["."]],
    [["."],["."],["."],["."],["."],["."],["."],["."]],
    [["."],["."],["."],["."],["."],["."],["."],["."]],
    [["."],["."],["."],["."],["."],["."],["."],["."]],
    [["."],["."],["."],["."],["."],["."],["."],["."]],
    [["."],["."],["."],["."],["."],["."],["."],["."]],)

    return N
    print echecEtMath(2)

    voici mon programme avec np.array cela me sort une erreur: [["."],["."],["."],["."],["."],["."],["."],["."]],)
    ValueError: only 2 non-keyword arguments accepted

    sinon j'ai essayé avec une boucle for ce qui marche au niveau de l'affichage mais après je ne sais pas quoi faire:


    def echecEtMath (N):
    if N<=64:
    for i in range (8):
    print "........"


    print echecEtMath (5)
    Images attachées Images attachées  

  4. #4
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2016
    Messages : 5
    Par défaut
    j'ai fais ca mais ca fait erreur:

    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
    def echequier(x,y):
        L=[[".", ".", ".", ".", ".", ".", ".", "."],
           [".", ".", ".", ".", ".", ".", ".", "."],
           [".", ".", ".", ".", ".", ".", ".", "."],
           [".", ".", ".", ".", ".", ".", ".", "."],
           [".", ".", ".", ".", ".", ".", ".", "."],
           [".", ".", ".", ".", ".", ".", ".", "."],
           [".", ".", ".", ".", ".", ".", ".", "."],
           [".", ".", ".", ".", ".", ".", ".", "."]]
        L[x-1][y-1]="X"
        deplaceable=True
        casesAccessibles=0
        casesInaccessibles=0
        i=1
        while deplaceable==True:        
            if L[x+i][y]=="." and x+i>=0 and y>=0 and x+i<=7 and y<=7:
                L[x+i][y]=="x"
                casesAccessibles=casesAccessibles+1
            elif L[x][y+i]=="." and x>=0 and y+i>=0 and x<=7 and y+i<=7:
                L[x][y+i]=="x"
                casesAccessibles=casesAccessibles+1
            elif L[x-i][y]=="." and x-i>=0 and y>=0 and x-i<=7 and y<=7:
                L[x-i][y]=="x"
                casesAccessibles=casesAccessibles+1
            elif L[x][y-i]=="." and x>=0 and y-i>=0 and x<=7 and y-i<=7:
                L[x][y-i]=="x"
                casesAccessibles=casesAccessibles+1
            elif L[x+i][y+i]=="." and x+i>=0 and y+i>=0 and x+i<=7 and y+i<=7: 
                L[x+i][y+i]=="x"
                casesAccessibles=casesAccessibles+1
            elif L[x-i][y-i]=="."and x-i>=0 and y-i>=0 and x-i<=7 and y-i<=7:
                L[x-i][y-i]=="x"
                casesAccessibles=casesAccessibles+1
            elif L[x+i][y-i]=="." and x+i>=0 and y-i>=0 and x+i<=7 and y-i<=7:
                L[x+i][y-i]=="x"
                casesAccessibles=casesAccessibles+1
            elif L[x-i][y+i]=="." and x-i>=0 and y+i>=0 and x-i<=7 and y+i<=7:
                L[x-i][y+i]=="x"
                casesAccessibles=casesAccessibles+1
            else:
                deplaceable=False
            i=i+1
        casesInaccessibles=64-casesAccessibles
        return casesInaccessibles

Discussions similaires

  1. La chasse aux bugs (jeu d'Echecs)
    Par Sub0 dans le forum Développement 2D, 3D et Jeux
    Réponses: 117
    Dernier message: 06/11/2008, 09h46
  2. programmer un Echec & Mat
    Par paz78 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 19/08/2008, 14h58
  3. ORA-12570 : TNS : echec à la lecture du paquet
    Par tethrit dans le forum Oracle
    Réponses: 21
    Dernier message: 17/01/2005, 17h22
  4. [CR][VB.NET] Echec de connexion
    Par Shuret dans le forum SDK
    Réponses: 5
    Dernier message: 15/09/2004, 10h46
  5. empecher win98 de booter en mode sans echec
    Par altahir007 dans le forum Windows
    Réponses: 3
    Dernier message: 03/12/2003, 13h49

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