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

Turbo Pascal Discussion :

Jeu de Sudoku (en Pascal) [TPW]


Sujet :

Turbo Pascal

  1. #21
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 550
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 550
    Points : 3 916
    Points
    3 916
    Par défaut
    Salut à tous

    Citation Envoyé par droggo Voir le message
    Bonjour,

    +1

    et de plus quand je vois des labels et des goto, je vais voir ailleurs sans me poser d'autres questions.
    Moi aussi... Je ne conteste pas la possibilité d'utiliser le GOTO là où il peut rendre service mais il me semble que le code qui nous intéresse peut largement s'en passer au profit d'un boucle while.
    Le langage Pascal a été conçu en bonne partie pour éviter de tels errements.

    Cdlt

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  2. #22
    Futur Membre du Club
    Homme Profil pro
    étudiant
    Inscrit en
    Novembre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2016
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Vraiment merci, je vais essayer à comprendre votre programme pas à pas...

  3. #23
    Membre émérite Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Points : 2 286
    Points
    2 286
    Par défaut
    C'est une façon de faire (algorithme), il y en a sans aucun doute d'autres :

    Ce programme pourrait être optimisé et peut-être même comporte t'il des bugs !?

    Si tu as des questions, n'hésite pas à revenir
    Emérite, émérite je ne pense pas ... plutôt dans le développement depuis FORT FORT longtemps, c'est mon job, ça oui
    A part ça ... Il ne pleut jamais en Moselle !

  4. #24
    Futur Membre du Club
    Homme Profil pro
    étudiant
    Inscrit en
    Novembre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2016
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Vraiment merci bien pour votre aide.. en faite je n'ai pas compris ton algo mais j'ai modifier sur ma version et j'ai obtenue un bon résultat:

    Nom : Sans titre5.png
Affichages : 101
Taille : 58,6 Ko

    alors mon code de génération de puzzles devient comme ce ci:

    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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    program test;
    uses wincrt;
    type
      short = 1..9;
     
    var
      i, k, j, n,s,o, l, p, q, limk1, limk2, limi1, limi2,c,w: short;
      ch, num: string[1];
      x, y, no: integer;
      b, t: boolean;
      key: char;
      M: array [1..9, 1..9] of string[1];
      xy: array [1..2, 1..81] of integer;
     
    label
      theend, randoms, repeatative;
     
    begin
     
    for k:=1 to 9 do
    for i:=1 to 9 do
    M[i,k]:='*';
      randomize;
      for k := 1 to 9 do
      begin
        if k in [1..3] then
        begin
          limk1 := 1;
          limk2 := 3;
        end
        else if k in [4..6] then
        begin
          limk1 := 4;
          limk2 := 6;
        end
        else
        begin
          limk1 := 7;
          limk2 := 9;
        end;
     
        repeatative:
        for i := 1 to 9 do
        begin
          if i in [1..3] then
          begin
            limi1 := 1;
            limi2 := 3;
          end
          else if i in [4..6] then
          begin
            limi1 := 4;
            limi2 := 6;
          end
          else
          begin
            limi1 := 7;
            limi2 := 9;
          end;
     
          no:=0;
          randoms:
          no:=no+1;
          str(random(9) + 1, ch);
          b := True;
          for j := 1 to 9 do
            b := b and (ch <> M[j, k]);
          for l := 1 to 9 do
            b := b and (ch <> M[i, l]);
          for p := limk1 to limk2 do
            for q := limi1 to limi2 do
              b := b and (ch <> M[q, p]);
          if b = True then
            M[i,k] := ch
          else
          begin
          if no=200 then
          begin
          for o:=1 to 9 do
          M[o,k]:='*';
          goto repeatative
          end;
          goto randoms
          end;
     
        end;
      end;
      clrscr;
          for c:=1 to 9 do
          for w:=1 to 9 do
          if w=9 then
          writeln(M[c,w])
          else
          write(M[c,w]);
          readln;
      end.

    L'idée c que à chaque fois qu'il va se bloquer et me donner une boucle infinie j'efface tout la ligne et je retourne en i=1 .. très simple
    et merci à tous une autre fois

  5. #25
    Membre émérite Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Points : 2 286
    Points
    2 286
    Par défaut
    Pour le fun ...
    Je te propose
    de lancer 1000 fois ta boucle
    en virant juste le
    dans ton code ... pour éviter les blocages ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    begin
     compt:=0;
     for compt:=1 to 1000 do
          begin
     
     // ton code
     
         writeln('compt:',compt);
    end;
    readln;
    end.
    Nom : Capture.JPG
Affichages : 108
Taille : 15,4 Ko
    Emérite, émérite je ne pense pas ... plutôt dans le développement depuis FORT FORT longtemps, c'est mon job, ça oui
    A part ça ... Il ne pleut jamais en Moselle !

  6. #26
    Futur Membre du Club
    Homme Profil pro
    étudiant
    Inscrit en
    Novembre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2016
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    J'ai déja complété mon jeu Sudoku et voilà l'application compressée (.zip) :

    Sudoku Game By CrYmFoX.zip

    Je voulais juste exploiter mes connaissance en pascal en créant ce jeu.. et en + de me préparer pour la plus difficile que cette langage .
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 15
    Dernier message: 20/04/2015, 19h58
  2. Jeu du Sudoku
    Par Hero13 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 06/10/2014, 11h07
  3. Interface graphique pour jeu de Sudoku
    Par Stradithehutt dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 01/11/2006, 11h43

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