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 à 11:55

» Projet de planétarium virtuel.
par Pedro Alvarez Hier à 17:29

» Quantité de mémoire utilisée par un exe
par Navigateur Hier à 14:52

» Problème avec 'file_load'.
par Pedro Alvarez Hier à 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 | 
 

 JEU de NIM

Aller en bas 
AuteurMessage
papydall

avatar

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

MessageSujet: JEU de NIM   Jeu 24 Sep 2015 - 1:33

Salut tout le monde.

On manque cruellement de nouveaux jeux ces-temps-ci.

Voici une adaptation du jeu de NIM.
Vous jouez contre l’ordinateur.
Selon le niveau, de 3 à 7 colonnes contiennent de 1 à 7 boules.
A tour de rôle, vous pouvez enlevez autant de boules que vous voulez, mais dans une seule colonne.
Pour cela, cliquez dans la colonne sur le nombre de boules à prendre.
Celui qui prend la dernière est déclaré vainqueur.

Bonne chance !

Code:

rem ============================================================================
rem        JEU de NIM
rem        Par Papydall
rem ============================================================================
rem <CLICK> pour sélectionner la colonne et le nombre des pièces à enlever
rem Vous pouvez prendre autant de pièces que vous voulez, mais dans une seule colonne.
rem Celui qui prend la dernière est déclaré vainqueur.
rem Vous pouvez commencer ou laisser l ordinateur commencer.
rem Dans tous les cas l ordinateur joue rapidement et efficassement.
rem ============================================================================
Init()
Jeu()
end
rem ============================================================================
SUB Init()
    dim a,b,c,d,e,f,g,level,rep$,result$
    dim row, reflexion,gagne,at,bt,ct,dt,et,ft,gt,pile
    dim a$,b$,c$,d$,e$,f$,g$,units,twos,fours, tour,ans,n,radius,p,p$,t$
    width 0,750 : height 0,500
    color 0,0,0,128 : font_bold 0 : font_name 0,"arial" : font_size 0,16
    alpha 10 : top 10,50 : left 10,400
    t$ = t$ + "<CLICK> pour sélectionner" + chr$(13)
    t$ = t$ + "la colonne et le nombre"+chr$(13)
    t$ = t$ + "des pièces à enlever"+chr$(13)
    t$ = t$ + "Vous pouvez prendre "+chr$(13)
    t$ = t$ + "autant de pièces que"+chr$(13)
    t$ = t$ + "vous voulez, mais dans"+chr$(13)
    t$ = t$ + "une seule colonne."+chr$(13)
    t$ = t$ + "Celui qui prend la dernière"+chr$(13)
    t$ = t$ + "est déclaré vainqueur."

    font_color 0,255,255,255
    2d_fill_on
    repeat
        rep$ = message_input$("Choix du niveau", "Quel niveau (3..7) ?" , "3")
    until numeric(rep$) = 1
    level = val(rep$)
    a = 0 : b = 0 : c = 0 : d = 0
    if level > 6 then a = 7
    if level > 5 then b = 6
    if level > 4 then c = 5
    if level > 3 then d = 4
    e = 3 : f = 2 : g = 1
END_SUB
rem ============================================================================
SUB Jeu()
    for tour = 1 to 100
        Draw()
        if a + b + c + d + e + f + g = 0 then message  "L'ordinateur a gagné !" : terminate : end
        if tour = 1
           ans =  message_confirmation_yes_no("Voulez-vous commencer (O/N) ?")
            caption 10,t$
           if ans = 2 then : Computer_Play() : Draw()
        end_if
        HumanPlay() : Draw()
        if a + b + c + d + e + f + g = 0 then message "Bravo, vous avez gagné ! " : terminate : end
        Computer_Play()
    next tour
END_SUB
rem ============================================================================
SUB Draw()
    cls
    print_locate 33,20 : print " A .....B .....C .....D .....E .....F .....G"
    radius = 20
    2d_fill_color 115,115,0
    for n = 1 to 7
        if a >= n then 2d_circle 050,n*50+30,20
        if b >= n then 2d_circle 100,n*50+30,20
        if c >= n then 2d_circle 150,n*50+30,20
        if d >= n then 2d_circle 200,n*50+30,20
        if e >= n then 2d_circle 250,n*50+30,20
        if f >= n then 2d_circle 300,n*50+30,20
        if g >= n then 2d_circle 350,n*50+30,20
    next n

    for n = 1 to 7
        if a >= n then print_locate 043,n*50+20 : print a+1-n
        if b >= n then print_locate 093,n*50+20 : print b+1-n
        if c >= n then print_locate 143,n*50+20 : print c+1-n
        if d >= n then print_locate 193,n*50+20 : print d+1-n
        if e >= n then print_locate 243,n*50+20 : print e+1-n
        if f >= n then print_locate 293,n*50+20 : print f+1-n
        if g >= n then print_locate 343,n*50+20 : print g+1-n
    next n
END_SUB
rem ============================================================================
SUB Computer_Play()
    print : print : print "C'est le tour de l'ordinateur ..."
    reflexion = 0 : gagne = 0
    repeat
       reflexion = reflexion + 1
       repeat
         at = a : bt = b : ct = c : dt = d : et = e : ft = f : gt = g
         pile = int(rnd(7))
         select pile
            case 0 : at = at - int(rnd(at+1))-1
            case 1 : bt = bt - int(rnd(bt+1))-1
            case 2 : ct = ct - int(rnd(ct+1))-1
            case 3 : dt = dt - int(rnd(dt+1))-1
            case 4 : et = et - int(rnd(et+1))-1
            case 5 : ft = ft - int(rnd(ft+1))-1
            case 6 : gt = gt - int(rnd(gt+1))-1
         end_select
      until (at > -1) and (bt > -1) and (ct > -1) and (dt > -1) and (et > -1) and (ft > -1) and (gt > -1)

      Decimal2Binaire(at+8) : a$ = result$
      Decimal2Binaire(bt+8) : b$ = result$
      Decimal2Binaire(ct+8) : c$ = result$
      Decimal2Binaire(dt+8) : d$ = result$
      Decimal2Binaire(et+8) : e$ = result$
      Decimal2Binaire(ft+8) : f$ = result$
      Decimal2Binaire(gt+8) : g$ = result$

      units = val(mid$(a$,4,1))+val(mid$(b$,4,1))+val(mid$(c$,4,1))+val(mid$(d$,4,1))+val(mid$(e$,4,1))+val(mid$(f$,4,1))+val(mid$(g$,4,1))
      twos  = val(mid$(a$,3,1))+val(mid$(b$,3,1))+val(mid$(c$,3,1))+val(mid$(d$,3,1))+val(mid$(e$,3,1))+val(mid$(f$,3,1))+val(mid$(g$,3,1))
      fours = val(mid$(a$,2,1))+val(mid$(b$,2,1))+val(mid$(c$,2,1))+val(mid$(d$,2,1))+val(mid$(e$,2,1))+val(mid$(f$,2,1))+val(mid$(g$,2,1))

      if (units/2 = int(units/2)) and (twos/2 = int(twos/2)) and (fours/2 = int(fours/2)) then gagne = 1
    until (gagne = 1) or (reflexion = 100)
    a = at : b = bt : c = ct : d = dt : e = et : f = ft: g = gt
    pause 1000
END_SUB
rem ============================================================================
SUB HumanPlay()
    print : print : print "C'est votre tour ..."
    p = 0 : p$ = ""
    repeat
       if mouse_left_down(0) = 1
          if (mouse_x_position(0) > 30) and (mouse_y_position(0) > 60) and ((mouse_x_position(0) + mouse_y_position(0)) < 470 )
             if mouse_x_position(0) < 370 then p$ = "g"
             if mouse_x_position(0) < 320 then p$ = "f"
             if mouse_x_position(0) < 270 then p$ = "e"
             if mouse_x_position(0) < 220 then p$ = "d"
             if mouse_x_position(0) < 170 then p$ = "c"
             if mouse_x_position(0) < 120 then p$ = "b"
             if mouse_x_position(0) < 070 then p$ = "a"

             row = int((mouse_y_position(0)-55)/50)
             If p$ = "a" then p = a-row
             If p$ = "b" then p = b-row
             If p$ = "c" then p = c-row
             If p$ = "d" then p = d-row
             If p$ = "e" then p = e-row
             If p$ = "f" then p = f-row
             If p$ = "g" then p = g-row

             If p$ = "a" then a = a-p
             If p$ = "b" then b = b-p
             If p$ = "c" then c = c-p
             If p$ = "d" then d = d-p
             If p$ = "e" then e = e-p
             If p$ = "f" then f = f-p
             If p$ = "g" then g = g-p
          end_if
        end_if
    until p > 0
    pause 1000
END_SUB
rem ============================================================================
SUB Decimal2Binaire(nombre_decimal)
    dim_local q,r,c$
    q = nombre_decimal : result$ = ""
    while q > 0
          r = mod(q,2) : q = int(q/2) : c$ = str$(r) : result$ =  c$ + result$
    end_while
end_sub
rem ============================================================================
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jean Claude

avatar

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

MessageSujet: Re: JEU de NIM   Jeu 24 Sep 2015 - 7:26

Bonne idée de faire des nouveaux jeux ! ça manquait.

Celui-ci n'est pas facile, mais j'ai finalement réussi (au bout de 5 mn Very Happy )
Il était temps que je gagne car je commençais à avoir les boules. geek
lol!

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

avatar

Nombre de messages : 276
Age : 51
Localisation : Val de Marne (94)
Date d'inscription : 06/05/2011

MessageSujet: Re: JEU de NIM   Jeu 24 Sep 2015 - 9:05

merci papydall.

jp

nb : je voulais faire un petit jeu d'objet caché mais au vu de la pauvreté du langage au niveau graphique(pas de transparence sur les images, gestion du on click sans sub ...) j'ai laissé tomber....(je vais le faire en visual basic 2010....)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jeanpierre.creis.free.fr/Panoramic/Panoramic.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: JEU de NIM   Jeu 24 Sep 2015 - 11:39

"Pauvreté du langage" ? Je te trouve bien sévère, jpcr ! Regarde un peu les jeux déjà réalisés avec Panoramic, et il y en a un certain nombre. Sans mêem parler des miens, il y en a pas mal, déjà? Je suis sûr que tous voudront bien te poster des liens vers leurs jeux. Ainsi, tu pourra constaté la "pauvreté" de visu... Rien que pour les jeux créés par moi, tu as un dossier "Jeux" sur mon WebDab. et encore, il ne contient pas tout !

Certes, des outils professionnels sont plus puissants. Ce n'est pas l'objectif de Panoramic. Cela reste évidemment ton chois, mais VisualBasic n'a rien à faire ici. Je l'utilise aussi, soit dit en passant...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
pascal10000

avatar

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

MessageSujet: Re: JEU de NIM   Jeu 24 Sep 2015 - 12:01

jpcr!
oui t'es un peut sévère sur panoramic
et un on_click pour un sub je ne vois pas
la nécessite qu'il en ai un puisque c'est un
équivalent d'un gosub
cordialement
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: JEU de NIM   Jeu 24 Sep 2015 - 12:07

D'autant qu'on peut programmer ceci, très facilement:
Code:

label click
button 1 : on_click 1,click
end
click:
  MaProcedure()
  return

sub MaProcedure()
...
end_sub

Où est le problème ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
jpcr

avatar

Nombre de messages : 276
Age : 51
Localisation : Val de Marne (94)
Date d'inscription : 06/05/2011

MessageSujet: Re: JEU de NIM   Jeu 24 Sep 2015 - 13:40

haha, il n'y a rien de mal a être un peu sévère avec Panoramic....(bon, pauvreté était fort mal choisi, je vous le concède)

ne m'en veuillez pas si je trouve le langage un peu juste au niveau graphisme... c'est peut être moi qui n'arrive pas a m'adapter.

amicalement.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jeanpierre.creis.free.fr/Panoramic/Panoramic.html
Jicehel

avatar

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

MessageSujet: Re: JEU de NIM   Jeu 24 Sep 2015 - 14:27

On peut t'aider si tu rencontres une difficulté dans Panoramic et tu peux suivre le compilateur qu'est en train de nous faire Jean Debord. Pour certains usage, à l'heure actuelle vu le taux d'occupation de Jack, je pense que ce sera le prochain langage qui pourra répondre à certains type de besoin (entre autre graphiques).
Je pense que son langage est devenu assez mûr pour pouvoir commencer à faire des jeux.
Je m'avance un peu car certes, je l'ai testé au niveau des instructions, mais je n'ai pas le temps de faire de la vrai programmation pour le moment. Toutefois, je pense que je vais pouvoir essayer de réadapter mes anciens sources dans son langage sous peu. Quitte à lui remonter les difficultés techniques ou des conseils de modifications tant que le langage est en cours de construction.
Je pensais voir avec l'éditeur de Minibug, mais j'étais un peu trop optimiste. Minibug est comme nous tous et il avance au rythme de ces disponibilités.
Regarde bien ce qui existe déjà et essaye de faire ce que tu veux en remontant les problèmes que tu rencontres et dans la mesure du possible nous essayerons de te trouver la meilleure solution.
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: JEU de NIM   Ven 25 Sep 2015 - 1:47

Salut tout le monde

Merci pour vos réactions.
Quant à la pauvreté de Panoramic au niveau graphique, je ne suis pas tout à fait d’accord : Panoramic n’est certes pas richissime, mais il est très en dessus du seuil de la pauvreté.
Et puis, quand on dispose de peu de moyens, l’ingéniosité serait au rendez-vous. cheers
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Minibug

avatar

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

MessageSujet: Re: JEU de NIM   Ven 25 Sep 2015 - 7:32

Bravo Papydall !

Mais je ne vais pas jouer longtemps ! Sans technique on perds tout le temps et ça m'agace... bounce
En fait j'ai pas la patience pour persévérer, donc je passe a autre chose !  Laughing  Laughing


Dernière édition par Minibug le Ven 25 Sep 2015 - 10:03, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
jean_debord

avatar

Nombre de messages : 799
Age : 63
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: JEU de NIM   Ven 25 Sep 2015 - 9:28

papydall a écrit:
Panoramic n’est certes pas richissime, mais il est très en dessus du seuil de la pauvreté.

Certes. C'est pour cela que dans mes articles j'ai bien précisé que je ne cherchais pas à reproduire la richesse graphique de Panoramic avec mon compilateur. Je me contente de mettre à la portée du "Panoramicien" moyen quelques-unes des possibilités offertes par FreeBASIC et FLTK.

Pour ceux qui veulent jongler avec les menus, les LIST etc. Panoramic demeure la meilleure solution.

Pour le graphisme proprement dit, FBPano apporte quelques fonctions qui sont absentes de Panoramic. Donc il peut être complémentaire à ce niveau.

PS. Le prochain article traitera de la transparence, mais il a pris du retard, comme toujours !

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
Jicehel

avatar

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

MessageSujet: Re: JEU de NIM   Ven 25 Sep 2015 - 9:29

Le jeu est bien mais il ne faut pas commencer quand au joue au niveau 3 sinon on perd tout le temps.
Si on laisse l'ordinateur commencer alors il est facile de gagner (très facile)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jpcr

avatar

Nombre de messages : 276
Age : 51
Localisation : Val de Marne (94)
Date d'inscription : 06/05/2011

MessageSujet: Re: JEU de NIM   Ven 25 Sep 2015 - 10:45

ha c'est donc pour ça que je perd tout le temps = niveau 3.

jp
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jeanpierre.creis.free.fr/Panoramic/Panoramic.html
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: JEU de NIM   Ven 25 Sep 2015 - 13:06

Bonjour tout le monde.
Merci pour vos réactions  à propos de ce code.

Jean Claude a écrit:
Celui-ci n'est pas facile, mais j'ai finalement réussi (au bout de 5 mn   )

Minibug a écrit:
Sans technique on perds tout le temps et ça m'agace...

Jicehel a écrit:
Le jeu est bien mais il ne faut pas commencer quand au joue au niveau 3 sinon on perd tout le temps.

jpcr a écrit:
ha c'est donc pour ça que je perd tout le temps = niveau 3.

Faire un jeu où l’on gagne (ou l’on perd) à chaque coup, n’est vraiment pas motivant comme jeu.
Pour ce jeu (NIM), il existe bien une stratégie pour jouer et gagner (à la rigueur limiter les dégâts, en espérant que l’adversaire commette une erreur.)
L’ordinateur applique une IA efficace.
Analysez le code pour en percez le secret.

Pour des plus amples précisions, rendez-vous ici et aussi ici
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé




MessageSujet: Re: JEU de NIM   

Revenir en haut Aller en bas
 
JEU de NIM
Revenir en haut 
Page 1 sur 1

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: