Page 2 sur 2

Publié : mar. 11/avr./2006 16:46
par scaraber
Salut
deja je te dit bravo ...
je trouve ce log vraiment sympa.
voici une fonction suplementaire pour le programme, je n'est pa spus la tester pour manque de moyen je n'est pas uen impriment avec moi en vacances c deja beau davoir internet et un Pc...

Voici comment faire

tout en haut il fauut ajouter dans les enumeration

Code : Tout sélectionner

  #Button_Print
apres il faut modifier la place des bouton

Code : Tout sélectionner

      ; les boutons 
      ButtonGadget(#Button_OK, 30, 393, 110, 30, "Trouver une solution") 
      ButtonGadget(#Button_Clear, 140, 393, 110, 30, "Effacer la grille") 
      ButtonGadget(#Button_Print, 250, 393, 110, 30, "Imprimer la solution") 

ajouter l'action du bouton

Code : Tout sélectionner

    If GadgetID = #Button_Print
     Imprimer()
    EndIf
et enfin la procedure

Code : Tout sélectionner

Procedure Imprimer()
  
  OpenWindow(3,0,0,640,480,#PB_Window_SystemMenu ,"sudoku")
  OpenWindowedScreen(WindowID(3),0,0,640,480,0,0,0)
  CreateGadgetList(WindowID(3))
  ButtonGadget(500,400,300,200,30,"imprimer")
  ClearScreen(255,255,255)
  StartDrawing(ScreenOutput())
  For l=1 To 9
    Debug l
    For m=1 To 9
      Debug m
      FrontColor(0,0,0)
      DrawingMode(1)
      Locate(10+(m*20),10+(l*20))
      DrawText(GetGadgetText((9*(l-1)+m-1)))  
      LineXY(l*20+5,28,l*20+5,208)
      LineXY(l*20+5+20,28,l*20+5+20,208)
      LineXY(25,l*20+8,205,l*20+8)
      LineXY(25,l*20+8+20,205,l*20+8+20)
    Next
  Next
  LoadFont(1,"arial",15,#PB_Font_Underline |#PB_Font_Bold)
  UseFont(1)
  FrontColor(0,0,0)
  DrawingMode(1)
  Locate(240,60)
  DrawText("Sudoku Killer | © Guillaume HUSSON")   
  
  LineXY(24,28,24,208)
  LineXY(26,28,26,208)
  LineXY(84,28,84,208)
  LineXY(86,28,86,208)
  LineXY(144,28,144,208)
  LineXY(146,28,146,208)
  LineXY(204,28,204,208)
  LineXY(206,28,206,208) 
  
  LineXY(25,27,205,27)
  LineXY(25,29,205,29)
  LineXY(25,87,205,87)
  LineXY(25,89,205,89)
  LineXY(25,147,205,147)
  LineXY(25,149,205,149)
  LineXY(25,207,205,207)
  LineXY(25,209,205,209)    
  StopDrawing()
  FlipBuffers()

  Repeat
    If WindowEvent()=#PB_Event_Gadget
      Select EventGadgetID()
        Case 500
         
          ClearScreen(255,255,255)
          StartDrawing(PrinterOutput())
          For l=1 To 9
            Debug l
            For m=1 To 9
              Debug m
              FrontColor(0,0,0)
              DrawingMode(1)
              Locate(10+(m*20),10+(l*20))
              DrawText(GetGadgetText((9*(l-1)+m-1)))  
              LineXY(l*20+5,28,l*20+5,208)
              LineXY(l*20+5+20,28,l*20+5+20,208)
              LineXY(25,l*20+8,205,l*20+8)
              LineXY(25,l*20+8+20,205,l*20+8+20)
            Next
          Next
          LoadFont(1,"arial",15,#PB_Font_Underline |#PB_Font_Bold)
          UseFont(1)
          FrontColor(0,0,0)
          DrawingMode(1)
          Locate(240,60)
          DrawText("Sudoku Killer | © Guillaume HUSSON")   
          
          LineXY(24,28,24,208)
          LineXY(26,28,26,208)
          LineXY(84,28,84,208)
          LineXY(86,28,86,208)
          LineXY(144,28,144,208)
          LineXY(146,28,146,208)
          LineXY(204,28,204,208)
          LineXY(206,28,206,208) 
          
          LineXY(25,27,205,27)
          LineXY(25,29,205,29)
          LineXY(25,87,205,87)
          LineXY(25,89,205,89)
          LineXY(25,147,205,147)
          LineXY(25,149,205,149)
          LineXY(25,207,205,207)
          LineXY(25,209,205,209)    
          StopDrawing()
          r=PrintRequester()
          If r=0
            MessageRequester("Erreur","L'imprimente n'a pas été trouver",0)
            CloseWindow(3)
          Else
            StartPrinting("Sudoku")
          EndIf
      EndSelect
    EndIf
    
  Until WindowEvent()=#PB_Event_CloseWindow
EndProcedure

Publié : mar. 11/avr./2006 20:21
par ATHOW
@ rob6523 : Merci pour ta version PB4, je ne m'en sentais pas le courage...

@scaraber : C'est une bonne idée d'ajouter la possibilité d'imprimer, je n'y avais pas pensé... (je ne peux pas vraiment tester, je n'ai pas d'imprimante)

En fait, j'ai plein de projets (certains en Pure, d'autre en Java ou C++ pour l'école...) qui me prennent pas mal de temps (et j'ai aussi une vie, à côté, parfois :) ), et donc je ne pense pas vous pondre un logiciel Sudoku de la mort, avec génération des grilles, solveur étapes par étapes, etc...

Ce code est totalement libre, vous pouvez vous en servir si vous voulez faire une appli sur le sudoku, mais moi je ne pense pas y retoucher...

En tous cas, je vous remercie tous pour vos encouragements, et j'espère que mon King of the Hill 2 aura autant d'éloges (plus ?) que ce solveur de sudoku ! (On verra dans quelques semaines...)

Publié : mar. 11/avr./2006 22:09
par comtois
ATHOW a écrit :j'espère que mon King of the Hill 2 aura autant d'éloges (plus ?) que ce solveur de sudoku ! (On verra dans quelques semaines...)
Tiens , j'aurais loupé le King of the Hill 1 ? il est où ?

Publié : mar. 11/avr./2006 22:34
par ATHOW
comtois a écrit :
Tiens , j'aurais loupé le King of the Hill 1 ? il est où ?
Disons que le jeu a grandement changé depuis les beta... Les graphismes sont plus fins, le principe n'est pas exactement le même... Donc sur mon PC le jeu s'appelle KOTH V2...

Mais, comme je n'ai jamais "sorti" le 1 (qui s'est arrété à la beta 4), je pense que KOTH v2 s'appellera tout simplement KOTH...

C'est un peu compliqué tout ça :) (serais-je bordélique ?)

Publié : mar. 03/avr./2007 23:21
par Frenchy Pilou
J'ai trouvé un bug dans le solveur de Sudoku! (désolé :?
Enfin je le cherchais pas mais en entrant cette combinaison
le programme me dit qu'il y a une solution mais il ne m'affiche que la grille "entrée" et donc pas la solution :?: :?: :?:
C'est grave docteur? :) que je rentre les 0 ou pas !

000 483 100
147 090 835
382 571 946

000 000 000
000 800 300
720 009 081

490 000 000
200 040 700
071 050 204

Publié : mar. 03/avr./2007 23:42
par ATHOW
Si je me souviens bien, je n'ai pas prévu le cas où il n'y a pas de solution... donc, le programme ayant terminé sa routine, il affiche le même message que d'hab ("Solution trouvée en..."), et comme il a rien trouvé, il affiche rien.

Bon, maintenant, si tu me dis que tu es certain que cette grille a une solution, c'est qu'il y a un bug, effectivement.

ps : il ne faut pas mettre les 0 !

Publié : mer. 04/avr./2007 0:02
par Frenchy Pilou
Je ne n'ai pas encore trouvé si il y a une solution!
Mais quand il n'y en a pas ton programme le dit !!!
Ici il dit qu'il y en a une donc... :)

Publié : mer. 04/avr./2007 0:09
par Frenchy Pilou
C'est une grille invalide! J'ai cherché avec un autre prog ! :)
Il n' y a donc qu'à changer les messages, car là il m'a fait claquer des neurones pour rien :lol:

Publié : mer. 04/avr./2007 8:46
par Frenchy Pilou
Ton programme marche même si on rentre des "0" :)

Publié : mer. 04/avr./2007 9:31
par ATHOW
Frenchy Pilou a écrit :Ton programme marche même si on rentre des "0" :)
Très bon, je code des trucs sans même le savoir :P !

Publié : mer. 04/avr./2007 10:05
par Frenchy Pilou
Même si on remplit toutes les cases avec des "0"! :D
Très bon, je code des trucs sans même le savoir
C'est çà la classe ! :)

Sauf que pour l'exemple cité au-dessus, il y a quand même un petit couac :roll: