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
» PanExpress : l'éditeur Panoramic avec création d'objet
par Jean Claude Aujourd'hui à 8:27

» Projet de planétarium virtuel.
par Pedro Alvarez Hier à 20:53

» Quantité de mémoire utilisée par un exe
par Jack Hier à 16:39

» Problème avec 'file_load'.
par Pedro Alvarez Lun 18 Juin 2018 - 8:12

» Version instantanée V 0.9.28i20 du 13/06/2018
par jjn4 Sam 16 Juin 2018 - 14:25

» string$(0,chr$(32)) sans erreur
par silverman Ven 15 Juin 2018 - 19:56

» Version instantanée V 0.9.28i19 du 13/06/2018
par Minibug Ven 15 Juin 2018 - 19:14

» Mes souhaits d'amélioration de Panoramic.
par Pedro Alvarez Jeu 14 Juin 2018 - 20:17

» [RÉSOLU] Message d'erreur impossible à indentifier
par Minibug Mer 13 Juin 2018 - 20:52

» Cadre pour image
par Jean Claude Mar 12 Juin 2018 - 16:31

» Créateur d'objets Panoramic
par Minibug Mar 12 Juin 2018 - 14:02

» Planétarium gratuit.
par Jean Claude Sam 9 Juin 2018 - 18:50

» Comment afficher une image sans fond.
par JL35 Sam 9 Juin 2018 - 14:16

» image_width(n) et image_height(n)
par silverman Sam 9 Juin 2018 - 11:22

» Site sur la programmation sympa
par Jean Claude Jeu 7 Juin 2018 - 11:20

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2018
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier

Partagez | 
 

 Bataille de petits soldats

Aller en bas 
Aller à la page : Précédent  1, 2, 3  Suivant
AuteurMessage
Jicehel

avatar

Nombre de messages : 5923
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Bataille de petits soldats   Jeu 8 Mai 2014 - 10:26

Excellente nouvelle Jean-Claude, bravo. Je pense que le jeu sera plus intéressant à jouer Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Bataille de petits soldats   Jeu 8 Mai 2014 - 19:40

@ Tous en général et @ Jean Claude en particulier

J’ai découvert dans ce jeu un autre jeu plus motivant que de tirer sur des ennemies.
Le jeu consiste à éliminer tous les GOTO présents dans le code pour obtenir in fine un code à mon goût.
Cela ne veut pas dire que mon goût est le bon : c’est seulement ma préférence !

Donc je me suis lancé le défi d’accomplir la mission.
Sachant, par expérience, qu’une telle tâche n’est pas aisée, (d’autant plus qu’il s’agit d’un programme dont on n’est pas le concepteur) je me suis armé d’une grande volonté de relever le défi et aussi d’une grande tasse de café.

J’ai cru un moment que j’étais perdu dans ce fouillis inextricable et j’ai failli abandonner.
Une heure,  deux heures,  trois heures et deux cafés après, j’ai expiré un grand coup : Papydall a défié Papydall et j'ai cru que Papydall a gagné le défi !
En poussant les tests, je constate que Papydall n'a pas gagné le défi : parfois ça bogue et ça bogue énormément !
Donc, je ne poste pas mon code, étant donné que Jean Claude compte sortir une nouvelle version (il ne chépakan) mais
JC a écrit:
J'essai que ça ne soit pas trop facile...

Il sait ou il essaie ? That's the question!


NB : Dur, très dur de suivre ces GOTO qui vous emmènent n'importe où!

J’ai acquis une nouvelle paire de lunettes.
Ça pourra m’aider à « deGOTOifier » le programme !!!  Laughing Laughing 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jean Claude

avatar

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

MessageSujet: Re: Bataille de petits soldats   Jeu 8 Mai 2014 - 21:30

@Papydall, tu ne vas pas nous faire une gotophobie aiguë, ce serait dommage que tu sois indisposé par un excès de café.

Je dois avouer qu'au moment de la conception du code, je n'ais pas pas trouvé d'autres solutions pour que le programme ne s'arrête pas.

Pour la prochaine version j'ai posé les conditions sur le papier, ça se complique car je veux que l'ordinateur analyse les 9, 6, 3 cases, suivant la portée de tir de son soldat, pour faire le ou les tir en priorité. Jusque là ça va. Mais je veux qu'avant de déplacer son soldat, il analyse les 11 cases autours des 9 pour voir s'il y a un soldat adverse et si oui il se déplace pour le manger, au tour suivant, à condition de ne pas se mettre en danger.
Bref, le but est qu'il n'oublie pas les tirs possibles,  qu'il ne mette pas ses pions en danger et qu'il prépare le tour suivant.

Etant dans une période "d'algie vasculaire de la face", c'est compliqué de me concentrer (3 à 4 crises par jour actuellement). Mais quand la période sera passée, je vais m'y remettre car le codage de cette partie est, certes, pas facile, mais certainement pas insurmontable.

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

avatar

Nombre de messages : 5923
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Bataille de petits soldats   Jeu 8 Mai 2014 - 21:39

Là pour moi, ça deviendra vraiment le premier wargame du site.
Et on risque de galérer pour vaincre l'ordi Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Bataille de petits soldats   Ven 9 Mai 2014 - 4:24

@Jean Claude

J’espère que ton "algie vasculaire de la face" se soit apaisée.

Jean Claude a écrit:
@Papydall, tu ne vas pas nous faire une gotophobie aiguë

Quand j’ai appris le BASIC en 1980, j’usais et j’abusais de GOTO et autre GOSUB.
Peu après, j’ai découvert le Turbo Pascal et la programmation structurée.
J’ai juré alors (impulsion de jeunesse !) que je n’utiliserais jamais de GOTO dans mes programmes!

A vrai dire,  plus d’une fois,  j’ai enfreint ce comportement !
Bref, je vous expose mon essai.
Spoiler:
 

NB :
Adapter (ligne 13) le chemin qui mène à la grande bataille.
J'ai ajouté un bouton Quitter pour ... devinez à quoi sert-il ?

Mon dernier test, n’a pas découvert de bug dans le programme, mais  il y en a peut-être !
Après avoir gagné le GOTO_OFF, j’ai aussi gagné la bataille.

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jean Claude

avatar

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

MessageSujet: Re: Bataille de petits soldats   Ven 9 Mai 2014 - 9:46

Bravo Papydall  cheers  et merci, car tu viens de me faire prendre conscience de mes limites et que je devrais regarder un peu plus souvent le manuel de références.

Faire un programme en utilisant seulement if/end_if et for/next, ça part à la dérive..., mais je ne suis qu'un programmeur du dimanche. Very Happy 

Je viens de le tester ta version, ça marche sans bug.
Ton bouton "quitter" ouvre la voix pour une sauvegarde de la partie en cours.....

Je vais m'inspirer de ta version corrigée pour mettre en place ma prochaine version.
Pour le moment ça m'est difficile car je fais des nuits en pointillées, je suis crevé, mais je sais par expérience de ma maladie qu'il faut que je patiente un mois ou deux, et après je serais tranquille pour environ 2 ans.

Je ne lâcherais pas le bout car je pense, comme le dit Jicehel, que battre l'ordinateur deviendra difficile dans la prochaine version. Et ce jeu deviendra, alors, assez sympa.

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

avatar

Nombre de messages : 5923
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Bataille de petits soldats   Ven 9 Mai 2014 - 10:27

Repose toi bien et j'espère que cette saleté qui te pourrie tes nuits passera vite
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Bataille de petits soldats   Ven 9 Mai 2014 - 18:55

Salut Jean Claude

Debut_Hors_Sujet :
   Est-ce que tu fumes ?
   Ce n’est pas une question indiscrète car moi-même j’étais un grand/gros fumeur : TROIS PAQUETS DE CIGARETTES par jour et des lourdes !
   A cette époque je faisais au moins une crise de mal de tête INSUPPORTABLE par semaine.
   Et puis, j’ai décidé, un beau jour de cesser de fumer : j’ai passé brutalement d’une soixantaine de cigarettes à ZERO cigarette, sans aucune transition.
   Le résultat : une légère (pas si légère que ça !) prise de poids et aucun mal de tête depuis plus de onze ans. C’est un vrai bonheur.

   Mais peut-être  sommes-nous deux cas différents ?
   Bon, j’espère que tu te débarrasseras dans les meilleurs délais de cette maladie.
Fin_Hors_Sujet


Pour le jeu : j’ai ajouté une SUB feu() pour charger un son (tir.mp3) et le jouer à chaque fois qu’il y ait un tir. Ça fait de l’ambiance.

Jean Claude a écrit:
Bravo Papydall     et merci, car tu viens de me faire prendre conscience de mes limites et que je devrais regarder un peu plus souvent le manuel de références.

Il ne faut pas chercher à être meilleur que les autres ; il suffit d’être meilleur que soi !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5923
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Bataille de petits soldats   Ven 9 Mai 2014 - 22:00

J'ai testé la version du gotophobe et ça marche nickel
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Bataille de petits soldats   Sam 10 Mai 2014 - 3:36

Bien, ça me plait ce surnom de gotophobe, bien qu'il s'agisse plutôt d'aversion que de phobie. Smile
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
papydall

avatar

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

MessageSujet: Re: Bataille de petits soldats   Dim 25 Mai 2014 - 0:47

Voilà deux semaines que notre ami Jean Claude n’a pas donné un signe de vie.

Hé JC, j’espère que tu te portes bien !
Si tu passes par ici, fais-nous un coucou !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jean Claude

avatar

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

MessageSujet: Re: Bataille de petits soldats   Dim 25 Mai 2014 - 10:24

Merci Papydall de t’inquiéter de ma santé.

Je suis dans ma galère d'algies vasculaires de la face, j'en suis à 4 crises par nuit et 3 le jour. Le simple fait de regarder l'écran de l'ordi plus de 5 min déclenche une crise supplémentaire.

Il me reste à attendre que la période se termine....
J'ai néanmoins avancé sur l'IA, mais ce n'est pas encore au point...

Merci et à +
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jjn4

avatar

Nombre de messages : 1755
Date d'inscription : 13/09/2009

MessageSujet: Re: Bataille de petits soldats   Dim 25 Mai 2014 - 10:58

Gotophobe,
screenophobe,
thermophobe,
décidément,
chacun sa croix.
Guéris nous vite !
 I love you  alien  bounce
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
papydall

avatar

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

MessageSujet: Re: Bataille de petits soldats   Dim 25 Mai 2014 - 11:57

Bein Woui !
Gotophobe, j’en connais au moins un.
Sreenophobe, je crois en connaître au moins un aussi.
Thermophobe, ça, j’ignore qui c’est. Serait-il un ET type vert ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
jjn4

avatar

Nombre de messages : 1755
Date d'inscription : 13/09/2009

MessageSujet: Re: Bataille de petits soldats   Dim 25 Mai 2014 - 19:54

Woui, et qui ne va pas tarder à partir en vacances
en direction du Nord quand la chaleur d'été va arriver...
(avec le soleil, la couleur verte déteint,
et après, ça donne un aspect horrible)
 Laughing  No  alien  No  cherry
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Jean Claude

avatar

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

MessageSujet: Re: Bataille de petits soldats   Ven 13 Juin 2014 - 7:55

Voici une nouvelle version, vous la trouverez sur sur mon Webdav avec les images.

J'ai plus ou moins réussi à donner une IA à mon bourrin.
Donc maintenant il ne rate aucun tir et n'expose pas ses soldats aux vôtres (de tir...). Dans les premiers tours, il suit une stratégie (parmi 11) sélectionnée aléatoirement, afin de pousser un peu son avantage.
Malgré toutes ces aides, apportées à l'ordinateur, cela reste assez facile de gagner.

Je vous conseille de lire l'aide en début de partie, car certaines règles pour l'ordinateur ont changées.

Voici le code, il est entièrement libre.

Code:
rem ============================================================================
rem              La grande bataille
rem par Jean Claude avec une remise en forme de Papydall
rem ============================================================================
error_french : label erreur
 on_error_goto erreur
start()
END
rem ============================================================================
erreur:
message "objet à charger="+str$(Pos1%)+"grade de Lpion%="+grade$(Lpion%) + "(S.bmp)"
 message "pion%="+str$(pion%)+" Case="+str$(Cape%)+" Grade="+grade$(n%)
return
rem ============================================================================
SUB start()
    dim_label()
' règlage du chemin
    rep$="C:\Users\JeanClaude\Desktop\Jeu"
    dir_change rep$
' règlage du cadrillage
    dp% = 35 : ' 32 = pas de grille
' Start
    init()
    no% = no% + 1 : dlist1%=no% : dlist no%:' remettre ces 2 lignes dans Sub init()
    no% = no% + 1 : Dlist_tri%=no% : dlist no%
'    height dlist1%,height(0)-150
'    left dlist1%,125
    fin$ = "E" : partie()
END_SUB
rem ============================================================================
SUB dim_label()
    dim c%,kt%,no%,n%,n2%,pion%,tir%,ind_portee%,dep%,expo%,Cape%,Apa%
    dim nbja%,nbje%,tour%,strategie%
    dim a$,b$,c$,rep$,msg$,fin$,fin_tir$,prov$
    dim grade$(48),num_SD(48),munition%(48),portee%(48),Pos%(48)
    dim contenu_kaze%(160),case_dep%(3)
' initialise
    nbje% = 23 : nbja% = 23
' constante
    dim dp%,vit% : vit% = 100
' Label
   label jeu_ami, pas_dep, dep_ami, dep_ami2, tir_ami,quit
   application_title " La grande bataille "
End_Sub
rem  ===========================================================================
SUB partie()
    dep%=0:tir%=0:expo%=0:pion%=0:n%=0:prov$="":clear dlist1%
' strategie%=11:' ligne à supprimer <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
' if tour%=0 then DEP(3,43,137):' ligne à supprimer <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
' if tour%=0 then DEP(11,42,157):' ligne à supprimer <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
' if tour%=0 then DEP(19,41,57):' ligne à supprimer <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    if tour% = 0 then msg()
    wait vit%*2
    tour% = tour% + 1
' caption 0,"tour="+str$(tour%)+" - Stratégie="+str$(strategie%)
    clear memo1% : item_add memo1%," TOUR ENNEMI "
    inactive_clics() : Wait vit%*2
    if tour%<12 and strategie%=1 then strategies()
    if tour%<12 and strategie%=2 then strategies()
    if tour%<22 and strategie%=3 then strategies()
    if tour%<16 and strategie%=4 then strategies()
    if tour%<17 and strategie%=5 then strategies()
    if tour%<14 and strategie%=6 then strategies()
    if tour%<16 and strategie%=7 then strategies()
    if tour%<18 and strategie%=8 then strategies()
    if tour%<11 and strategie%=9 then strategies()
    if tour%<12 and strategie%=10 then strategies()
    if tour%<11 and strategie%=11 then strategies()

    if fin$ = "E" then Ennemi()
    if fin$ = "A" then Ami()
END_SUB
rem ============================================================================
SUB Ennemi()
    clear memo1% : item_add memo1%," TOUR ENNEMI "
    inactive_clics() : Wait vit%*2
' remise à zéro
  dep%=0:tir%=0:ind_portee%=-1:expo%=0:pion%=0:n%=0:prov$="":clear dlist1%
' recherche des tirs
  ' pour chaque pion vérifier les cases à portée de tir
  for pion%=25 to 48
      if grade$(pion%)<>""
         if pion%<>45
            Cape%=pos%(pion%)
            ' controle des 3 cases de déplacement (colonne 1)
            c% = Cape% - 21 : ind_portee% = 0 : TIR_SI()
            c% = Cape% - 1 : ind_portee% = 0 : TIR_SI()
            c% = Cape% + 19 : ind_portee% = 0 : TIR_SI()
            ' controle colonne 2
            c% = Cape% - 22 : ind_portee% = 1 : TIR_SI()
            c% = Cape% - 2 : ind_portee% = 1 : TIR_SI()
            c% = Cape% + 18 : ind_portee% = 1 : TIR_SI()
            ' controle colonne 3
            c% = Cape% - 23 : ind_portee% = 2 : TIR_SI()
            c% = Cape% - 3 : ind_portee% = 2 : TIR_SI()
            c% = Cape% + 17 : ind_portee% = 2 : TIR_SI()
         end_if
      end_if
  next pion%
' Déplacement
  IF COUNT(dlist1%)>0
     ' choisir aléatoirement une ligne du dlist et déplace le pion
     n%=rnd(count(dlist1%)):while n%=0:n%=rnd(count(dlist1%)):end_while
     a$=item_read$(dlist1%,n%):EXPLODE("|",a$)
     a$=item_read$(dlist_tri%,1):pion%=val(a$)
     a$=item_read$(dlist_tri%,2):Cape%=val(a$)
     a$=item_read$(dlist_tri%,3):c%=val(a$)
     if grade$(pion%)<>""
        DEP(pion%,Cape%,c%) : clear dlist1%
      ' déplacement supplémentaire en cas de tir ok pour se dégager
        Cape%=pos%(pion%)
      ' controle des 3 cases de déplacement (colonne 1)
        prov$="P2"
        c% = Cape% - 21 : : Ctrl_DEP()
        c% = Cape% - 1 : Ctrl_DEP()
        c% = Cape% + 19 : Ctrl_DEP()
        if count(dlist1%)>0
         ' choisir aléatoirement un pion
           n%=rnd(count(dlist1%)):while n%=0:n%=rnd(count(dlist1%)):end_while
           a$=item_read$(dlist1%,n%):EXPLODE("|",a$)
           a$=item_read$(dlist_tri%,1):pion%=val(a$)
           a$=item_read$(dlist_tri%,2):Cape%=val(a$)
           a$=item_read$(dlist_tri%,3):c%=val(a$)
           if pion%<>45
              DEP(pion%,Cape%,c%) : clear dlist1% : prov$=""
           end_if
          ' tir supplémentaire <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< il ne le fait pas
            Cape%=pos%(pion%)
            ' controle des 3 cases de déplacement (colonne 1)
            c% = Cape% - 21 : ind_portee% = 0 : TIR_SI()
            c% = Cape% - 1 : ind_portee% = 0 : TIR_SI()
            c% = Cape% + 19 : ind_portee% = 0 : TIR_SI()
            ' controle colonne 2
            c% = Cape% - 22 : ind_portee% = 1 : TIR_SI()
            c% = Cape% - 2 : ind_portee% = 1 : TIR_SI()
            c% = Cape% + 18 : ind_portee% = 1 : TIR_SI()
            ' controle colonne 3
            c% = Cape% - 23 : ind_portee% = 2 : TIR_SI()
            c% = Cape% - 3 : ind_portee% = 2 : TIR_SI()
            c% = Cape% + 17 : ind_portee% = 2 : TIR_SI()
        end_if
     end_if
  ELSE
     clear dlist1% :prov$=""
       for n2%=25 to 48
           if n2%<>45
              pion%=n2%
              if grade$(pion%)<>""
                 Cape%=pos%(pion%)
                 ' controle des 3 cases de déplacement (colonne 1)
                 c% = Cape% - 21 : : Ctrl_DEP()
                 c% = Cape% - 1 : Ctrl_DEP()
                 c% = Cape% + 19 : Ctrl_DEP()
              end_if
           end_if
       next n2%
       if count(dlist1%)>0
        ' choisir aléatoirement un pion
          n%=rnd(count(dlist1%)):while n%=0:n%=rnd(count(dlist1%)):end_while
          a$=item_read$(dlist1%,n%):EXPLODE("|",a$)
          a$=item_read$(dlist_tri%,1):pion%=val(a$)
          a$=item_read$(dlist_tri%,2):Cape%=val(a$)
          a$=item_read$(dlist_tri%,3):c%=val(a$)
          if grade$(pion%)<>""
             DEP(pion%,Cape%,c%) : clear dlist1%
          end_if
       else
          ' le dlist est vide
          ' pas de déplacement possible
       end_if
  END_IF
' caption 0,"pion%="+str$(pion%)+" Case="+str$(Cape%)+" Grade="+grade$(n%)
  fin$ = "A" : Ami()
END_SUB
rem ============================================================================
SUB Ctrl_DEP()
    if c%>0 and c%<160
       if contenu_kaze%(c%)=0
          ' analyse l'exposition du pion
           Apa%=c% : expo%=0
           ' colonne 1
           kt% = Apa% - 21 : ind_portee% = 0 : Ctrl_EXPO()
           kt% = Apa% - 1 : ind_portee% = 0 : Ctrl_EXPO()
           kt% = Apa% + 19 : ind_portee% = 0 : Ctrl_EXPO()
             ' colonne 2
             kt% = Apa% - 22 : ind_portee% = 1 : Ctrl_EXPO()
             kt% = Apa% - 2 : ind_portee% = 1 : Ctrl_EXPO()
             kt% = Apa% + 18 : ind_portee% = 1 : Ctrl_EXPO()
             ' colonne 3
             kt% = Apa% - 23 : ind_portee% = 2 : Ctrl_EXPO()
             kt% = Apa% - 3 : ind_portee% = 2 : Ctrl_EXPO()
             kt% = Apa% + 17 : ind_portee% = 2 : Ctrl_EXPO()
          if expo%=0
             item_add dlist1%,str$(pion%)+"|"+str$(Cape%)+"|"+str$(c%)
          end_if
       end_if
    end_if
END_SUB
rem ============================================================================
SUB Ctrl_EXPO()
    if kt%>0 and kt%<160
       if contenu_kaze%(kt%)<>0 and contenu_kaze%(kt%)<>20
          if grade$(contenu_kaze%(kt%)) = "sa1T" or grade$(contenu_kaze%(kt%)) = "sa2T" or grade$(contenu_kaze%(kt%)) = "sa3T"
             if portee%(contenu_kaze%(kt%))>ind_portee%
                if prov$<>"P2"
                   expo%=expo%+1
                end_if
             end_if
          end_if
       end_if
    end_if
END_SUB
rem ============================================================================
SUB TIR_SI()
  if munition%(Pion%)>0
    if c%>0 and c%<160
       if portee%(pion%)>ind_portee% and contenu_kaze%(c%)<>0
          if grade$(contenu_kaze%(c%)) = "sa1T" or grade$(contenu_kaze%(c%)) = "sa2T" or grade$(contenu_kaze%(c%)) = "sa3T" or grade$(contenu_kaze%(c%)) = "DA"
             TIR(Pion%,Cape%,contenu_kaze%(c%),pos%(contenu_kaze%(c%)))
             item_add dlist1%,str$(pion%)+"|"+str$(Cape%)+"|"+str$(c%)
          end_if
       end_if
    end_if
  end_if
END_SUB
rem ============================================================================
SUB TIR(PionSel%,PosPionSel%,PionCible%,PosPionCible%)
    fin_tir$=""
    munition%(PionSel%)=munition%(PionSel%)-1
    if munition%(PionSel%)=0 then fin_tir$="OK"
' vérifie si c'est le drapeau
  if PionCible% = 20
    file_load PosPionCible%,"feu.bmp" : wait vit%*3
    Message "l'ennemi a pris possession de votre drapeau !"+chr$(13)+chr$(13)+" VOUS AVEZ PERDU CETTE BATAILLE"
    terminate
  end_if
' Prend ses munitions (mise à jour du hint)
  munition%(PionSel%) = (munition%(PionSel%) + munition%(PionCible%))
  hint PosPionSel%," Matricule: " + str$(num_SD(PionSel%)) + chr$(13) + " Munitions: " + str$(munition%(PionSel%)) + " Portée: " + str$(portee%(PionSel%)) + " "+chr$(13) + " Position: " + str$(Pos%(PionSel%))
' tue le et affiche le tir
  munition%(PionCible%) = 0 : nbja% = nbja% - 1 : caption alpha_nbja%,str$(nbja%)
  grade$(PionCible%)="":num_SD(PionCible%)=0:portee%(PionCible%)=0:Pos%(PionCible%)=0
  file_load PosPionCible%,"feu.bmp" : wait vit%*3
' remettre la case cible en libre
  contenu_kaze%(PosPionCible%) = 0 : file_load PosPionCible%,"fond.bmp" : hint PosPionCible%," Terrain libre "
  if nbja% = 0 then Message "Vos ennemis sont les plus forts, retentez votre chance" + chr$(13) + chr$(13) + " VOUS AVEZ PERDU CETTE BATAILLE" : terminate
END_SUB
rem ============================================================================
SUB DEP(Lpion%,Pos1%,Pos2%)
  if Pos2%<0 or Pos2%>160 then exit_sub
  ' affiche le soldat qui bouge
  file_load Pos1%,grade$(Lpion%) + "S.bmp" :  wait vit% * 4
' met à jour la position de pion%
  Pos%(Lpion%) = Pos2%
' affiche la case de déplacement
  file_load Pos2%,"fondB.bmp" : wait vit%*3
' met à jour la nouvelle case
  contenu_kaze%(Pos2%) = Lpion%
  file_load Pos2%,grade$(Lpion%) + ".bmp" : ' affiche le soldat à sa nouvelle position
  hint Pos2%," Matricule: " + str$(num_SD(Lpion%)) + chr$(13) + " Munitions: " + str$(munition%(Lpion%)) + " Portée: " + str$(portee%(Lpion%)) + " "+chr$(13) + " Position: " + str$(Pos%(Lpion%))
' remettre l'ancienne case en libre
  contenu_kaze%(Pos1%) = 0 : file_load Pos1%,"fond.bmp" : hint Pos1%," Terrain libre "
END_SUB
rem ============================================================================
SUB EXPLODE(delimiter$,chaine$):' Nardo modifié JC
' Cette sub décompose une ligne d'un fichiers et inscrit chaque élément dans Dlist_tri%
 clear Dlist_tri%
  WHILE INSTR(chaine$,delimiter$)<>0
     ITEM_ADD Dlist_tri%,LEFT$(chaine$,INSTR(chaine$,delimiter$)-1)
     chaine$=RIGHT$(chaine$,LEN(chaine$)-INSTR(chaine$,delimiter$))
  END_WHILE
 ITEM_ADD Dlist_tri%,chaine$
END_SUB
rem ============================================================================
Sub active_clics_DEP()
    dim_local i%
    for i% = 1 to 160 : on_click i%,Dep_ami : next i%
    off_click 61 : ' drapeau
End_Sub
rem ============================================================================
Sub active_clics()
    dim_local i%
    for i% = 1 to 160 : on_click i%,Jeu_ami : next i%
    off_click 61 : ' drapeau
End_Sub
rem ============================================================================
Sub inactive_clics()
    dim_local i%
    for i% = 1 to 160 : off_click i% : next i%
End_Sub
rem ============================================================================
SUB Ami()
   inactive Bt_Tir%
   clear memo1% : item_add memo1%," VOTRE TOUR "
   item_add memo1%," " : item_add memo1%," Sélectionnez un de vos soldats par un clic"
' sélection d'un soldat
   active_clics()
END_SUB
rem ============================================================================
Jeu_ami:
  Apa% = number_click
  if Apa% = 61 then message "Vous ne pouvez pas déplacer votre drapeau" : return : ' drapeau
  if contenu_kaze%(Apa%) = 0
     message " Cette case est vide. Vous devez sélectionner un de vos soldat " : return
  end_if
  pion% = contenu_kaze%(Apa%)
  if num_SD(pion%)>25
     message " Vous devez sélectionner un de vos soldat " : return
  end_if
' contoler les 3 cases de déplacement
  dep% = 0 : tir% = 0
  c% = Apa% - 19 : Ctrl_DEPTIRA(c%) : ' sup
  c% = Apa% + 1  : Ctrl_DEPTIRA(c%) : ' devant
  c% = Apa% + 21 : Ctrl_DEPTIRA(c%) : ' inf
' joue le pion si pas jouable recommence
  if dep% = 0 and tir% = 0 then message " Ce soldat ne peut pas bouger" : return
' à partir d'ici le pion peut jouer
  file_load apa%,grade$(pion%) + "S.bmp" : ' affiche le soldat qui bouge
  wait vit%*2
' si munition
' en priorité les tirs
  ' rangée 1
  c% = Apa% - 19 : Ctrl_TIRA1(c%)
  c% = Apa% + 1  : Ctrl_TIRA1(c%)
  c% = Apa% + 21 : Ctrl_TIRA1(c%)
  ' vérifier les 6 autres cases pour savoir si tir(s) à faire
  ' rangée 2
  if portee%(pion%) > 1
     c% = Apa% - 18 : Ctrl_TIRA(c%)
     c% = Apa% + 2  : Ctrl_TIRA(c%)
     c% = Apa% + 22 : Ctrl_TIRA(c%)
  end_if
  ' rangée 3
  if portee%(pion%) > 2
     c% = Apa% - 17 : Ctrl_TIRA(c%)
     c% = Apa% + 3  : Ctrl_TIRA(c%)
     c% = Apa% + 23 : Ctrl_TIRA(c%)
  end_if
  fin_tir$ = ""
  if tir% > 0
     active Bt_Tir% : on_click Bt_Tir%,tir_ami
     suite_jeu1()
  end_if
  suite_jeu2()
return
rem ============================================================================
Sub Ctrl_DEPTIRA(Lc%)
    dim_local kt%
    if Lc% < 1 or Lc% > 160
       exit_sub
    else
       if contenu_kaze%(Lc%) = 0
          dep% = dep% + 1 : Exit_Sub : ' déplacement possible, tir impossible
       end_if
    end_if
    if contenu_kaze%(Lc%) <> 0
       kt% = contenu_kaze%(Lc%)
       if grade$(kt%) = "sa1T" or grade$(kt%) = "sa2T" or grade$(kt%) = "sa3T"
          Exit_Sub
       end_if
       if grade$(kt%) = "se1T" or grade$(kt%) = "se2T" or grade$(kt%) = "se3T"
          dep% = dep% + 1 : tir% = tir% + 1 : Exit_Sub : ' cette case sera libérée
       end_if
       if grade$(kt%) = "DE"
          tir% = tir% + 1 : Exit_Sub
       end_if
    end_if
End_Sub
rem ============================================================================
Sub Ctrl_TIRA(Lc%)
    dim_local kt%
    if Lc% < 1 or Lc% > 160
       exit_sub
    else
       if contenu_kaze%(Lc%) = 0
          file_load Lc%,"fondTV.bmp"
          Exit_Sub : ' tir impossible
       end_if
    end_if
    if contenu_kaze%(Lc%) <> 0
       kt% = contenu_kaze%(Lc%)
       if grade$(kt%) = "sa1T" or grade$(kt%) = "sa2T" or grade$(kt%) = "sa3T"
          Exit_Sub
       end_if
       if grade$(kt%) = "se1T" or grade$(kt%) = "se2T" or grade$(kt%) = "se3T"
          file_load Lc%,grade$(kt%) + "C.bmp"
          tir% = tir% + 1 : Exit_Sub
       end_if
       if grade$(kt%) = "DE"
          tir% = tir% + 1 : Exit_Sub
       end_if
    end_if
End_Sub
rem ============================================================================
Sub Ctrl_TIRA1(Lc%)
    dim_local kt%
    if Lc% < 1 or Lc% > 160
       exit_sub
    else
       if contenu_kaze%(Lc%) = 0
          file_load Lc%,"fondDT.bmp"
          Exit_Sub : ' tir impossible
       end_if
   end_if
   if contenu_kaze%(Lc%) <> 0
      kt% = contenu_kaze%(Lc%)
      if grade$(kt%) = "sa1T" or grade$(kt%) = "sa2T" or grade$(kt%) = "sa3T"
         Exit_Sub
      end_if
      if grade$(kt%) = "se1T" or grade$(kt%) = "se2T" or grade$(kt%) = "se3T"
         file_load Lc%,grade$(kt%) + "C.bmp"
         tir% = tir% + 1 : Exit_Sub
      end_if
      if grade$(kt%) = "DE"
         tir% = tir% + 1 : Exit_Sub
      end_if
   end_if
End_Sub
rem ============================================================================
Sub ADEPA(Lc%)
    if Lc% < 1 or Lc% > 160
       exit_sub : ' hors cadre
    else
       if contenu_kaze%(Lc%) = 0
' affiche et repère la case de déplacement
          case_dep%(n%) = Lc% : file_load Lc%,"fondDT.bmp"
       end_if
   end_if
end_sub
rem ============================================================================
Sub DEPA(Lc%,LApa%)
    if Lc% < 1 or Lc% > 160
       exit_sub
    else
' met à jour la position de pion%
       Pos%(pion%) = Lc%
' met à jour la nouvelle case
       contenu_kaze%(Lc%) = pion%
       file_load Lc%,grade$(pion%) + ".bmp" : ' affiche le soldat à sa nouvelle position
       hint Lc%," Matricule: " + str$(num_SD(pion%)) + chr$(13) + " Munitions: " + str$(munition%(pion%)) + " Portée: " + str$(portee%(pion%)) + " " + chr$(13) + " Position: " + str$(Pos%(pion%))
       wait vit%
' remettre l'ancienne case en libre
       contenu_kaze%(LApa%) = 0 : file_load LApa%,"fond.bmp" : hint LApa%," Terrain libre "
    end_if
end_sub
rem ============================================================================
Pas_Dep:
   c% = Pos%(pion%)
   PADEPA(c%)
' mise à jour cases vides
   for n% = 1 to 160
       if contenu_kaze%(n%) = 0 then file_load n%,"fond.bmp"
   next n%
   inactive Bt_Dep% : inactive Bt_NoDep%
' fin du tour
   fin$ = "E" : partie()
return
rem ============================================================================
Sub PADEPA(Lc%)
 if Lc%<1 or Lc%>160
    exit_sub
 else
    file_load Lc%,grade$(pion%)+".bmp":' affiche le soldat (normal) à sa position
    hint Lc%," Matricule: "+str$(num_SD(pion%))+chr$(13)+" Munitions: "+str$(munition%(pion%))+" Portée: "+str$(portee%(pion%))+" "+chr$(13)+" Position: "+str$(Pos%(pion%))
    wait vit%
 end_if
end_sub
rem ============================================================================
Dep_ami:
   inactive Bt_NoDep% : inactive_clics()
   c% = number_click : dep% = 0
   for n%=1 to 3
       if case_dep%(n%) = c% then dep% = dep% + 1
   next n%
   if dep% = 0
       message " Vous devez sélectionner une case en bleu"
    '  goto Suite_jeu2
      n% = 1 : c% = Apa% - 19 : ADEPA(c%) : ' sup
      n% = 2 : c% = Apa% + 1  : ADEPA(c%) : ' devant
      n% = 3 : c% = Apa% + 21 : ADEPA(c%) : ' inf
' choix de déplacer ou pas
      active Bt_NoDep% : on_click Bt_NoDep%,Pas_Dep
' active déplacement
      active_clics_DEP()
      clear memo1% : item_add memo1%," VOTRE TOUR "
      item_add memo1%," " : item_add memo1%," Sélectionnez une case bleu pour déplacer votre soldat"
      item_add memo1%," " : item_add memo1%," Ou cliquez sur le bouton [Pas de déplacement]"
      return
   end_if
   file_load c%,"fondB.bmp" : wait vit%
   clear memo1%:item_add memo1%," VOTRE TOUR "
   item_add memo1%," " : item_add memo1%," Cliquez sur le bouton [Déplacement] "
   active Bt_Dep% : on_click Bt_Dep%,Dep_ami2
return
rem ============================================================================
Dep_ami2:
   DEPA(c%,Apa%)
' mise à jour cases vides
   for n% = 1 to 160
      if contenu_kaze%(n%) = 0 then file_load n%,"fond.bmp"
   next n%
   inactive Bt_Dep% : inactive Bt_NoDep%
' fin du tour
   fin$ = "E" : partie()
return
rem ============================================================================
SUB Suite_jeu1()
     clear memo1% : item_add memo1%," VOTRE TOUR "
     item_add memo1%," " : item_add memo1%," Cliquez sur le bouton [TIR]"
     if fin_tir$ <> "OK"
        inactive_clics() : return
     else
        inactive Bt_Tir%
     end_if
END_SUB
rem ============================================================================
SUB Suite_jeu2()
' affiche les cases de déplacement
  n% = 1 : c% = Apa% - 19 : ADEPA(c%) : ' sup
  n% = 2 : c% = Apa% + 1  : ADEPA(c%) : ' devant
  n% = 3 : c% = Apa% + 21 : ADEPA(c%) : ' inf
' choix de déplacer ou pas
  active Bt_NoDep% : on_click Bt_NoDep%,Pas_Dep
' active déplacement
  active_clics_DEP()
  clear memo1% : item_add memo1%," VOTRE TOUR "
  item_add memo1%," " : item_add memo1%," Sélectionnez une case bleu pour déplacer votre soldat"
  item_add memo1%," " : item_add memo1%," Ou cliquez sur le bouton [Pas de déplacement]"
END_SUB
rem ============================================================================
tir_ami:
' les tirs
   if tir% > 0
' recherche dans chacune des 9 cases un ennemi, si oui tire
      if munition%(pion%) > 0
            ' RANGEE 1 valable quelque soit la portée de tir
            if fin_tir$ <> "OK" then c% = Apa% - 19 : TIRA(c%,Apa%) : ' sup
            if fin_tir$ <> "OK" then c% = Apa% + 1  : TIRA(c%,Apa%) : ' devant
            if fin_tir$ <> "OK" then c% = Apa% + 21 : TIRA(c%,Apa%) : ' inf
         if portee%(pion%) > 1
            ' RANGEE 2
            if fin_tir$ <> "OK" then c% = Apa% - 18 : TIRA(c%,Apa%) : ' sup
            if fin_tir$ <> "OK" then c% = Apa% + 2 : TIRA(c%,Apa%) : ' devant
            if fin_tir$ <> "OK" then c% = Apa% + 22 : TIRA(c%,Apa%) : ' inf
         end_if
         if portee%(pion%) > 2
            ' RANGEE 3
            if fin_tir$ <> "OK" then c% = Apa% - 17 : TIRA(c%,Apa%) : ' sup
            if fin_tir$ <> "OK" then c% = Apa% + 3  : TIRA(c%,Apa%) : ' devant
            if fin_tir$ <> "OK" then c% = Apa% + 23 : TIRA(c%,Apa%) : ' inf
         end_if
      else
         message "Votre Solat n'a plus de munitions"
      end_if
   end_if
   fin_tir$ = "OK" : Suite_jeu1() : suite_jeu2()
return

rem ============================================================================
Sub TIRA(Lc%,LApa%)
if munition%(pion%) = 0 then fin_tir$ = "OK":message "Votre soldat n'a plus de munitions":exit_sub
if munition%(pion%) > 0
    if Lc% < 1 or Lc% > 160
       exit_sub : ' hors cadre
    else
     ' si le contenu de la case est de 24 à 48, il y a un ennemi
       if contenu_kaze%(Lc%) > 24 and contenu_kaze%(Lc%) < 49
          munition%(pion%) = munition%(pion%) - 1 : ' pour le tir
          if munition%(pion%) = 0 then fin_tir$ = "OK":message "Votre soldat à tiré sa dernière munition,"+chr$(13)+"mais il va récuperer celle(s) du soldat ennemi.":fin_tir$="OK"
           ' contenu_kaze%(Lc%) = matricule du soldat à tuer
          if contenu_kaze%(Lc%) = 45
             file_load Lc%,"feu.bmp" : wait vit%*2
             Message "BRAVO! Vous avez pris possession du drapeau ennemi !"+chr$(13)+chr$(13)+"              VOUS AVEZ GAGNE CETTE BATAILLE"
             terminate
          end_if
        ' Prend ses munitions et décompte ton tir
          munition%(pion%) = munition%(pion%)+munition%(contenu_kaze%(Lc%))
        ' tue le, met à jour et affiche le tir
          nbje% = nbje% - 1 : caption alpha_nbje%,str$(nbje%)
          munition%(contenu_kaze%(Lc%)) = 0 : grade$(contenu_kaze%(Lc%))=""
          portee%(contenu_kaze%(Lc%))=0 : Pos%(contenu_kaze%(Lc%))=0
          file_load Lc%,"feu.bmp" : wait vit%*2
        ' remettre la case en feu libre
          contenu_kaze%(Lc%) = 0 : file_load Lc%,"fond.bmp" : hint Lc%," Terrain libre "
       end_if
    end_if
    if nbje% = 0 then Message "BRAVO! Vos soldats sont les plus forts"+chr$(13)+chr$(13)+"              VOUS AVEZ GAGNE CETTE BATAILLE":terminate
    if fin_tir$ = "OK" then Suite_jeu1() : Suite_jeu2()
end_if
End_sub
rem ============================================================================
Sub msg()
a$=" VOTRE MISSION: Capturer le drapeau ennemi (les rouges), avant qu'ils ne capturent le vôtre ou exterminent tous vos soldats."+chr$(13)+chr$(13)
a$=a$+" UN CONSEIL: à votre première partie (également pendant la bataille), déplacez la souris sur les soldats (les vôtres ou les ennemis)"+chr$(13)
a$=a$+" et regardez bien les infos bulles (en particulier pour connaître les munitions de l'ennemi)."+chr$(13)+chr$(13)
a$=a$+" VOTRE ADVERSAIRE (l'ordinateur), en cas de tir sur un de vos soldats, se déplacera à la position du soldat tué."+chr$(13)
a$=a$+" Dans ce cas, il a droit à un déplacement supplémentaire avant de passer son tour."+chr$(13)
a$=a$+" Après ce déplacement supplémentaire, il est possible qu'il fasse un nouveau tir (pas toujours), et attendra le prochain tour pour bouger."+chr$(13)
a$=a$+" Ses soldats reviennent dans leur camp quand ils ont avancés au bout du terrain (Les vôtres aussi)."+chr$(13)
a$=a$+" Sachez que l'ordinateur n'expose pas ses soldats inutilement, il préfère passer son tour et c'est très rate qu'il rate un tir."+chr$(13)
a$=a$+" Il dispose de 11 généraux qui ont chacun leur propre stratégie, mais quelquefois il ne les écoute pas."+chr$(13)+chr$(13)
a$=a$+" Pour le déroulement du jeu, suivez les instructions indiquées dans le mémo"+chr$(13)+chr$(13)
a$=a$+" Pour vaincre plus facilement évitez de bloquer tous les soldat adverse, vous pourriez le regretter."+chr$(13)
a$=a$+ " Pour gagner, le mieux est de capturer le drapeau rapidement. Bonne chance !"
message a$
end_sub
rem ============================================================================
Sub init()
    dim memo1%,Bt_Tir%,Bt_Dep%,Bt_NoDep%,alpha_nbja%,alpha_nbje%,dlist1%,Dlist_tri%
    width 0,(dp%*21)-(dp%/2) : height 0,dp%*14
    top 0,((screen_y/2)-(height(0)/2)) : left 0,(screen_x/2)-(width(0)/2)
    color 0,220,230,255 : caption 0," La grande bataille"
    piste()
    no%=no%+1:memo1%=no%:memo no%:parent no%,0:height no%,130:width no%,280:font_bold no%
      top no%,height(0)-(height(no%)*2)+80:left no%,(width(0)/2)-(width(no%)/2)
    no% = no% + 1 : Bt_Tir% = no% : button no%  : parent no%,0 : font_bold no% : caption no%,"Tir"
      top no%,top(memo1%)+(height(memo1%)/2)-45 : left no%,40 : inactive no%
    no% = no% + 1 : Bt_Dep% = no% : button no%  : parent no%,0 : width no%,125 : font_bold no% : caption no%," Déplacement "
      top no%,top(Bt_Tir%)+35 : left no%,18     : inactive no%
    no% = no% + 1 : Bt_NoDep% = no% : button no%  : parent no%,0 : width no%,125 : font_bold no% : caption no%,"Pas de déplacement"
      top no%,top(Bt_Dep%)+35 : left no%,18     : inactive no%
    no% = no% + 1 : alpha_nbja% = no% : alpha no% : parent no%,0 : font_bold no% : font_size no%,14
      top no%,top(Bt_Tir%)-30 : left no%,63 : font_color no%,0,150,50 : caption no%,str$(nbja%)
    no% = no% + 1 : alpha_nbje% = no% : alpha no% : parent no%,0 : font_bold no% : font_size no%,14
      top no%,top(alpha_nbja%) : left no%,Width(0)-70 : font_color no%,255,0,0 : caption alpha_nbje%,str$(nbje%)
    no% = no% + 1 : button no% : left no%,600 : top no%,400 : caption no%,"Quitter" : on_click no%,quit
    ' choisir une stratégie pour l'ordinateur
    n%=int(rnd(11)):strategie%=n%
End_Sub
rem ============================================================================
Sub piste()
    dim_local i%
    no% = 1 : picture no% : parent no%,0 : width no%,dp% : height no%,dp% : top no%,0 : left no%,0
    for i% = 2 to 160
        no% = no% + 1 : picture no% : parent no%,0 : width no%,dp% : height no%,dp%
        if left(no%-1) < dp%*19
           top no%,top(no%-1) : left no%,left(no%-1) + dp%
        else
           top no%,top(no%-1) + dp% : left no%,0
        end_if
    next i%
' charger l'image case vide dans toute les cases
    for i% = 1 to 160
        contenu_kaze%(i%) = 0 :file_load i%,"fond.bmp":hint i%," Terrain libre "
    next i%
' attribution des grades, matricule, munition, portée de l'arme, et état des cases
    i% = 40
    for n% = 20 to 160 step 20
        i% = i% + 1 : num_SD(i%) = i% : Pos%(num_SD(i%)) = n% : grade$(i%) = "se3T"
        munition%(num_SD(i%)) = 1 : portee%(num_SD(i%)) = 3
        contenu_kaze%(n%) = num_SD(i%) : file_load n%,grade$(i%)+".bmp"
        hint n%," Matricule: " + str$(num_SD(i%)) + chr$(13) + " Munitions: " + str$(munition%(num_SD(i%))) + " Portée: " + str$(portee%(num_SD(i%))) + " " + chr$(13) + " Position: " + str$(Pos%(num_SD(i%)))
    next n%
' drapeau
    i% = 45 : n% = 100
    num_SD(i%) = i% : Pos%(num_SD(i%)) = n% : grade$(i%) = "DE"
    contenu_kaze%(n%) = num_SD(i%) : file_load n%,grade$(i%) + ".bmp"
    munition%(num_SD(i%)) = 0 : portee%(num_SD(i%)) = 0 : hint n%," Drapeau ennemi"
    i% = 32 : wait 100
    for n% = 19 to 160 step 20
        i% = i% + 1 : num_SD(i%) = i% : Pos%(num_SD(i%)) = n% : grade$(i%) = "se2T"
        munition%(num_SD(i%)) = 1 : portee%(num_SD(i%)) = 2
        contenu_kaze%(n%) = num_SD(i%) : file_load n%,grade$(i%) + ".bmp"
        hint n%," Matricule: " + str$(num_SD(i%)) + chr$(13) + " Munitions: " + str$(munition%(num_SD(i%))) + " Portése " + str$(portee%(num_SD(i%))) + " " + chr$(13) + " Position: " + str$(Pos%(num_SD(i%)))
    next n%
    i% = 24 : wait 100
    for n% = 18 to 160 step 40
        i% = i% + 1 : num_SD(i%) = i% : Pos%(num_SD(i%)) = n% : grade$(i%) = "se1T"
        munition%(num_SD(i%)) = 3 : portee%(num_SD(i%)) = 1
        contenu_kaze%(n%) = num_SD(i%) : file_load n%,grade$(i%) + ".bmp"
        hint n%," Matricule: " + str$(num_SD(i%)) + chr$(13) + " Munitions: " + str$(munition%(num_SD(i%))) + " Portée: " + str$(portee%(num_SD(i%))) + " " + chr$(13) + " Position: " + str$(Pos%(num_SD(i%)))
    next n%
    for n% = 38 to 160 step 40
        i% = i% + 1 : num_SD(i%) = i% : Pos%(num_SD(i%)) = n% : grade$(i%) = "se1T"
        munition%(num_SD(i%)) = 3 : portee%(num_SD(i%)) = 1
        contenu_kaze%(n%) = num_SD(i%) : file_load n%,grade$(i%) + ".bmp"
        hint n%," Matricule: " + str$(num_SD(i%)) + chr$(13) + " Munitions: " + str$(munition%(num_SD(i%))) + " Portée: " + str$(portee%(num_SD(i%))) + " " + chr$(13) + " Position: " + str$(Pos%(num_SD(i%)))
    next n%
    i% = 0 : wait 100
    for n% = 3 to 160 step 20
        i% = i% + 1:num_SD(i%) = i%:Pos%(num_SD(i%)) = n%:grade$(i%) = "sa1T"
        munition%(num_SD(i%)) = 3:portee%(num_SD(i%)) = 1
        contenu_kaze%(n%) = num_SD(i%):file_load n%,grade$(i%) + ".bmp"
        hint n%," Matricule: " + str$(num_SD(i%)) + chr$(13) + " Munitions: " + str$(munition%(num_SD(i%))) + " Portée: " + str$(portee%(num_SD(i%))) + " " + chr$(13) + " Position: " + str$(Pos%(num_SD(i%)))
    next n%
    i% = 8 : wait 100
    for n% = 2 to 160 step 20
        i% = i% + 1:num_SD(i%) = i%:Pos%(num_SD(i%)) = n%:grade$(i%) = "sa2T":num_SD(i%) = i%
        munition%(num_SD(i%)) = 1:portee%(num_SD(i%)) = 2
        contenu_kaze%(n%) = num_SD(i%):file_load n%,grade$(i%) + ".bmp"
        hint n%," Matricule: " + str$(num_SD(i%)) + chr$(13) + " Munitions: " + str$(munition%(num_SD(i%))) + " Portée: " + str$(portee%(num_SD(i%))) + " " + chr$(13) + " Position: " + str$(Pos%(num_SD(i%)))
    next n%
    i% = 16 : wait 100
    for n% = 1 to 160 step 20
        i% = i% + 1 : num_SD(i%) = i% : Pos%(num_SD(i%)) = n% : grade$(i%) = "sa3T" : num_SD(i%) = i%
        munition%(num_SD(i%)) = 1 : portee%(num_SD(i%)) = 3
        contenu_kaze%(n%) = num_SD(i%) : file_load n%,grade$(i%) + ".bmp"
        hint n%," Matricule: " + str$(num_SD(i%)) + chr$(13) + " Munitions: " + str$(munition%(num_SD(i%))) + " Portée: " + str$(portee%(num_SD(i%))) + chr$(13) + " Position: " + str$(Pos%(num_SD(i%)))
    next n%
' drapeau
    i% = 20 : n% = 61
    num_SD(i%) = i% : Pos%(num_SD(i%)) = n% : grade$(i%) = "DA"
    contenu_kaze%(n%) = num_SD(i%) : file_load n%,grade$(i%) + ".bmp"
    munition%(num_SD(i%)) = 0 : portee%(num_SD(i%)) = 0 : hint n%," Drapeau de vos soldats"
    wait 100
End_Sub
rem ============================================================================
Sub strategies()
' stratégies ennemi 1
if fin$ = "E" and strategie%=1
   if tour%=1 then DEP(26,58,77) : fin$ = "A" : Ami()
   if tour%=2 then DEP(35,59,58) : fin$ = "A" : Ami()
   if tour%=3 then DEP(35,58,37) : fin$ = "A" : Ami()
   if tour%=4 then DEP(43,60,59) : fin$ = "A" : Ami()
   if tour%=5 then DEP(43,59,58) : fin$ = "A" : Ami()
   if tour%=6 then DEP(35,37,16) : fin$ = "A" : Ami()
   if tour%=7 then DEP(43,58,37) : fin$ = "A" : Ami()
   if tour%=8 then DEP(43,37,36) : fin$ = "A" : Ami()
   if tour%=9 then DEP(43,36,35) : fin$ = "A" : Ami()
   if tour%=10 then DEP(43,35,34) : fin$ = "A" : Ami()
   if tour%=11 then DEP(43,34,33) : fin$ = "A" : Ami()
end_if
' stratégies ennemi 2
if fin$ = "E" and strategie%=2
   if tour%=1 then DEP(28,138,157) : fin$ = "A" : Ami()
   if tour%=2 then DEP(39,139,138) : fin$ = "A" : Ami()
   if tour%=3 then DEP(39,138,137) : fin$ = "A" : Ami()
   if tour%=4 then DEP(39,137,156) : fin$ = "A" : Ami()
   if tour%=5 then DEP(47,140,139) : fin$ = "A" : Ami()
   if tour%=6 then DEP(47,139,138) : fin$ = "A" : Ami()
   if tour%=7 then DEP(47,138,137) : fin$ = "A" : Ami()
   if tour%=8 then DEP(47,137,136) : fin$ = "A" : Ami()
   if tour%=9 then DEP(47,136,135) : fin$ = "A" : Ami()
   if tour%=10 then DEP(47,135,134) : fin$ = "A" : Ami()
   if tour%=11 then DEP(47,134,133) : fin$ = "A" : Ami()
end_if
' stratégies ennemi 3
if fin$ = "E" and strategie%=3
   if tour%=1 then DEP(28,138,157) : fin$ = "A" : Ami()
   if tour%=2 then DEP(29,38,17) : fin$ = "A" : Ami()
   if tour%=3 then DEP(31,118,97) : fin$ = "A" : Ami()
   if tour%=4 then DEP(26,58,77) : fin$ = "A" : Ami()
   if tour%=5 then DEP(35,59,38) : fin$ = "A" : Ami()
   if tour%=6 then DEP(38,119,138) : fin$ = "A" : Ami()
   if tour%=7 then DEP(47,140,119) : fin$ = "A" : Ami()
   if tour%=8 then DEP(42,40,59) : fin$ = "A" : Ami()
   if tour%=9 then DEP(47,119,118) : fin$ = "A" : Ami()
   if tour%=10 then DEP(42,59,58) : fin$ = "A" : Ami()
   if tour%=11 then DEP(47,118,137) : fin$ = "A" : Ami()
   if tour%=12 then DEP(42,58,37) : fin$ = "A" : Ami()
   if tour%=13 then DEP(43,60,59) : fin$ = "A" : Ami()
   if tour%=14 then DEP(43,59,58) : fin$ = "A" : Ami()
   if tour%=15 then DEP(43,58,57) : fin$ = "A" : Ami()
   if tour%=16 then DEP(43,57,76) : fin$ = "A" : Ami()
   if tour%=17 then DEP(43,76,95) : fin$ = "A" : Ami()
   if tour%=18 then DEP(43,95,94) : fin$ = "A" : Ami()
   if tour%=19 then DEP(43,94,93) : fin$ = "A" : Ami()
   if tour%=20 then DEP(43,93,112) : fin$ = "A" : Ami()
   if tour%=21 then DEP(43,112,131) : fin$ = "A" : Ami()
end_if
' stratégies ennemi 4
if fin$ = "E" and strategie%=4
   if tour%=1 then DEP(28,138,157) : fin$ = "A" : Ami()
   if tour%=2 then DEP(39,139,138) : fin$ = "A" : Ami()
   if tour%=3 then DEP(31,118,97) : fin$ = "A" : Ami()
   if tour%=4 then DEP(39,138,137) : fin$ = "A" : Ami()
   if tour%=5 then DEP(39,137,136) : fin$ = "A" : Ami()
   if tour%=6 then DEP(38,119,138) : fin$ = "A" : Ami()
   if tour%=7 then DEP(47,140,119) : fin$ = "A" : Ami()
   if tour%=8 then DEP(38,138,137) : fin$ = "A" : Ami()
   if tour%=9 then DEP(39,136,135) : fin$ = "A" : Ami()
   if tour%=10 then DEP(38,137,156) : fin$ = "A" : Ami()
   if tour%=11 then DEP(38,156,155) : fin$ = "A" : Ami()
   if tour%=12 then DEP(47,119,118) : fin$ = "A" : Ami()
   if tour%=13 then DEP(47,118,117) : fin$ = "A" : Ami()
   if tour%=14 then DEP(47,117,116) : fin$ = "A" : Ami()
   if tour%=15 then DEP(29,38,17) : fin$ = "A" : Ami()
end_if
' stratégies ennemi 5
if fin$ = "E" and strategie%=5
   if tour%=1 then DEP(28,138,157) : fin$ = "A" : Ami()
   if tour%=2 then DEP(31,118,137) : fin$ = "A" : Ami()
   if tour%=3 then DEP(27,98,117) : fin$ = "A" : Ami()
   if tour%=4 then DEP(27,117,136) : fin$ = "A" : Ami()
   if tour%=5 then DEP(27,136,155) : fin$ = "A" : Ami()
   if tour%=6 then DEP(31,137,156) : fin$ = "A" : Ami()
   if tour%=7 then DEP(30,78,57) : fin$ = "A" : Ami()
   if tour%=8 then DEP(30,57,36) : fin$ = "A" : Ami()
   if tour%=9 then DEP(30,36,15) : fin$ = "A" : Ami()
   if tour%=10 then DEP(29,38,17) : fin$ = "A" : Ami()
   if tour%=11 then DEP(47,119,138) : fin$ = "A" : Ami()
   if tour%=12 then DEP(47,138,137) : fin$ = "A" : Ami()
   if tour%=13 then DEP(47,137,136) : fin$ = "A" : Ami()
   if tour%=14 then DEP(47,136,115) : fin$ = "A" : Ami()
   if tour%=15 then DEP(26,58,37) : fin$ = "A" : Ami()
   if tour%=16 then DEP(26,37,16) : fin$ = "A" : Ami()
end_if
' stratégies ennemi 6
if fin$ = "E" and strategie%=6
   if tour%=1 then DEP(27,98,117) : fin$ = "A" : Ami()
   if tour%=2 then DEP(36,79,98) : fin$ = "A" : Ami()
   if tour%=3 then DEP(43,60,79) : fin$ = "A" : Ami()
   if tour%=4 then DEP(30,78,57) : fin$ = "A" : Ami()
   if tour%=5 then DEP(43,79,78) : fin$ = "A" : Ami()
   if tour%=6 then DEP(43,78,77) : fin$ = "A" : Ami()
   if tour%=7 then DEP(43,77,76) : fin$ = "A" : Ami()
   if tour%=8 then DEP(43,76,75) : fin$ = "A" : Ami()
   if tour%=9 then DEP(35,59,78) : fin$ = "A" : Ami()
   if tour%=10 then DEP(26,58,37) : fin$ = "A" : Ami()
   if tour%=11 then DEP(43,75,54) : fin$ = "A" : Ami()
   if tour%=12 then DEP(43,54,53) : fin$ = "A" : Ami()
   if tour%=13 then DEP(42,40,39) : fin$ = "A" : Ami()
end_if
' stratégies ennemi 7
if fin$ = "E" and strategie%=7
   if tour%=1 then DEP(28,138,117) : fin$ = "A" : Ami()
   if tour%=2 then DEP(29,38,17) : fin$ = "A" : Ami()
   if tour%=3 then DEP(34,39,38) : fin$ = "A" : Ami()
   if tour%=4 then DEP(34,38,37) : fin$ = "A" : Ami()
   if tour%=5 then DEP(42,40,39) : fin$ = "A" : Ami()
   if tour%=6 then DEP(42,39,38) : fin$ = "A" : Ami()
   if tour%=7 then DEP(39,139,138) : fin$ = "A" : Ami()
   if tour%=8 then DEP(39,138,137) : fin$ = "A" : Ami()
   if tour%=9 then DEP(47,140,139) : fin$ = "A" : Ami()
   if tour%=10 then DEP(47,139,138) : fin$ = "A" : Ami()
   if tour%=11 then DEP(47,138,157) : fin$ = "A" : Ami()
   if tour%=12 then DEP(42,38,57) : fin$ = "A" : Ami()
   if tour%=13 then DEP(47,157,136) : fin$ = "A" : Ami()
   if tour%=14 then DEP(34,37,16) : fin$ = "A" : Ami()
   if tour%=15 then DEP(42,57,76) : fin$ = "A" : Ami()
end_if
' stratégies ennemi 8
if fin$ = "E" and strategie%=8
   if tour%=1 then DEP(28,138,137) : fin$ = "A" : Ami()
   if tour%=2 then DEP(27,98,97) : fin$ = "A" : Ami()
   if tour%=3 then DEP(26,58,57) : fin$ = "A" : Ami()
   if tour%=4 then DEP(25,18,17) : fin$ = "A" : Ami()
   if tour%=5 then DEP(35,59,58) : fin$ = "A" : Ami()
   if tour%=6 then DEP(37,99,98) : fin$ = "A" : Ami()
   if tour%=7 then DEP(39,139,138) : fin$ = "A" : Ami()
   if tour%=8 then DEP(33,19,18) : fin$ = "A" : Ami()
   if tour%=9 then DEP(35,58,77) : fin$ = "A" : Ami()
   if tour%=10 then DEP(39,138,117) : fin$ = "A" : Ami()
   if tour%=11 then DEP(47,140,139) : fin$ = "A" : Ami()
   if tour%=12 then DEP(43,60,59) : fin$ = "A" : Ami()
   if tour%=13 then DEP(47,139,138) : fin$ = "A" : Ami()
   if tour%=14 then DEP(43,59,58) : fin$ = "A" : Ami()
   if tour%=15 then DEP(47,138,157) : fin$ = "A" : Ami()
   if tour%=16 then DEP(43,58,37) : fin$ = "A" : Ami()
   if tour%=17 then DEP(42,40,59) : fin$ = "A" : Ami()
end_if
' stratégies ennemi 9
if fin$ = "E" and strategie%=9
   if tour%=1 then DEP(29,38,57) : fin$ = "A" : Ami()
   if tour%=2 then DEP(29,57,56) : fin$ = "A" : Ami()
   if tour%=3 then DEP(29,56,55) : fin$ = "A" : Ami()
   if tour%=4 then DEP(29,55,54) : fin$ = "A" : Ami()
   if tour%=5 then DEP(29,54,53) : fin$ = "A" : Ami()
   if tour%=6 then DEP(25,18,37) : fin$ = "A" : Ami()
   if tour%=7 then DEP(25,37,36) : fin$ = "A" : Ami()
   if tour%=8 then DEP(26,58,77) : fin$ = "A" : Ami()
   if tour%=9 then DEP(33,19,38) : fin$ = "A" : Ami()
   if tour%=10 then DEP(33,38,57) : fin$ = "A" : Ami()
end_if
' stratégies ennemi 10
if fin$ = "E" and strategie%=10
   if tour%=1 then DEP(29,38,57) : fin$ = "A" : Ami()
   if tour%=2 then DEP(34,39,38) : fin$ = "A" : Ami()
   if tour%=3 then DEP(34,38,37) : fin$ = "A" : Ami()
   if tour%=4 then DEP(34,37,56) : fin$ = "A" : Ami()
   if tour%=5 then DEP(29,57,76) : fin$ = "A" : Ami()
   if tour%=6 then DEP(29,76,55) : fin$ = "A" : Ami()
   if tour%=7 then DEP(34,56,75) : fin$ = "A" : Ami()
   if tour%=8 then DEP(34,75,54) : fin$ = "A" : Ami()
   if tour%=9 then DEP(29,55,74) : fin$ = "A" : Ami()
   if tour%=10 then DEP(29,74,73) : fin$ = "A" : Ami()
   if tour%=11 then DEP(42,40,39) : fin$ = "A" : Ami()
end_if
' stratégies ennemi 11
if fin$ = "E" and strategie%=11
   if tour%=1 then DEP(28,138,137) : fin$ = "A" : Ami()
   if tour%=2 then DEP(28,137,136) : fin$ = "A" : Ami()
   if tour%=3 then DEP(39,139,138) : fin$ = "A" : Ami()
   if tour%=4 then DEP(39,138,137) : fin$ = "A" : Ami()
   if tour%=5 then DEP(47,140,139) : fin$ = "A" : Ami()
   if tour%=6 then DEP(47,139,138) : fin$ = "A" : Ami()
   if tour%=7 then DEP(47,138,117) : fin$ = "A" : Ami()
   if tour%=8 then DEP(47,117,116) : fin$ = "A" : Ami()
   if tour%=9 then DEP(47,116,135) : fin$ = "A" : Ami()
   if tour%=10 then DEP(48,160,139) : fin$ = "A" : Ami()
end_if
End_Sub
rem ============================================================================
quit:
   if message_confirmation_yes_no("Vous voulez vraiment quitter ?") = 1 then terminate
return
rem ================= F I N ====================================================

Amusez-vous bien.


Dernière édition par Jean Claude le Ven 13 Juin 2014 - 12:00, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5923
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Bataille de petits soldats   Ven 13 Juin 2014 - 8:03

Pas le temps d'essayer ce matin, mais ça promet. Bien joué Jean-Claude. Au fait par rapport à ta remarque, il faut quand même que l'on puisse gagner facilement, sinon ce serait frustrant Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

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

MessageSujet: Re: Bataille de petits soldats   Ven 13 Juin 2014 - 12:04

C'est bien ce que je dis:
Citation :
Malgré toutes ces aides, apportées à l'ordinateur, cela reste assez facile de gagner.

Ce qui m'amène à dire que, ce jeu perd assez vite de son intérêt au bout d'un certain nombre de parties, car je sais que vous ne manquerez pas de trouver des stratégies imparables.

 Very Happy 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
mimic

avatar

Nombre de messages : 75
Localisation : france
Date d'inscription : 02/09/2009

MessageSujet: Re: Bataille de petits soldats   Ven 13 Juin 2014 - 14:25

Joli jeu, tous semble fonctionner correctement, Bravo !

( Cependant, c’est long de déplacer les soldats d’une seule case à la fois…)

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5923
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Bataille de petits soldats   Ven 13 Juin 2014 - 23:12

Testé, le jeu est bien Jean-Claude. Maintenant, je pense que tu peux dire que tu l'as mené au bout.
Bien sûr avec l'IA, on peut toujours faire mieux mais pour moi, c'est largement suffisant.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

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

MessageSujet: Re: Bataille de petits soldats   Sam 14 Juin 2014 - 8:04

Merci pour vos commentaires,
Mimic, tu as raison le champ de bataille est trop long à traverser (ou il faudrait se déplacer de plusieurs cases)

L'IA c'est pas de la tarte à faire, je n'ai pas trouvé mieux.

Ce jeu peut servir de base pour en faire d'autres en changeant les images et les règles. J'y pense.....

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

avatar

Nombre de messages : 5923
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Bataille de petits soldats   Sam 14 Juin 2014 - 11:12

Tout à fait Jean-CLaude, c'est l'un des intérêt de ton jeu. C'est que c'est le premier de ce type et qu'il est adaptable, perfectible, etc par toi ou d'autres. Le moteur du jeu existe et il fonctionne bien.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 6273
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Bataille de petits soldats   Sam 14 Juin 2014 - 13:07

Et puis l'Intelligence Artificielle c'est le contraire de la Bêtise Naturelle.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

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

MessageSujet: Re: Bataille de petits soldats   Sam 14 Juin 2014 - 18:22

Wouais JL35, Moi je n'ai pas d'IA, j'ai été élevé au "Choco-BN". Du coup ça a fait un mélange, maintenant j'ai une IN (Intelligence Naturelle) et une BA (Bêtise Artificielle).

 lol! 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 6273
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Bataille de petits soldats   Sam 14 Juin 2014 - 18:40

T'as de la chance Jean Claude, il vaut mieux ça que l'inverse ! de mon temps (au Moyen Age) le choco BN n'avait pas encore été inventé, alors j'ai des carences...
Bonne fête des pères quand même ! (moi c'est ce soir, resto).
Et j'espère que ça continue à aller mieux pour toi.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Bataille de petits soldats   

Revenir en haut Aller en bas
 
Bataille de petits soldats
Revenir en haut 
Page 2 sur 3Aller à la page : Précédent  1, 2, 3  Suivant
 Sujets similaires
-
» MA NOUVELLE VITRINE POUR MES "PETITS TRAINS".
» COMMENT installer et utiliser le systeme de bataille XAS?
» Plusieurs petits bugs
» Faire des Petits Personnages en laine???
» Décodeur TV - prises CPL - 4 petits carrés ....

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Les jeux faits avec Panoramic-
Sauter vers: