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
» StratégoV8 et V9
par Minibug Aujourd'hui à 1:10

» Rotation d'une image d'un angle quelconque
par JL35 Hier à 23:02

» GRID_LOAD
par Jean Claude Hier à 21:04

» HVIEWER
par Yannick Hier à 20:31

» KGF_dll - nouvelles versions
par Klaus Mar 16 Jan 2018 - 21:28

» Déformation d'image en trapèze
par mindstorm Mar 16 Jan 2018 - 21:06

» Mah-Jong américain
par Jean Claude Lun 15 Jan 2018 - 19:37

» Problème avec Deepl
par Klaus Lun 15 Jan 2018 - 0:34

» Quelques nouvelles ...
par Jean Claude Ven 12 Jan 2018 - 22:40

» Renommer les instructions ITEM_... ?
par Jicehel Ven 12 Jan 2018 - 18:56

» Ludothèque Panoramic
par jjn4 Ven 12 Jan 2018 - 18:11

» sous-programmes et fonctions
par Jack Ven 12 Jan 2018 - 17:51

» Mah-Jong français
par Jean Claude Jeu 11 Jan 2018 - 22:15

» panoramic 0.9.28
par gigi75 Ven 5 Jan 2018 - 14:06

» Un jeu qui va vous énerver!
par Jean Claude Jeu 4 Jan 2018 - 22:05

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Janvier 2018
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
293031    
CalendrierCalendrier

Partagez | 
 

 Connaissez-vous Pipopipette ?

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

avatar

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

MessageSujet: Connaissez-vous Pipopipette ?   Dim 29 Oct 2017 - 18:03

Pour ceux qui ne connaissent pas,
c'est un jeu qui se joue en classe
durant les cours ennuyeux, un peu
comme le morpion, mais les règles
sont un peu différentes.
clown
Vous allez pouvoir apprendre à y
jouer et vous y entraîner avec les
deux androïdes qui se cachent
derrière votre écran. Ils sont tous
deux eux-mêmes apprentis-joueurs
et vont vous permettre de ne pas
perdre à tous les coups !
I love you
Découvrez lequel des deux sera
votre partenaire préféré. L'un est
jeune et candide, l'autre plus rusé,
mais un peu roublard. Bien sûr, je
ne vous dis pas lequel est lequel...
Discrétion oblige !
Suspect
Les règles du jeu sont expliquées
dans « Aide ». Amusez-vous bien !
alien jocolor geek alien
Code:
rem ' Pipopipettoramic - le jeu Pipopipette par jjn4 - le 28/10/2017 ==========
  dim DRC%(12,12) : rem Décomptage des Remplissages des Cases
  dim ICR% : rem Indice de Cellule Remplie (1=remplie 0=non)
  dim ILE% : rem Indicateur de Lettre récemment Ecrite
  dim JS% , JX% , JY% : rem Jeu en X et en Y de l`ordinateur selon le Sens H-V
  dim LLX% , LLY% : rem Localisation de la Lettre en X et en Y
  dim NJ% : rem Niveau de Jeu (3 à 12)
  dim NJB% : rem Nombre de Joueurs Biologiques
  dim TB$(4) : rem Titre des Boutons
  dim TJ$ : rem Titre du Jeu
  dim VJ$ : rem Version du Jeu
  dim V1M% , V2M% : rem Variables à utilisation Multiple
  TJ$="  Pipopipette  -  le bon vieux jeu coutumier des cours fastidieux  -  par jjn"
  VJ$="Ver.281017.1.0"
  label clic : rem Redirection de tous les on-click

rem Form0 =====================================================================
  width 0,910
  height 0,720
  caption 0,TJ$+"  -  "+VJ$
  for V1M% = 1 to 4
      read TB$(V1M%)
  next V1M%
 
rem Tableaux des grilles prévisionnelles ======================================
grid 10 : rem Emplacements des traits verticaux -------------------------------
  hide 10
  width 10,165
  height 10,190
  grid_column 10,14
  grid_row 10,13
  grid_column_width 10,10
  grid_row_height 10,13

grid 20 : rem Emplacements des traits horizontaux -----------------------------
  hide 20
  left 20,165
  width 20,150
  height 20,205
  grid_column 20,13
  grid_row 20,14
  grid_column_width 20,10
  grid_row_height 20,13

grid 30 : rem Stratégie pour les traits verticaux partie gauche ---------------
  hide 30
  top 30,210
  width 30,165
  height 30,190
  grid_column 30,12
  grid_row 30,13
  grid_column_width 30,12
  grid_row_height 30,13

grid 40 : rem Stratégie pour les traits verticaux partie droite ---------------
  hide 40
  left 40,170
  top 40,210
  width 40,165
  height 40,190
  grid_column 40,12
  grid_row 40,13
  grid_column_width 40,12
  grid_row_height 40,13

grid 45 : rem Total de la stratégie verticale ---------------------------------
  hide 45
  left 45,340
  top 45,210
  width 45,165
  height 45,190
  grid_column 45,12
  grid_row 45,13
  grid_column_width 45,12
  grid_row_height 45,13

grid 50 : rem Stratégie pour les traits horizontaux partie gauche -------------
  hide 50
  top 50,405
  width 50,180
  height 50,180
  grid_column 50,13
  grid_row 50,12
  grid_column_width 50,12
  grid_row_height 50,13

grid 60 : rem Stratégie pour les traits horizontaux partie droite -------------
  hide 60
  left 60,185
  top 60,405
  width 60,180
  height 60,180
  grid_column 60,13
  grid_row 60,12
  grid_column_width 60,12
  grid_row_height 60,13

grid 65 : rem Total de la stratégie horizontale -------------------------------
  hide 65
  left 65,370
  top 65,405
  width 65,180
  height 65,180
  grid_column 65,13
  grid_row 65,12
  grid_column_width 65,12
  grid_row_height 65,13

grid 70 : rem Détermination des ensembles -------------------------------------
  hide 70
  left 70,315
  width 70,200
  height 70,190
  grid_column 70,12
  grid_row 70,13
  grid_column_width 70,15
  grid_row_height 70,13
 
grid 71 : rem Grille pour la 4° stratégie -------------------------------------
  hide 71
  left 71,510
  top 71,210
  width 71,200
  height 71,180
  grid_column 71,12
  grid_row 71,12
  grid_column_width 71,15
  grid_row_height 71,13
 
grid 75 : rem Détermination des ensembles -------------------------------------
  hide 75
  left 75,515
  width 75,215
  height 75,175
  grid_column 75,13
  grid_row 75,12
  grid_column_width 75,15
  grid_row_height 75,13
 
dlist 90 : rem Liste servant aux choix de l`ordinateur ------------------------

rem Tableau du champ de bataille ==============================================
  NJ%=7
  tableau()
  panel 100 : rem Support du champ de bataille -------------------------------
  picture 110 : rem Champ de bataille lui-même -------------------------------
      parent 110,100
      2d_target_is 110
      print_target_is 110
      font_size 110,24
      font_bold 110
      taille()
  panel 120 : rem Indicateur pour le bouton Jouer ----------------------------
      left 120,130
      top 120,560
      width 120,410
      height 120,30
      font_bold 120
      font_size 120,10
      color 120,255,200,255
      caption 120,"Pour commencer à jouer, pressez le bouton « Jouer »"
     
rem Tableau des commandes =====================================================
  panel 200 : rem Support du tableau des commandes ---------------------------
      left 200,680
      top 200,6
      width 200,200
      height 200,660
  alpha 210 : rem Indicateur couleur de celui qui joue -----------------------
      parent 210,200
      hide 210
      left 210,10
      top 210,5
      width 210,50
      height 210,50
      color 210,0,0,0
  alpha 220 : rem Inscription de qui joue ------------------------------------
      parent 220,200
      left 220,63
      top 220,15
      font_bold 220
      font_size 220,18
      font_name 220,"Arial"
  alpha 230 : rem Indication du score de chacun ------------------------------
      parent 230,200
      left 230,10
      top 230,60
      width 230,85
      height 230,50
      color 230,0,0,0
  alpha 240 : rem Score de Noir ----------------------------------------------
      parent 240,200
      left 240,28
      top 240,70
      font_bold 240
      font_size 240,20
      font_name 240,"Arial"
      color 240,0,0,0
      font_color 240,255,255,255
      caption 240,"0"
  alpha 250 : rem Fond du Rouge ----------------------------------------------
      parent 250,200
      left 250,105
      top 250,60
      width 250,85
      height 250,50
      color 250,255,0,0
  alpha 260 : rem Score du Rouge ---------------------------------------------
      parent 260,200
      left 260,123
      top 260,70
      font_bold 260
      font_size 260,20
      font_name 260,"Arial"
      color 260,255,0,0
      font_color 260,255,255,0
      caption 260,"0"
  alpha 270 : rem Affichage du résultat final --------------------------------
      parent 270,200
      left 270,10
      top 270,115
      width 270,180
      height 270,50
      color 270,0,255,255
  alpha 280 : rem Nom du gagnant ---------------------------------------------
      parent 280,200
      left 280,12
      top 280,125
      font_bold 280
      font_size 280,20
      font_name 280,"Arial"
      color 280,0,255,255
      font_color 280,0,0,255
  container_option 300 : rem Choix du nombre de joueurs biologiques ==========
      parent 300,200
      left 300,10
      top 300,170
      width 300,180
      height 300,50
      caption 300,"Nombre de joueurs biologiques"
  for V1M% = 1 to 3 : rem Obj-syst n° 310, 315 et 320 ------------------------
      option V1M%*5+305
        parent V1M%*5+305,300
        left V1M%*5+305,(V1M%-1)*55+20
        top V1M%*5+305,22
        width V1M%*5+305,30
        font_bold V1M%*5+305
        font_size V1M%*5+305,12
        caption V1M%*5+305,V1M%-1
  next V1M%
  mark_on 315
  container_option 330 : rem Choix du niveau de jeu ==========================
      parent 330,200
      left 330,10
      top 330,225
      width 330,180
      height 330,150
      caption 330,"Niveau de jeu"
  for V1M% = 3 to 12 : rem Obj-syst n° 340 à 430 à pas de 10 -----------------
      option (V1M%-2)*10+330
        V2M%=int(V1M%/8)
        parent (V1M%-2)*10+330,330
        left (V1M%-2)*10+330,V2M%*80+30
        top (V1M%-2)*10+330,(V1M%-2)*25-V2M%*125
        width (V1M%-2)*10+330,40
        font_bold (V1M%-2)*10+330
        font_size (V1M%-2)*10+330,12
        caption (V1M%-2)*10+330,V1M%
  next V1M%
  mark_on 380
  rem Boutons de commande ====================================================
  for V1M% = 1 to 4 : rem Obj-syst n° 500 à 530 à pas de 10
      button V1M%*10+490
        parent V1M%*10+490,200
        left V1M%*10+490,10
        top V1M%*10 +490,V1M%*68+312
        width V1M%*10+490,180
        height V1M%*10+490,65
        font_bold V1M%*10+490
        font_size V1M%*10+490,20
        font_name V1M%*10+490,"Arial"
        caption V1M%*10+490,TB$(V1M%)
        on_click V1M%*10+490,clic
  next V1M%
  rem Activation des niveaux de jeu et du nombre de joueurs ==================
      for V1M% = 340 to 430 step 10
        on_click V1M%,clic
      next V1M%
      for V1M% = 310 to 320 step 5
        on_click V1M%,clic
      next V1M%
  button 550 : rem Bouton de commencement du jeu en 0 joueur bio -------------
      parent 550,200
      hide 550
      left 550,30
      top 550,118
      width 550,140
      height 550,45
      font_bold 550
      font_bold 550
      font_size 550,18
      font_name 550,"Arial"
      caption 550,"G O"
      on_click 550,clic
  panel 560 : rem Affichage de l`androïde qui a gagné en 0 joueurs bio -------
      hide 560
      parent 560,200
      left 560,10
      top 560,5
      width 560,180
      height 560,50
      font_bold 560
      font_size 560,12
      color 560,0,255,0
 
end : rem ' Début des routines ================================================

sub aide() : rem Explication sur le fonctionnement du jeu =====================
  dim_local v1ai$ , v2ai$
  v2ai$=chr$(13)
  application_title "Explications sur le fonctionnement du jeu"
  v1ai$="  Pipopipette se joue sur une feuille de papier quadrillé"+v2ai$
  v1ai$=v1ai$+"de taille variable."+v2ai$+v2ai$
  v1ai$=v1ai$+"  A tour de rôle, chaque joueur surligne d'un trait un des"+v2ai$
  v1ai$=v1ai$+"côtés d'une des cases de la grille."+v2ai$+v2ai$
  v1ai$=v1ai$+"  Celui qui ferme une case (remplit le 4° côté de la case)"+v2ai$
  v1ai$=v1ai$+"inscrit son initiale dans la case, compte 1 point et rejoue"+v2ai$
  v1ai$=v1ai$+"autant de fois que c'est possible. Sinon c'est au tour de"+v2ai$
  v1ai$=v1ai$+"l'autre joueur."+v2ai$+v2ai$
  v1ai$=v1ai$+"  Le gagnant est celui qui a fermé le plus grand nombre de"+v2ai$
  v1ai$=v1ai$+"cases."+v2ai$+v2ai$
  v1ai$=v1ai$+"NOTA: Le pourtour du jeu est considéré comme déjà surligné"+v2ai$
  v1ai$=v1ai$+"dès le départ."+v2ai$+v2ai$
  v1ai$=v1ai$+"  Si vous êtes seul, vous pouvez jouer contre les androïdes"+v2ai$
  v1ai$=v1ai$+"Ferdinand ou Nestor, eux-mêmes apprentis-joueurs, qui se"+v2ai$
  v1ai$=v1ai$+"disputeront l'espoir de devenir votre partenaire préféré."+v2ai$+v2ai$
  v1ai$=v1ai$+"  Vous pouvez aussi jouer à 2, ou bien apprendre le jeu"+v2ai$
  v1ai$=v1ai$+"en regardant les deux androïdes se battre l'un contre l'autre."
  message v1ai$
end_sub

sub android() : rem Choix de l`androïde avec qui jouer ========================
  dim_local v1an$
  v1an$=caption$(500)
  if v1an$="Ferdinand"
      caption 500,"Nestor"
  else
      caption 500,"Ferdinand"
  end_if
end_sub

sub auto() : rem L`ordinateur joue tout seul ==================================
  hide 130
  calcul()
end_sub

sub calcul() : rem Calcule combien cela fera de points selon les cas ==========
  dim_local v1ca% , v2ca% , v3ca% , v4ca% , v5ca$
  inactive 550
  for v1ca% = 1 to NJ%-1 : rem Verticale -------------------------------------
      for v2ca% = 1 to NJ%
        if grid_read$(10,v2ca%+1,v1ca%+2)=""
            grid_write 30,v2ca%+1,v1ca%+1,DRC%(v1ca%,v2ca%)+1
            grid_write 40,v2ca%+1,v1ca%+1,DRC%(v1ca%+1,v2ca%)+1
        else
            grid_write 30,v2ca%+1,v1ca%+1,"0"
            grid_write 40,v2ca%+1,v1ca%+1,"0"
        end_if
        grid_write 45,v2ca%+1,v1ca%+1,val(grid_read$(30,v2ca%+1,v1ca%+1))+val(grid_read$(40,v2ca%+1,v1ca%+1))
      next v2ca%
  next v1ca%
  for v1ca% = 1 to NJ% : rem Horizontale -------------------------------------
      for v2ca% = 1 to NJ%-1
        if grid_read$(20,v2ca%+2,v1ca%+1)=""
            grid_write 50,v2ca%+1,v1ca%+1,DRC%(v1ca%,v2ca%)+1
            grid_write 60,v2ca%+1,v1ca%+1,DRC%(v1ca%,v2ca%+1)+1
        else
            grid_write 50,v2ca%+1,v1ca%+1,"0"
            grid_write 60,v2ca%+1,v1ca%+1,"0"
        end_if
        grid_write 65,v2ca%+1,v1ca%+1,val(grid_read$(50,v2ca%+1,v1ca%+1))+val(grid_read$(60,v2ca%+1,v1ca%+1))
      next v2ca%
  next v1ca%
  rem Tableaux de calcul pour la stratégie 3 Verticale -----------------------
  for v1ca% = 1 to NJ%
      for v2ca% = 1 to NJ%-1
        if val(grid_read$(45,v1ca%+1,v2ca%+1))>0
            v3ca%=v3ca%+1
        else
            v3ca%=0
        end_if
        grid_write 70,v1ca%+1,v2ca%+1,v3ca%
      next v2ca%
  next v1ca%
  v3ca%=0
  for v1ca% = NJ% to 1 step -1
      for v2ca% = NJ%-1 to 1 step -1
        v4ca%=val(grid_read$(70,v1ca%+1,v2ca%+1))
        if val(grid_read$(45,v1ca%+1,v2ca%+1))>0
            v3ca%=v3ca%+1
        else
            v3ca%=0
        end_if
        grid_write 70,v1ca%+1,v2ca%+1,v3ca%+v4ca%
      next v2ca%
  next v1ca%
  v3ca%=0
  for v1ca% = 1 to NJ%-1
      for v2ca% = NJ% to 1 step -1
        v4ca%=val(grid_read$(70,v2ca%+1,v1ca%+1))
        if val(grid_read$(45,v2ca%+1,v1ca%+1))>0
            v3ca%=v3ca%+1
        else
            v3ca%=0
        end_if
        grid_write 70,v2ca%+1,v1ca%+1,v3ca%+v4ca%
      next v2ca%
  next v1ca%
  v3ca%=0
  for v1ca% = NJ%-1 to 1 step -1
      for v2ca% = 1 to NJ%
        v4ca%=val(grid_read$(70,v2ca%+1,v1ca%+1))
        if val(grid_read$(45,v2ca%+1,v1ca%+1))>0
            v3ca%=v3ca%+1
        else
            v3ca%=0
        end_if
        grid_write 70,v2ca%+1,v1ca%+1,v3ca%+v4ca%
      next v2ca%
  next v1ca%
  rem Tableaux de calcul pour la stratégie 3 Horizontale ---------------------
  v3ca%=0
  for v1ca% = 1 to NJ%-1
      for v2ca% = 1 to NJ%
        if val(grid_read$(65,v1ca%+1,v2ca%+1))>0
            v3ca%=v3ca%+1
        else
            v3ca%=0
        end_if
        grid_write 75,v1ca%+1,v2ca%+1,v3ca%
      next v2ca%
  next v1ca%
  v3ca%=0
  for v1ca% = NJ%-1 to 1 step -1
      for v2ca% = NJ% to 1 step -1
        v4ca%=val(grid_read$(75,v1ca%+1,v2ca%+1))
        if val(grid_read$(65,v1ca%+1,v2ca%+1))>0
            v3ca%=v3ca%+1
        else
            v3ca%=0
        end_if
        grid_write 75,v1ca%+1,v2ca%+1,v3ca%+v4ca%
      next v2ca%
  next v1ca%
  v3ca%=0
  for v1ca% = 1 to NJ%
      for v2ca% = NJ%-1 to 1 step -1
        v4ca%=val(grid_read$(75,v2ca%+1,v1ca%+1))
        if val(grid_read$(65,v2ca%+1,v1ca%+1))>0
            v3ca%=v3ca%+1
        else
            v3ca%=0
        end_if
        grid_write 75,v2ca%+1,v1ca%+1,v3ca%+v4ca%
      next v2ca%
  next v1ca%
  v3ca%=0
  for v1ca% = NJ% to 1 step -1
      for v2ca% = 1 to NJ%-1
        v4ca%=val(grid_read$(75,v2ca%+1,v1ca%+1))
        if val(grid_read$(65,v2ca%+1,v1ca%+1))>0
            v3ca%=v3ca%+1
        else
            v3ca%=0
        end_if
        grid_write 75,v2ca%+1,v1ca%+1,v3ca%+v4ca%
      next v2ca%
  next v1ca%
  rem Stratégie 4 ------------------------------------------------------------
  grid_clear 71,15,15
  for v1ca% = 1 to NJ%-1
      for v2ca% = 1 to NJ%-1
        v5ca$=grid_read$(10,v2ca%+1,v1ca%+2)+grid_read$(10,v2ca%+2,v1ca%+2)+grid_read$(20,v2ca%+2,v1ca%+1)+grid_read$(20,v2ca%+2,v1ca%+2)
        grid_write 71,v2ca%+1,v1ca%+1,len(v5ca$)
      next v2ca%
  next v1ca%
  for v1ca% = 1 to NJ%-1
      for v2ca% = 1 to NJ%-1
        if grid_read$(71,v2ca%+1,v1ca%+1)="0"
            if DRC%(v1ca%,v2ca%)=2
              if DRC%(v1ca%,v2ca%+1)=2
                  if DRC%(v1ca%+1,v2ca%)=2
                    if DRC%(v1ca%+1,v2ca%+1)=2
                        grid_write 71,v2ca%+1,v1ca%+1,"-1"
                    end_if
                  end_if
              end_if
            end_if
        end_if
      next v2ca%
  next v1ca%
  for v1ca% = 1 to NJ%-1
      for v2ca% = 1 to NJ%-1
        if grid_read$(71,v2ca%+1,v1ca%+1)="0"
            grid_write 71,v2ca%+1,v1ca%+1,"2"
        end_if
      next v2ca%
  next v1ca%
  ordi()
  active 550
end_sub

clic: : rem Redirection de tous les on-click ==================================
  select number_click
      case 110
        off_click 110
        trace()
        if left$(caption$(220),1)="R"
            if checked(315)=1
              if NJB%<2
                  calcul()
              end_if
              while ILE%=1
                  calcul()
              end_while
            end_if
        end_if
        on_click 110,clic
      case 500 : android()
      case 510 : jouer()
      case 520 : aide()
      case 530 : quitter()
      case 550 : calcul()
  end_select
  if number_click>305 and number_click<325
      NJB%=(number_click/5)-62
      hide 550
      if caption$(510)="Rejouer"
        on_click 110,clic
      end_if
      if checked(310)=1
        if show(120)=0
            show 550
            off_click 110
        end_if
      end_if
      if checked(315)=0
        inactive 500
      else
        active 500
      end_if
      if checked(310)=1
        caption 500,"Ferdinand"
      end_if
  end_if
  if number_click>330 and number_click<440
      NJ%=(number_click/10)-31
      taille()
      tableau()
  end_if
return

sub compte1(qv%,qh%) : rem Met 1 dans tableau des traits verticaux ============
  grid_write 10,qh%+2,qv%+2,"1"
end_sub

sub compte2(qh%,qv%) : rem Met 1 dans tableau des traits horizontaux ==========
  grid_write 20,qh%+2,qv%+2,"1"
end_sub

rem Datas =====================================================================
  data "Ferdinand" , "Jouer" , "Aide" , "Quitter"
rem Fin des datas

sub ecrit() : rem Écrit le nom de celui qui a fermé un carré ==================
  dim_local v1ec% , v2ec% , v3ec% : rem Variables à utilisation multiple
  v1ec%=val(caption$(240))
  v2ec%=val(caption$(260))
  ILE%=0
  if left$(caption$(220),1)="N"
      font_color 110,0,0,0
      caption 240,v1ec%+1
  else
      font_color 110,255,0,0
      caption 260,v2ec%+1
      ILE%=1
  end_if
  print_locate (LLX%-1)*54+20,(LLY%-1)*54+12
  print left$(caption$(220),1)
  ICR%=1
  v1ec%=val(caption$(240))
  v2ec%=val(caption$(260))
  v3ec%=v1ec%+v2ec%
  if v3ec%=NJ%*NJ%
      if v1ec%>v2ec%
        caption 280,"Noir gagne"
      end_if
      if v1ec%=v2ec%
        caption 280,"Ex aequo"
      end_if
      if v1ec%<v2ec%
        caption 280,"Rouge gagne"
      end_if
      ILE%=0
      if checked(310)=1
        if v1ec%>v2ec%
            caption 560,"Ferdinand"+chr$(13)+" a gagné"
        end_if
        if v1ec%<v2ec%
            caption 560,"Nestor"+chr$(13)+" a gagné"
        end_if
        show 560
      end_if
      off_click 110
      hide 210
      hide 220
      hide 550
  end_if
end_sub

sub jouer() : rem Jouer ou rejouer ============================================
  caption 510,"Rejouer"
  show 210
  color 210,0,0,0
  show 220
  hide 560
  font_color 220,0,0,0
  caption 220,"Noir joue"
  caption 240,"0"
  caption 260,"0"
  caption 280,""
  2d_clear
  taille()
  tableau()
  grid_clear 50,12,13
  grid_clear 60,12,13
  grid_clear 65,12,13
  grid_clear 75,12,13
  grid_clear 30,13,12
  grid_clear 40,13,12
  grid_clear 45,13,12
  grid_clear 70,13,12
  active 300
  active 330
  if checked(315)=1
      active 500
  end_if
  hide 120
  if checked(310)=1
      show 550
      caption 500,"Ferdinand"
  end_if
  if checked(310)=0
      on_click 110,clic
  end_if
end_sub

sub ordi() : rem Jeu de l`ordinateur ==========================================
  dim_local v1or% , v2or% , v3or% , v4or% , v5or% , v6or% , v7or%
  dim_local isor% : rem Indicateur de numéro de Stratégie
  clear 90 : rem Stratégie 1 -------------------------------------------------
  for v1or% = 1 to 4
      for v2or% = 1 to NJ%
        for v3or% = 1 to NJ%
            if grid_read$((v1or%+2)*10,v2or%+1,v3or%+1)="4"
              item_add 90,int((v1or%-1)/2)
              item_add 90,v3or%
              item_add 90,v2or%
              isor%=1
            end_if
        next v3or%
      next v2or%
  next v1or%
  if isor%=0
      v3or%=99 : rem Stratégie 2 ----------------------------------------------
      for v1or% = 1 to NJ%
        for v2or% = 1 to NJ%-1
            if numeric(grid_read$(45,v1or%+1,v2or%+1))=1
              if val(grid_read$(45,v1or%+1,v2or%+1))>0
                  if val(grid_read$(45,v1or%+1,v2or%+1))<v3or%
                    v3or%=val(grid_read$(45,v1or%+1,v2or%+1))
                  end_if
              end_if
            end_if
        next v2or%
      next v1or%
      for v1or% = 1 to NJ%-1
        for v2or% = 1 to NJ%
            if numeric(grid_read$(65,v1or%+1,v2or%+1))=1
              if val(grid_read$(65,v1or%+1,v2or%+1))>0
                  if val(grid_read$(65,v1or%+1,v2or%+1))<v3or%
                    v3or%=val(grid_read$(65,v1or%+1,v2or%+1))
                  end_if
              end_if
            end_if
        next v2or%
      next v1or%
      if v3or%<5
        for v1or% = 1 to NJ%
            for v2or% = 1 to NJ%-1
              if numeric(grid_read$(45,v1or%+1,v2or%+1))=1
                  if val(grid_read$(45,v1or%+1,v2or%+1))=v3or%
                    item_add 90,0
                    item_add 90,v2or%
                    item_add 90,v1or%
                  end_if
              end_if
            next v2or%
        next v1or%
        for v1or% = 1 to NJ%-1
            for v2or% = 1 to NJ%
              if numeric(grid_read$(65,v1or%+1,v2or%+1))=1
                  if val(grid_read$(65,v1or%+1,v2or%+1))=v3or%
                    item_add 90,1
                    item_add 90,v2or%
                    item_add 90,v1or%
                  end_if
              end_if
            next v2or%
        next v1or%
      else
        v3or%=999 : rem Stratégie 3 ------------------------------------------
        if caption$(500)="Ferdinand"
            for v1or% = 1 to NJ%
              for v2or% = 1 to NJ%-1
                  if numeric(grid_read$(70,v1or%+1,v2or%+1))=1
                    if val(grid_read$(70,v1or%+1,v2or%+1))>0
                        if val(grid_read$(70,v1or%+1,v2or%+1))<v3or%
                          v3or%=val(grid_read$(70,v1or%+1,v2or%+1))
                          v4or%=70
                        end_if
                    end_if
                  end_if
              next v2or%
            next v1or%
            for v1or% = 1 to NJ%-1
              for v2or% = 1 to NJ%
                  if numeric(grid_read$(75,v1or%+1,v2or%+1))=1
                    if val(grid_read$(75,v1or%+1,v2or%+1))>0
                        if val(grid_read$(75,v1or%+1,v2or%+1))<v3or%
                          v3or%=val(grid_read$(75,v1or%+1,v2or%+1))
                          v4or%=75
                        end_if
                    end_if
                  end_if
              next v2or%
            next v1or%
            if v4or%>0
              for v1or% = 1 to (NJ%-((v4or%/5)-14))
                  for v2or% = 1 to (NJ%-1+((v4or%/5)-14))
                    if numeric(grid_read$(v4or%,v1or%+1,v2or%+1))=1
                        if val(grid_read$(v4or%,v1or%+1,v2or%+1))=v3or%
                          item_add 90,(v4or%-70)/5
                          item_add 90,v2or%
                          item_add 90,v1or%
                        end_if
                    end_if
                  next v2or%
              next v1or%
            end_if
        else
            v3or%=9 : rem Stratégie 4 -----------------------------------------
            if count(90)=0
              for v1or% = 1 to NJ%-1
                  for v2or% = 1 to NJ%-1
                    if val(grid_read$(71,v1or%+1,v2or%+1))<v3or%
                        v3or%=val(grid_read$(71,v1or%+1,v2or%+1))
                    end_if
                  next v2or%
              next v1or%
              if v3or%<4
                  for v1or% = 1 to NJ%-1
                    for v2or% = 1 to NJ%-1
                        v4or%=0 : v6or%=0
                        if val(grid_read$(71,v1or%+1,v2or%+1))=v3or%
                          if numeric(grid_read$(10,v1or%+1,v2or%+2))=0
                              v4or%=1
                              v6or%=1
                              v7or%=1
                          end_if
                          if v4or%=0
                              if numeric(grid_read$(10,v1or%+1,v2or%+3))=0
                                v4or%=2
                                v6or%=1
                                v7or%=1
                              end_if
                          end_if
                          if v4or%>0
                              v4or%=v4or%-1
                          end_if
                          if v6or%=1
                              item_add 90,0
                              item_add 90,v2or%
                              item_add 90,v1or%+v4or%
                          end_if
                        end_if
                    next v2or%
                  next v1or%
                  if v7or%=0
                    for v1or% = 1 to NJ%-1
                        for v2or% = 1 to NJ%-1
                          v5or%=0 : v6or%=0
                          if val(grid_read$(71,v1or%+1,v2or%+1))=v3or%
                              if numeric(grid_read$(20,v1or%+2,v2or%+1))=0
                                v5or%=1
                                v6or%=1
                              end_if
                          end_if
                          if v5or%=0
                              if numeric(grid_read$(20,v1or%+3,v2or%+1))=0
                                v5or%=2
                                v6or%=1
                              end_if
                          end_if
                          if v5or%>0
                              v5or%=v5or%-1
                          end_if
                          if v6or%=1
                              item_add 90,1
                              item_add 90,v2or%+v5or%
                              item_add 90,v1or%
                          end_if
                        next v2or%
                    next v1or%
                  end_if
              end_if
            end_if
        end_if
      end_if
  end_if
  if count(90)>0
      v1or%=int(rnd(count(90)/3))+1
      v1or%=(v1or%-1)*3+1
      JS%=val(item_read$(90,v1or%))
      JX%=val(item_read$(90,v1or%+1))
      JY%=val(item_read$(90,v1or%+2))
      trace()
      if checked(310)=1
        if left$(caption$(220),1)="N"
            caption 500,"Ferdinand"
        else
            caption 500,"Nestor"
        end_if
      end_if
  end_if
end_sub

sub quitter() : rem Quitter le programme ======================================
  dim_local v1qu%
  v1qu%=message_confirmation_yes_no("Vous voulez vraiment arrêter ?")
  if v1qu%=1
      terminate
  end_if
end_sub

sub tableau() : rem Préparation du tableau de remplissage des cases ===========
  dim_local v1ta% , v2ta% : rem Variables à utilisation multiple
  for v1ta% = 1 to 12
      for v2ta% = 1 to 12
        DRC%(v1ta%,v2ta%)=0
      next v2ta%
  next v1ta%
  for v1ta% = 1 to NJ%
      DRC%(v1ta%,1)=DRC%(v1ta%,1)+1
      DRC%(v1ta%,NJ%)=DRC%(v1ta%,NJ%)+1
  next v1ta%
  for v1ta% = 1 to NJ%
      DRC%(1,v1ta%)=DRC%(1,v1ta%)+1
      DRC%(NJ%,v1ta%)=DRC%(NJ%,v1ta%)+1
  next v1ta%
end_sub

sub taille() : rem Dimensions du champ de bataille ============================
  dim_local v1ta% , v2ta%
  2d_clear
  left 100,330-NJ%*27
  top 100,330-NJ%*27
  width 100,NJ%*54+12
  height 100,NJ%*54+12
  full_space 110 : rem Cercles verticaux -------------------------------------
  2d_pen_color 254,254,255
  2d_fill_color 254,254,255
  for v1ta% = 0 to NJ%-1
      for v2ta% = 0 to NJ%-2
        2d_circle v2ta%*54+60,v1ta%*54+33,17
      next v2ta%
  next v1ta%
  2d_pen_color 254,253,255 : rem Cercles horizontaux -------------------------
  2d_fill_color 254,253,255
  for v1ta% = 0 to NJ%-2
      for v2ta% = 0 to NJ%-1
        2d_circle v2ta%*54+33,v1ta%*54+60,17
      next v2ta%
  next v1ta%
  for v1ta% = 1 to NJ%-1 : rem Lignes jaunes ---------------------------------
      2d_pen_width 1
      2d_pen_color 254,200,0
      2d_line 4,v1ta%*54+4,NJ%*54+4,v1ta%*54+4
      2d_pen_color 254,201,0
      2d_line v1ta%*54+4,4,v1ta%*54+4,NJ%*54+4
  next v1ta%
  2d_pen_width 4 : rem Pourtours bleu ciel -----------------------------------
  2d_pen_color 0,175,255
  2d_line 4,4,NJ%*54+4,4
  2d_line 4,NJ%*54+4,NJ%*54+4,NJ%*54+4
  2d_line 4,4,4,NJ%*54+4
  2d_line NJ%*54+4,4,NJ%*54+4,NJ%*54+4
  grid_clear 10,13,14
  for v1ta% = 1 to NJ%
      grid_write 10,v1ta%+1,2,"1"
      grid_write 10,v1ta%+1,NJ%+2,"1"
  next v1ta%
  grid_clear 20,14,13
  for v1ta% = 1 to NJ%
      grid_write 20,2,v1ta%+1,"1"
      grid_write 20,NJ%+2,v1ta%+1,"1"
  next v1ta%
end_sub

sub trace() : rem Trace un trait sur la grille du champ de bataille ===========
  dim_local extr% , eytr% : rem Emplacements de X et Y du point d`impact
  dim_local cjtr% : rem Couleur de celui qui joue
  dim_local crtr% , cvtr% : rem Couleurs en Bleu et en Vert du Point d`impact
  dim_local v1tr% , v2tr% , v3tr% , v4tr% : rem Variables à utilisation multiple
  extr%=mouse_x_position(110)
  eytr%=mouse_y_position(110)
  crtr%=color_pixel_red(110,extr%,eytr%)
  cvtr%=color_pixel_green(110,extr%,eytr%)
  inactive 300
  inactive 330
  inactive 500
  if JX%>0
      extr%=JX%*54-17
      eytr%=JY%*54-17
      crtr%=254
      cvtr%=254-JS%
  end_if
  if left$(caption$(220),1)="N"
      cjtr%=0
  else
      cjtr%=255
  end_if
  if crtr%=254
      if cvtr%=254 or cvtr%=201
        v1tr%=int((extr%-4)/54)
        if (extr%-v1tr%*54)>27
            v2tr%=54
        else
            v2tr%=0
        end_if
        v3tr%=int((eytr%-4)/54)
        2d_pen_color 255,255,255
        2d_fill_color 255,255,255
        2d_pen_width 1
        2d_circle v1tr%*54+6+v2tr%,v3tr%*54+33,19
        2d_pen_width 4
        if cjtr%=255 or checked(310)=1
            if checked(320)=0
              for v4tr% = 1 to 3
                  2d_pen_color 0,255,0
                  2d_line v1tr%*54+4+v2tr%,v3tr%*54+4,v1tr%*54+4+v2tr%,v3tr%*54+58
                  pause 100
                  2d_pen_color cjtr%,0,0
                  2d_line v1tr%*54+4+v2tr%,v3tr%*54+4,v1tr%*54+4+v2tr%,v3tr%*54+58
                  pause 100
              next v4tr%
            end_if
        end_if
        2d_pen_color cjtr%,0,0
        2d_line v1tr%*54+4+v2tr%,v3tr%*54+4,v1tr%*54+4+v2tr%,v3tr%*54+58
        compte1(v1tr%+v2tr%/54,v3tr%)
        DRC%(v1tr%+v2tr%/54,v3tr%+1)=DRC%(v1tr%+v2tr%/54,v3tr%+1)+1
        if DRC%(v1tr%+v2tr%/54,v3tr%+1)=4
            LLX%=v1tr%+v2tr%/54
            LLY%=v3tr%+1
            ecrit()
        end_if
        DRC%(v1tr%+v2tr%/54+1,v3tr%+1)=DRC%(v1tr%+v2tr%/54+1,v3tr%+1)+1
        if DRC%(v1tr%+v2tr%/54+1,v3tr%+1)=4
            LLX%=v1tr%+v2tr%/54+1
            LLY%=v3tr%+1
            ecrit()
        end_if
      end_if
      if cvtr%=253 or cvtr%=200
        v1tr%=int((eytr%-4)/54)
        if (eytr%-v1tr%*54)>27
            v2tr%=54
        else
            v2tr%=0
        end_if
        v3tr%=int((extr%-4)/54)
        2d_pen_color 255,255,255
        2d_fill_color 255,255,255
        2d_pen_width 1
        2d_circle v3tr%*54+33,v1tr%*54+6+v2tr%,19
        2d_pen_width 4
        if cjtr%=255 or checked(310)=1
            if checked(320)=0
              for v4tr% = 1 to 3
                  2d_pen_color 0,255,0
                  2d_line v3tr%*54+4,v1tr%*54+4+v2tr%,v3tr%*54+58,v1tr%*54+4+v2tr%
                  pause 100
                  2d_pen_color cjtr%,0,0
                  2d_line v3tr%*54+4,v1tr%*54+4+v2tr%,v3tr%*54+58,v1tr%*54+4+v2tr%
                  pause 100
              next v4tr%
            end_if
        end_if
        2d_pen_color cjtr%,0,0
        2d_line v3tr%*54+4,v1tr%*54+4+v2tr%,v3tr%*54+58,v1tr%*54+4+v2tr%
        compte2(v1tr%+v2tr%/54,v3tr%)
        DRC%(v3tr%+1,v1tr%+v2tr%/54)=DRC%(v3tr%+1,v1tr%+v2tr%/54)+1
        if DRC%(v3tr%+1,v1tr%+v2tr%/54)=4
            LLX%=v3tr%+1
            LLY%=v1tr%+v2tr%/54
            ecrit()
        end_if
        DRC%(v3tr%+1,v1tr%+v2tr%/54+1)=DRC%(v3tr%+1,v1tr%+v2tr%/54+1)+1
        if DRC%(v3tr%+1,v1tr%+v2tr%/54+1)=4
            LLX%=v3tr%+1
            LLY%=v1tr%+v2tr%/54+1
            ecrit()
        end_if
      end_if
      if ICR%=0
        if left$(caption$(220),1)="N"
            color 210,255,0,0
            font_color 220,255,0,0
            caption 220,"Rouge joue"
        else
            color 210,0,0,0
            font_color 220,0,0,0
            caption 220,"Noir joue"
            ILE%=0
        end_if
        display
      end_if
  end_if
  ICR%=0
  JX%=0
end_sub
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
papydall

avatar

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

MessageSujet: Re: Connaissez-vous Pipopipette ?   Dim 29 Oct 2017 - 19:00

Bravo, ça pipopipette drôlement bien !
J’ai bien «pipopipetté » seul et  avec Ferdinand

Spoiler:
 

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



Nombre de messages : 582
Age : 56
Localisation : TOURS
Date d'inscription : 18/03/2014

MessageSujet: Re: Connaissez-vous Pipopipette ?   Dim 29 Oct 2017 - 20:37


Bonjour à tous !

Merci Jjn4 !

Très sympa comme jeu !

J'ai affronté Nestor :

Spoiler:
 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

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

MessageSujet: Re: Connaissez-vous Pipopipette ?   Lun 30 Oct 2017 - 11:56

Super jeu, j'aime bien.

Il m'a fallu plusieurs parties pour pouvoir vous montrer quelque-chose de présentable, car c'est pas si facile.

Bravo JJN4.

bon, je l'ai pas écrasé, mais j'ai gagné ! :
 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jjn4

avatar

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

MessageSujet: Re: Connaissez-vous Pipopipette ?   Lun 30 Oct 2017 - 17:37

Et alors, vous préférez quel androïde, finalement ?
Laughing
J'aurais voulu en faire un 3° qui serait presque imbattable,
mais j'ai eu un véritable problème mathématique :
comment gérer une structure labyrinthique aléatoire ?
Idea
@ Papydall :
Toi qui a l'air bon en math,
tu as une formule pour ça ?
(une pas trop compliquée,
quand même)
alien scratch Question alien
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Contenu sponsorisé




MessageSujet: Re: Connaissez-vous Pipopipette ?   

Revenir en haut Aller en bas
 
Connaissez-vous Pipopipette ?
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Question] Connaissez-vous "La Guerre des Clans" de Erin Hünter?
» Connaissez-vous
» Connaissez-vous The Next Créator ???
» Connaissez vous Wizgamerz ?
» connaissez vous social blade ?

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: