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
» KGF.dll - demandes ou suggestions de modifications ou ajouts
par pascal10000 Aujourd'hui à 16:47

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

» track_bar circulaire
par Klaus Aujourd'hui à 13:54

» API Windows
par Klaus Aujourd'hui à 3:21

» Cartes de voeux, menus, etc.
par JL35 Hier à 17:48

» Mah-Jong européen new-look
par jjn4 Hier à 15:48

» a l'aide klaus
par Minibug Hier à 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Hier à 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

» anomalie
par Klaus Sam 9 Déc 2017 - 3:21

» hommage
par Jicehel Ven 8 Déc 2017 - 11:29

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Ven 8 Déc 2017 - 10:43

» carte son
par Klaus Ven 8 Déc 2017 - 2:37

» mise a jour calculatrice
par joeeee2017 Mer 6 Déc 2017 - 22:19

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 Un damier

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



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

MessageSujet: Un damier   Sam 5 Mar 2016 - 0:42

C'est juste la représentation du damier, avec déplacement élémentaire des pions, et encore, il en manque, par exemple la prise de pion (entre autres).
Je sais que Jicehel avait fait quelque chose (en 3D ?), mais il n'y a pas eu de suite.
Disons qu'il y a une ébauche de mécanique carrosserie, mais pas de moteur, on est loin du jeu de dames !
Code:
LABEL Clk
DIM rp$,fm$,fpb$,fpn$,w0%,h0%,ws%,hs%,wc%,hc%,c%,r%,x%,y%,cl%,xc%(10),yc%(10)
DIM i%,e%,spr%(9,9),cli%,r1%,c1%,spr1%
rp$ = "C:\TEMP"
fm$ = rp$+"Damier.bmp"
fpb$ = rp$+"Blanc.bmp"
fpn$ = rp$+"Noir.bmp"

cli% = 0
e% = 10: ' marges périphériques
ws% = 800: hs% = ws%: ' dimensions du Scene2d
BORDER_SMALL 0
Winbord()
w0% = hs%+2*wbb%+2*e%: h0% = hs%+wbh%+wbb%+2*e%
wc% = ws%/10: hc% = hs%/10: ' une case
WIDTH 0,w0%: HEIGHT 0,h0%: CAPTION 0," -   DAMES   -"
COLOR 0,128,64,0
SCENE2D 100: TOP 100,e%: LEFT 100,e%: WIDTH 100,ws%+1: HEIGHT 100,hs%+1
  ON_CLICK 100,Clk
SPRITE_TARGET_IS 100
' Damier
PICTURE 10: WIDTH 10,ws%+1: HEIGHT 10,hs%+1
IMAGE 11
2D_TARGET_IS 10: cl% = 255
FOR r% = 0 TO 9
    y% = 1+r%*hc%
    yc%(r%) = y%
    FOR c% = 0 TO 9
        IF cl% = 255
            2D_FILL_COLOR 255,255,255: spr%(r%,c%) = -1: cl% = 0
        ELSE
            2D_FILL_COLOR 128,64,0: ' couleur des cases 'noires'
            spr%(r%,c%) = 0: cl% = 255
        END_IF
        x% = 1+c%*wc%
        2D_RECTANGLE x%,y%,x%+wc%-1,y%+hc%-1
        xc%(c%) = x%
    NEXT c%
    IF cl% = 255
        cl% = 0
    ELSE
        cl% = 255
    END_IF
NEXT r%
FILE_SAVE 10,fm$
FILE_LOAD 100,fm$
2D_FILL_COLOR 0,0,0: 2D_RECTANGLE 1+wc%,1,2*wc%-1,hc%-1
' Pion blanc
x% = wc%+wc%/2: y% = hc%/2: r% = wc%/2-5
2D_FILL_COLOR 255,255,255: 2d_fill_color 220,220,200
2D_PEN_COLOR 48,48,48
2D_CIRCLE x%,y%,r%
2D_IMAGE_COPY 11,wc%,0,2*wc%-1,hc%-1: FILE_SAVE 11,fpb$
' Pion noir
2D_FILL_COLOR 1,1,1: 2D_PEN_COLOR 164,164,164
2D_CIRCLE x%,y%,r%
2D_IMAGE_COPY 11,wc%,0,2*wc%-1,hc%-1: FILE_SAVE 11,fpn$

2D_TARGET_IS 0: DELETE 10: DELETE 11: FILE_DELETE fm$
FOR i% = 1 TO 20
    SPRITE i%: SPRITE_FILE_LOAD i%,fpb$
NEXT i%
FOR i% = 21 TO 40
    SPRITE i%: SPRITE_FILE_LOAD i%,fpn$
NEXT i%
FILE_DELETE fpb$: FILE_DELETE fpn$
' Pions (sprites) blancs
r% = 0: c% = 1
FOR i% = 1 TO 20
    SPRITE_POSITION i%,xc%(c%),yc%(r%): spr%(r%,c%) = i%
    c% = c%+2
    IF c%>9 THEN c% = 0: r% = r%+1: IF BIN_AND(r%,1)=0 THEN c% = 1
NEXT i%
' Pions (sprites) noirs
r% = 6: c% = 1
FOR i% = 21 TO 40
    SPRITE_POSITION i%,xc%(c%),yc%(r%): spr%(r%,c%) = i%
    c% = c%+2
    IF c%>9 THEN c% = 0: r% = r%+1: IF BIN_AND(r%,1)=0 THEN c% = 1
NEXT i%
' ==============================================================================
END: ' =========================================================================
' ==============================================================================
Clk:
x% = MOUSE_X_LEFT_DOWN(100): y% = MOUSE_Y_LEFT_DOWN(100)
c% = INT(x%/wc%): r% = INT(y%/hc%): ' case cliquée
IF spr%(r%,c%) = -1 THEN cli% = 0: RETURN: ' clic sur une case blanche, ignoré
IF cli% = 0
    IF spr%(r%,c%) = 0 THEN RETURN: ' case non occupée
    r1% = r%: c1% = c%: spr1% = spr%(r%,c%): cli% = 1: ' clic sur un pion
ELSE
    IF (c%=(c1%-1) OR c%=(c1%+1)) AND r% <> r1%: ' déplacement d'une colonne
        IF (spr1%<21 AND r%=(r1%+1)) OR (spr1%>20 AND r%=(r1%-1)): ' d'une rangée
            IF spr%(r%,c%)<1: ' clic sur case noire libre (sinon, ignoré)
                SPRITE_POSITION spr1%,xc%(c%),yc%(r%): spr%(r%,c%) = spr1%
                spr%(r1%,c1%) = 0
            END_IF
        END_IF
    END_IF
    cli% = 0
END_IF
RETURN
' ==============================================================================
SUB Winbord()
' Dimensions des bordures de fenêtres Windows
' wbh%: bordure haut, wbb%: bordures bas et latérales
' à appeler juste après la définition des caractéristiques du Form 0
IF VARIABLE("wbh%") = 0 THEN DIM wbh%: ' bordure haut
IF VARIABLE("wbb%") = 0 THEN DIM wbb%: ' bordure bas et latérales
PICTURE 971: FULL_SPACE 971
wbb% = (WIDTH(0)-WIDTH(971))/2: ' bordures latérales (chacune)
wbh% = HEIGHT(0)-HEIGHT(971)-wbb%: ' bordure haut (bas = latérale)
DELETE 971
END_SUB
' ==============================================================================
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jack
Admin
avatar

Nombre de messages : 1771
Date d'inscription : 28/05/2007

MessageSujet: Re: Un damier   Sam 5 Mar 2016 - 10:31

C'est un beau début.

Il y a quelques temps, j'avais posté le source d'un jeu de dames complet avec IA.
Je l'avais porté sur Panoramic à partir d'un source que j'avais utilisé en 1979 sur un TRS80. Mais cette adaptation n'avait eu aucun succès sur le forum : aucun test, aucune réaction, rien...
Le source est peut-être trop ardu à comprendre. Je me souviens que j'avais gardé les mêmes noms de variable que pour le TRS80, c'est à dire 2 caractères maximum, donc peu explicite. Je pense que ce source nécessiterait une remise au goût du jour...

_________________
username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
Jicehel

avatar

Nombre de messages : 5863
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Un damier   Sam 5 Mar 2016 - 13:47

OK Jack. Tu peux être sur qu'un Panoramicien s'y attellera bientôt. Bon pour le moment, je vais essayer de repasser quelques heures pour faire avancer un peu le Stratego, mais après, si personne ne l'a déjà fait, je regarderais ce code.
Bizarre que l'on n'ait pas réagit là dessus. Le jeu de dame a souvent du succès en plus avec l'IA, c'est très interessant, j'avais laissé tomber le mien par ce que cette partie m'échappait.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Un damier   Sam 5 Mar 2016 - 14:45

Merci Jack, effectivement je n'ai fait que la partie facile, le plateau, et je ne me suis pas attaqué à l'IA.
Pour le dessin, les choses sont bien facilitées avec le Scene2d et les sprites.

Je me souviens qu'en TRS-80 (superbe machine, pour l'époque, souvenirs formidables dans mon petit réduit/bureau perso) il y avait un jeu de dames.
Pour le tien, adapté en Panoramic, je l'ai vu aussi autrefois ici mais je n'ai pas approfondi... il va falloir que j'y regarde de plus près (tu devrais peut-être donner le lien, pour les paresseux qui ont la flemme de chercher... pas moi, les autres !).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jack
Admin
avatar

Nombre de messages : 1771
Date d'inscription : 28/05/2007

MessageSujet: Re: Un damier   Sam 5 Mar 2016 - 15:01


_________________
username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
JL35



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

MessageSujet: Re: Un damier   Sam 5 Mar 2016 - 15:02

Merci Jack !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jack
Admin
avatar

Nombre de messages : 1771
Date d'inscription : 28/05/2007

MessageSujet: Re: Un damier   Sam 5 Mar 2016 - 15:07

Pour jouer, tu cliques sur le pion rouge que tu veux déplacer, puis tu cliques sur la case où tu veux le mettre.
L'IA déplace son pion blanc et ainsi de suite ...

_________________
username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
JL35



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

MessageSujet: Re: Un damier   Sam 5 Mar 2016 - 15:19

Oui, je viens de jeter un coup d'oeil, effectivement c'est assez élaboré.
Même s'il semble y avoir quelques lacunes.
Par exemple, on ne peut pas prendre en arrière (sauf pour les dames)... bon, les autres, n'y voyez pas de mauvais esprit hein !
On ne peut pas déplacer les dames de plus d'une case, et la prise par les dames est plutôt aléatoire...
Mais en si peu de lignes, chapeau !

Il faut dire aussi que je devrais regarder de plus près la règle du jeu de dames, pour moi c'est plutôt empirique, vieux souvenirs...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

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

MessageSujet: Re: Un damier   Sam 5 Mar 2016 - 15:30

Bravo JL35,
c'est une bonne idée de relancer le jeu de dame. De plus d'après ce que tu dis, celui de Jack à besoin de quelques améliorations.
Je vais tenter de suivre ce sujet, entre mes travaux extérieurs et la programmation sur Stratégo que je n'ai pas laissé tombé.

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

avatar

Nombre de messages : 5863
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Un damier   Sam 5 Mar 2016 - 15:31

Il a bien mis qu'il fallait le reprendre pour l'améliorer Wink Disons qu'il y a les bases de l'IA et encore de quoi jouer pour en faire un jeu totalement achevé digne du passage de la version originale à Panoramic. Au moins la base est là en peu de lignes et il y a un challenge intéressant pour se motiver.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 475
Age : 45
Localisation : Picardie
Date d'inscription : 19/03/2015

MessageSujet: Re: Un damier   Sam 5 Mar 2016 - 15:38

Le plus difficile ce n'est pas le graphisme, c'est l'IA. Perso, je ne sais pas comment on code une IA, alors je suis bien curieux de voir comment ça va se passer(de même pour stratego)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Un damier   Sam 5 Mar 2016 - 15:44

Là silverman on est bien d'accord, le jeu c'est l'IA, l'interface c'est très facile.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5863
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Un damier   Sam 5 Mar 2016 - 15:53

La dessus, je suis bien d'accord aussi Wink C'est une partie complexe que j'ai toujours du mal à appréhender malgrè mes recherches sur le sujet avec les calculs Min-Max etc...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
pascal10000

avatar

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

MessageSujet: Re: Un damier   Sam 5 Mar 2016 - 15:58

bjr a tout le monde
Qu'est ce que vous appelé l' I.A?
moi qui a été un adepte au jeu de dame je peut vous apporter
quelque thème au niveau de la règle du jeu de dame internationnal
bon week end
Revenir en haut Aller en bas
Voir le profil de l'utilisateur En ligne
Jicehel

avatar

Nombre de messages : 5863
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Un damier   Sam 5 Mar 2016 - 16:03

Non, les règles ce n'est pas le problème. Le problème c'est le codage de l'I.A. (Intelligence Artificielle) pour faire jouer l'ordinateur intelligemment (et si possible avec une intelligence réglable).

Ce sera pareil pour faire jouer l'ordi à Stratego. Bien sûr il peut jour une pièce (ou un pion) au hazard, mais le mieux c'est qu'il ait une tactique (prendre des emplacements plus stratégique, manger le plus de pions possible, trouver le drapeau, détruire le Maréchal adverse, faire une feinte, etc ...) et ça c'est dur à coder.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

Nombre de messages : 2408
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Un damier   Sam 5 Mar 2016 - 20:49

Bonsoir a tous !

Moi aussi je suis curieux de voir la partie IA, même si j'ai une petite idée...
Il serait intéressant d'avoir des exemples de programmation d'IA.

J'aimerai beaucoup approfondir le sujet...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
pascal10000

avatar

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

MessageSujet: Re: Un damier   Lun 7 Mar 2016 - 12:15

bjr
ok pour l'ia
et je te souhaite bcp de courage pour coder cette partie et très
difficile a faire a mon avis
Je peut également te dire qu'il existe des championnats du monde
au jeu de dames artificiel
bon courage a+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur En ligne
Jicehel

avatar

Nombre de messages : 5863
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Un damier   Lun 7 Mar 2016 - 14:03

On se souhaite tous bon courage, mais sauf erreur de ma part, personne n'a pris le sujet d'amélioration de l'IA ... enfin je dis ça, je ne dis rien mais je crois qu'à part reprendre le programme de Jack pour le mettre au goût du jour et l'améliorer, personne ne s'est encore avancé pour dire qu'il aller s'attaquer à l'amélioration de l'IA.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Un damier   Lun 7 Mar 2016 - 15:26

Bien d'accord avec toi Jicehel, il n'a pas été question de s'attaquer à ça, c'est un trop gros morceau qui en ce qui me concerne, je pense, dépasse mes compétences.
Et je tire mon chapeau à Jack pour ce qu'il a déjà fait.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Parpaiun

avatar

Nombre de messages : 192
Age : 78
Localisation : HERAULT
Date d'inscription : 15/04/2015

MessageSujet: Suite à un damier   Lun 4 Avr 2016 - 11:46

Pour qu'un jeu de dames devienne imbattable au fur et à mesure des parties, il ne suffit pas seulement de lui appliquer l'IA, mais encore, à la fin de chaque partie, de lui appliquer le système punition-récompense qui s'avère très efficace. A chaque fois que l'ordinateur perd, on lui supprime la dernière action exécutée en revenant à l'avant-dernière action si elle présente une autre issue. Si elle gagne, on lui double l'indicatif de l'action prise qu'on remet dans une boite dite "de Pandore". Et au moment d'avoir le tour, l''ordinateur puise au hasard une action dans cette boite contenant un certain nombre d'indicateurs correspondant chacun à une action à exécuter. J'ai en exemple ce système dans le très simple jeu "HEXAPION" dans le bouquin "Le paradoxe du pendu et autres divertissements mathématiques" par Martin Gardner, pages 84 à 97. On peut appliquer ce système dans d'autres jeux si on sait très bien comment s'y prendre.
Voilà pour mon conseil. De la part de PARPAIUN ! cheers cheers cheers
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5863
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Un damier   Mar 5 Avr 2016 - 0:53

Bon on espère que tu auras envie de le coder maintenant Parpaiun, ça serait très interessant
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Un damier   

Revenir en haut Aller en bas
 
Un damier
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Damier
» Patate rentente cerise [4/4] A noter
» intérieur Mégane 2

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