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
» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Aujourd'hui à 16:52

» KGF_dll - nouvelles versions
par Klaus Aujourd'hui à 14:16

» Compilateur FBPano
par Ouf_ca_passe Aujourd'hui à 12:25

» mise a jour calculatrice
par papydall Aujourd'hui à 2:01

» double guillemets "" dans un EDIT
par Marc Hier à 23:43

» Documentation de KGF
par Klaus Lun 20 Nov 2017 - 22:52

» Zoom sur une portion d'écran
par JL35 Lun 20 Nov 2017 - 21:51

» Recherche d'une expression dans un source
par Marc Lun 20 Nov 2017 - 13:08

» Tracer une grille n'importe où sur l'écran
par JL35 Dim 19 Nov 2017 - 22:14

» TourD Version 2
par Klaus Sam 18 Nov 2017 - 23:58

» La métamatière et le peuple
par JL35 Ven 17 Nov 2017 - 21:18

» Capture d'une zone de l'écran total
par JL35 Ven 17 Nov 2017 - 18:41

» qui peut résoudre mon prb
par pascal10000 Jeu 16 Nov 2017 - 17:30

» évènements et objets système : listage automatique
par Jean Claude Jeu 16 Nov 2017 - 11:15

» Panoramic et la reconnaissance vocale.
par papydall Jeu 16 Nov 2017 - 3:45

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2017
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
27282930   
CalendrierCalendrier

Partagez | 
 

 Le parcours du cavalier sur un échiquier 8 x 8

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
papydall

avatar

Nombre de messages : 5594
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 - 19: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 : 5062
Age : 63
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 - 20: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 : 549
Localisation : Troyes
Date d'inscription : 05/02/2011

MessageSujet: Re: Le parcours du cavalier sur un échiquier 8 x 8   Dim 23 Juil 2017 - 13: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
Voir le sujet précédent Voir le sujet suivant 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: