FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Objet 3D_PLANE, réalisation d'un dé en 3D
par Marc Aujourd'hui à 0:33

» Cacher la barre des tâches
par Klaus Hier à 21:27

» Une "base de connaissance" - pour jouer ou plus si affinité
par Minibug Hier à 10:29

» quel est ce comportement de Panoramic_editor
par Oscaribout Hier à 0:22

» Des FORM(s) Colorés
par Jean Claude Dim 20 Mai 2018 - 20:58

» Recherches dans un fichier texte
par JL35 Dim 20 Mai 2018 - 20:18

» Problème d'affichage des pages du forum (Résolu)
par Jean Claude Dim 20 Mai 2018 - 20:00

» Créer une application *.exe
par Yannick Ven 18 Mai 2018 - 20:01

» [RÉSOLU] Priorité affichage des objets : comment la définir?
par papydall Ven 18 Mai 2018 - 18:22

» Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK
par Jean Claude Jeu 17 Mai 2018 - 8:37

» [Résolu] Récuperer les fonctions systeme de Panoramic
par Minibug Mar 15 Mai 2018 - 23:21

» Est-ce qu'un fichier est inclus dans l'application ?
par Yannick Mar 15 Mai 2018 - 12:04

» Création d'une application avec Panoramic_Editor
par Klaus Mar 15 Mai 2018 - 0:36

» Pour faire patienter
par Minibug Lun 14 Mai 2018 - 21:25

» Une copie de Panoramic Editeur
par Minibug Lun 14 Mai 2018 - 19:55

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2018
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
CalendrierCalendrier

Partagez | 
 

 Le parcours du cavalier sur un échiquier 8 x 8

Aller en bas 
AuteurMessage
papydall

avatar

Nombre de messages : 5906
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Le parcours du cavalier sur un échiquier 8 x 8   Sam 22 Juil 2017 - 18:58

Tout est dans le code.


Code:

rem ============================================================================
rem        Le parcours du cavalier sur un échiquier 8 x 8
rem               Papydall le 22 / 07 / 2017
rem ============================================================================
rem Ça consiste à faire parcourir à un cavalier les 64 cases de l’échiquier,
rem en passant à chaque saut sur une case non visitée.
rem Le joueur et théoricien d’échecs arabe Al-Adli Ar-Rumi a donné une solution vers 840.
rem Il en existe plusieurs.
rem Leonhard Euler reprit l’étude scientifique en 1759.
rem Au fil des siècles, beaucoup des mathématiciens ont étudié ce thème en variant
rem les dimensions de l’échiquier, le déplacement du cavalier, etc.
rem ============================================================================
rem Le code suivant affiche la solution donnée par Euler qui fait montrer un carré
rem semi-magique.
rem En inscrivant les numéros des sauts dans l’ordre, on constate que :
rem La somme des éléments de chaque ligne et de chaque colonne est constante et vaut 260.
rem Chaque demi-ligne et chaque demi-colonne a une somme de 130.
rem ============================================================================

La_Dance_Du_Cheval()  

end
rem ============================================================================
SUB La_Dance_Du_Cheval()  
    GUI()
    Echiquier()
    Afficher_Solution()    
END_SUB
rem ============================================================================
SUB GUI()

    label restore_solution, restore_parcours, clic
    dim cote, half_cote, x, y, t$ : cote = 50 : half_cote = cote / 2    
    width 0,1000 : height 0,600
    picture 110 : width 110,500 : height 110,520 : top 110,30 : left 110,120
    caption 0,"Le parcours du cavalier sur un échiquier 8 x 8"
    shape 120 : shape_rectangle_rounded 120 : top 120,top(110)+20 : left 120,left(110)+20
    width 120,width(110)-40 : height 120,height(110)-40
    2d_flood 150,150,0,0,255 : 2d_flood 300,200,255,255,0  
    shape 130 : shape_rectangle_rounded 130 : top 130,30 : left 130,170+width(110)
    width 130,250 : height 130,40    
    alpha 140 : top 140,40 : left 140,182+width(110)
    font_bold 140 : font_name 140,"arial" : font_color 140,0,0,255 : font_size 140,14
    caption 140," Le parcours du cavalier "  
    2d_flood left(140)-5,top(140)+5,255,0,0  
    shape 150 : shape_rectangle_rounded 150 : top 150,100 : left 150,130+width(110)
    width 150,320 : height 150,40
    alpha 160 : top 160,110 : left 160,left(150)+12
    font_bold 160 : font_name 160,"arial" : font_color 160,0,0,255 : font_size 160,14
    caption 160, " Dimension de l'échiquier : 8 x 8 "
    2d_flood left(160)-5,top(160)+5,255,0,0    
    shape 170 : shape_ellipse 170 : top 170,150 : left 170,170+width(110)
    width 170, 250 : height 170,100
    alpha 180 : top 180,180 : left 180,left(170) + 20
    font_bold 180 : font_name 180,"arial" : font_color 180,0,0,255 : font_size 180,14
    caption 180,"Solution proposée par" + chr$(13) + string$(6," ") +"Leonhard Euler"    
    shape 190 : shape_rectangle_rounded 190 : top 190,280 : left 190,left(170)-20
    width 190,280 : height 190,200    
    alpha 200 : top 200,310 : left 200,left(190) + 30
    font_bold 200 : font_name 200,"arial" : font_color 200,0,0,255 : font_size 200,10
    t$ = "Remarquez que c'est un carré" + chr$(13) + "semi-magique."+ chr$(13)+chr$(13)
    t$ = t$ + "La somme des éléments de chaque"+chr$(13)
    t$ = t$ + "ligne et de chaque colonne" +chr$(13)
    t$ = t$ + "est constante et vaut 260." + chr$(13)
    t$ = t$ + "Chaque demi-ligne et chaque" + chr$(13)
    t$ = t$ + "demi-colonne a une somme de 130." + chr$(13)+ chr$(13)
    t$ = t$ + " ***** Surprenant, non ? *****"
    caption 200,t$
    button 210 : top 210,100 : left 210,05 : font_bold 210  
    width 210,110 : caption 210,"Afficher Solution" : on_click 210,clic
    button 220 : top 220,200 : left 220,05 : font_bold 220
    width 220,110 : caption 220,"Afficher Parcours" : on_click 220,clic
    button 230 : top 230,500 : left 230,20 : font_bold 230 : font_size 230,16
    caption 230,"Quitter" : on_click 230,clic
          
END_SUB
rem ============================================================================
Clic:
    select number_click
        case 210 : Afficher_Solution()
        case 220 : Afficher_Parcours()
        case 230 : Quitter()
    end_select
return
rem ============================================================================
SUB Echiquier()
    dim_local i,j,n    
    for i = 1 to 8
        for j = 1 to 8
            n = (i-1) * 8 + j
            picture n : width n,cote : height n,cote
            top  n,top(120) + 25 + (i-1) * (cote+2)
            left n,left(120)+ 25 + (j-1) * (cote+2)
            if odd(i) = 1
               if odd(j) = 1
                  color n,200,100,50
               else
                  color n,0,0,0
               end_if
            else
               if odd(j) = 0
                  color n,200,100,50
               else
                  color n,0,0,0
               end_if
            end_if
        next j        
    next i    
    2d_flood 100,10,100,150,150    
END_SUB
rem ============================================================================
SUB Afficher_Solution()
    dim_local c,i,zero$
    cls : inactive 210
    2d_flood 100,10,100,150,150  
    2d_flood left(120)+20,top(120)+20,255,255,0
    2d_flood left(120)-20,top(120)-20,0,0,255
    restore_label Restore_Solution  
    for i = 1 to 64
        read c : print_target_is i : font_bold i : font_size i,12
        if c < 10 then zero$ = "0" : else : zero$= ""
        print_locate 15,15 : print zero$ + str$(c)
    next i  
END_SUB
rem ============================================================================
SUB Afficher_Parcours()
    dim_local c,i
    cls : inactive 220 : inactive 210
    2d_flood 100,10,100,150,150  
    2d_flood left(120)+20,top(120)+20,255,255,0
    2d_flood left(120)-20,top(120)-20,0,0,255
    restore_label Restore_Parcours
    2d_pen_color 0,255,255 : 2d_pen_width 2
    read c : Determiner_Lig_Col(c) : display : 2d_circle x,y,8 : 2d_poly_from x,y
    for i = 1 to 63
        read c : Determiner_Lig_Col(c) : 2d_poly_to x,y : pause 200 : ' à modifier
    next i
    2d_circle x,y,8
    active 220 : active 210    
END_SUB
rem ============================================================================
SUB Determiner_Lig_Col(c)
    dim_local lig,col
    lig = int(c/8) + 1
    col = mod(c,8)
    if col = 0
       col = 8 : lig = lig - 1
    end_if
    x = left(120) + col * (cote+2)
    y = top(120)  + lig * (cote+2)    
END_SUB
rem ============================================================================
SUB Quitter()
    terminate
END_SUB
rem ============================================================================
' Une solution publié par Euler en 1759
' En inscrivant les numéros des sauts dans l'ordre, il réalisa un carré semi-magique
' La somme des éléments de chaque ligne et de chaque colonne est constante et vaut 260.
' Chaque demi-ligne et chaque demi-colonne a une somme de 130.
Restore_Solution:
    data 01,48,31,50,33,16,63,18
    data 30,51,46,03,62,19,14,35
    data 47,02,49,32,15,34,17,64
    data 52,29,04,45,20,61,36,13
    data 05,44,25,56,09,40,21,60
    data 28,53,08,41,24,57,12,37
    data 43,06,55,26,39,10,59,22
    data 54,27,42,07,58,23,38,11
rem ============================================================================
Restore_Parcours:
   data 01,18,12,27,33,50,60,43
   data 37,54,64,47,32,15,21,06
   data 23,08,14,29,39,56,62,45
   data 35,52,58,41,26,09,03,20
   data 05,22,16,31,48,63,53,38
   data 44,59,49,34,28,11,17,02
   data 19,04,10,25,42,57,51,36
   data 46,61,55,40,30,13,07,24
rem ============================================================================
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jean Claude

avatar

Nombre de messages : 5356
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Le parcours du cavalier sur un échiquier 8 x 8   Sam 22 Juil 2017 - 19:22

C'est beau les maths ! cheers

Une remarque: le dessin qui résulte du parcours est parfaitement symétrique.
Étonnant non ?

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
pascal10000

avatar

Nombre de messages : 703
Localisation : Troyes
Date d'inscription : 05/02/2011

MessageSujet: Re: Le parcours du cavalier sur un échiquier 8 x 8   Dim 23 Juil 2017 - 12:26

Impressionnant!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Le parcours du cavalier sur un échiquier 8 x 8   

Revenir en haut Aller en bas
 
Le parcours du cavalier sur un échiquier 8 x 8
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [RESOLU] Edge 605/705 - Sur quel site Internet aller pour créer puis exporter un parcours exploitable par mon GPS
» Enregistrer un parcours.
» Simulation parcours
» Enregistrement parcours
» traces parcours plusieurs etapes

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: