FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Tangram Emptypar Klaus Aujourd'hui à 12:13

» PANORAMIC V 1
Tangram Emptypar papydall Aujourd'hui à 3:22

» select intégrés [résolu]
Tangram Emptypar jjn4 Hier à 17:00

» number_mouse_up
Tangram Emptypar jjn4 Hier à 11:59

» Aide de PANORAMIC
Tangram Emptypar jjn4 Hier à 11:16

» trop de fichiers en cours
Tangram Emptypar lepetitmarocain Hier à 10:43

» Je teste PANORAMIC V 1 beta 1
Tangram Emptypar papydall Hier à 4:17

» bouton dans autre form que 0
Tangram Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Tangram Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Tangram Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
Tangram Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
Tangram Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Tangram Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Tangram Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Tangram Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-20%
Le deal à ne pas rater :
-20% Récupérateur à eau mural 300 litres (Anthracite)
79 € 99 €
Voir le deal

 

 Tangram

Aller en bas 
2 participants
AuteurMessage
jjn4

jjn4


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

Tangram Empty
MessageSujet: Tangram   Tangram EmptySam 20 Jan 2024 - 18:11

Et voici un nouveau jeu pour vous distraire.
Ah, le tangram, vous connaissez, bien sûr ?
Trop simple, pensez-vous ?
Des fois, oui, et d'autres fois, pas vraiment !
Essayez donc, vous m'en direz des nouvelles !
jocolor
Tangram Tangra10

Pour le télécharger, soit par le webdav jjn4,
soit individuellement (et avec raccourci), par le lien suivant :
https://kdrive.infomaniak.com/app/share/845078/cb44dbe3-4811-48b2-a637-d43c55387793

Et pour ceux qui veulent voir le listing de plus près :
Code:
rem ' Tangram - par jjn4 - 29/12/2023 =========================================
  dim DSP%(7) : rem Direction des 7 Pièces
  dim IDS% : rem Indice de Déplacement de la Souris
  dim NPP$(7) : rem Nom des Pièces de Présentation
  dim NPS%(7) : rem Numéro de la Pièce contenue dans le Sprite
  dim NSC% : rem Numéro du Sprite Choisi
  dim PAS% : rem Paramètre d`Activation du Son
  dim PIX% , PIY% : rem Position de l`image par rapport à la Souris
  dim PPX%(7) , PPY%(7) : rem Position des Pièces de présentation en X et Y
  dim PSX%(7) , PSY%(7) : rem Position du Sprite en X et Y
  dim TDPX%(34) , TDPY%(34) : rem Tableau complet des Dimensions des Pièces XY
  dim TP$ : rem Titre du Programme
  dim TPU% : rem Type de Pièce Utilisée
  dim V1M% , V2M% , V3M% , V4M% : rem Variables à utilisation Multiple
  TP$="  TANGRAM - par jjn4 - Ver:150124.1.0"
  label clic , close , down , up , move

rem Préparations du jeu =======================================================
  width 0,1365 : height 0,720 : caption 0,TP$ : color 0,220,200,240
  on_close 0,close
  for V1M% = 1 to 7 : read NPP$(V1M%) : next V1M%
  for V1M% = 1 to 7 : read PPX%(V1M%) : read PPY%(V1M%) : next V1M%
  for V1M% = 1 to 34 : read TDPX%(V1M%) : read TDPY%(V1M%) : next V1M%
  form 40 : rem Cache de départ
      width 40,1365 : height 40,720 : caption 40,"  Préparation du jeu"
  picture 45 : rem Image de départ
      parent 45,40 : full_space 45
      if file_exists("Cache.jpg")=1
        file_load 45,"Cache.jpg"
      end_if
  create_hide
  picture 55 : rem Matériel servant au travail de l`ordinateur
      font_bold 55
      font_size 55,14
      font_name 55,"Arial"
      font_color 55,255,255,255
      print_target_is 55
  image 57 : rem Image servant à faire des copier-coller des titres
  create_show

rem Affichage de la façade ====================================================
  picture 100 : rem Support de la fusion des images
      left 100,20 : top 100,50 : width 100,1050 : height 100,600
      color 100,220,200,240
  picture 110 : rem Support des modèles
      left 110,50 : top 110,100 : width 110,640 : height 110,540
      if file_exists("Début.jpg")=1
        file_load 110,"Début.jpg"
      end_if
  scene2d 120 : rem support du jeu
      left 120,20 : top 120,50 : width 120,1050 : height 120,600
      hide 120 : pause 20 : sprite_target_is 120
      fusion() : on_mouse_down 120,down : on_mouse_up 120,up
      inactive 120
  for V1M% = 1 to 7 : rem Pièces du jeu
      V2M%=V1M%+129 : ' N° 130 à 136
      sprite V2M%
  next V1M%
  create_hide
  for V1M% = 1 to 7 : rem Détection de la transparence des sprites
      V2M%=V1M%+139 : ' N° 140 à 146
      picture V2M%
        debut(V1M%)
  next V1M%
  create_show
  sprite 150 : rem Marque de rotation sur la pièce
      if file_exists("Coche.bmp")=1
        sprite_file_load 150,"Coche.bmp"
      end_if
      sprite_hide 150
  picture 160 : rem Panneau de vérification des résultats
      hide 160 : width 160,640 : height 160,540
  panel 190 : rem Base des boutons -------------------------------------------
      left 190,1080 : top 190,379
      width 190,264 : height 190,297
      color 190,220,200,240
      inactive 190
  rem Boutons de rotation ----------------------------------------------------
  for V1M% = 1 to 2
      V2M%= V1M%*10+190 : ' N° 200 et 210
      button_picture V2M%
        parent V2M%,190
        button_picture_target_is_object
        left V2M%,(V1M%-1)*93+5 : top V2M%,5
        width V2M%,83 : height V2M%,65
        button_picture_target_is_picture
        width V2M%,79 : height V2M%,61
        width 55,79 : height 55,61
        if file_exists("Bouton-SAM"+str$(V1M%)+".jpg")=1
            file_load 55,"Bouton-SAM"+str$(V1M%)+".jpg"
        end_if
        2d_target_is 55
        2d_image_copy 57,0,0,78,60
        2d_target_is V2M%
        2d_image_paste 57,0,0
        on_click V2M%,clic
  next V1M%
  rem Boutons de gestion du son ----------------------------------------------
  for V1M% = 1 to 2
      V2M%=V1M%*10+210 : ' N° 220 et 230
      button_picture V2M%
        parent V2M%,190
        button_picture_target_is_object
        left V2M%,186 : top V2M%,5
        width V2M%,68 : height V2M%,65
        button_picture_target_is_picture
        width V2M%,64 : height V2M%,61
        width 55,64 : height 55,61
        if file_exists("Son-"+str$(V1M%)+".jpg")=1
            file_load 55,"Son-"+str$(V1M%)+".jpg"
        end_if
        2d_target_is 55
        2d_image_copy 57,0,0,63,60
        2d_target_is V2M%
        2d_image_paste 57,0,0
        on_click V2M%,clic
  next V1M%
  hide 220
  rem Boutons de commande ----------------------------------------------------
  for V1M% = 1 to 3 : ' Boutons inactifs
      V2M%=V1M%*10+224 : ' N° 234, 244 et 254
      panel V2M%
        parent V2M%,190
        left V2M%,5 : top V2M%,(V1M%-1)*74+75
        width V2M%,254 : height V2M%,69
      V2M%=V1M%*10+226 : ' N° 236, 246 et 256
      picture V2M%
        parent V2M%,V2M%-2
        full_space V2M%
        if file_exists("Bouton-long-i.jpg")=1
            file_load V2M%,"Bouton-long-i.jpg"
        end_if
        font_name V2M%,"Arial" : font_size V2M%,18
        font_color V2M%,255,255,255
        2d_target_is V2M%
        2d_fill_color 185,125,225
        print_target_is V2M%
        select V1M%
            case 1 : print_locate 44,18 : print "Recommencer"
            case 2 : print_locate 48,18 : print "J'abandonne"
            case 3 : print_locate 77,18 : print "J'ai fini"
        end_select
      V2M%=V1M%*10+230 : ' N° 240, 250 et 260
      button_picture V2M% : ' Boutons actifs
        parent V2M%,190
        button_picture_target_is_object
        left V2M%,5 : top V2M%,(V1M%-1)*74+75
        width V2M%,254 : height V2M%,69
        button_picture_target_is_picture
        width V2M%,250 : height V2M%,65
        width 55,270 : height 55,71
        font_name 55,"Arial" : font_size 55,18
        if file_exists("Bouton-long.jpg")=1
            file_load 55,"Bouton-long.jpg"
        end_if
        2d_target_is 55
        2d_fill_color 128,56,190
        print_target_is 55
        select V1M%
            case 1 : print_locate 44,18 : print "Recommencer"
            case 2 : print_locate 48,18 : print "J'abandonne"
            case 3 : print_locate 77,18 : print "J'ai fini"
        end_select
        2d_image_copy 57,0,0,249,64
        2d_target_is V2M%
        2d_image_paste 57,0,0
        on_click V2M%,clic
        hide V2M%
  next V1M%
  list 300 : rem Liste des jeux et zone de texte -----------------------------
      left 300,1080 : top 300,5 : width 300,260 : height 300,369
      font_size 300,24 : font_color 300,0,0,255 : color 300,220,200,240
      if file_exists("Liste-tangram.txt")=1
        file_load 300,"Liste-tangram.txt"
      end_if
      on_click 300,clic
  shape 310 : rem Base de la zone de texte
  shape_rectangle_rounded 310
      left 310,20 : top 310,10 : width 310,1000 : height 310,40
      color 310,130,60,195
  alpha 320 : rem Texte des commentaires
      left 320,30 : top 320,16
      font_size 320,18 : color 320,130,60,195
      font_name 320,"Arial" : font_color 320,255,255,255
      caption 320,"Choisissez un des modèles dans la liste de droite"
  button_picture 330 : rem Bouton de cache du coche
      button_picture_target_is_object
      left 330,1030 : top 330,10 : width 330,40 : height 330,40
      button_picture_target_is_picture
      width 330,36 : height 330,36 : width 55,36 : height 55,36
      color 55,170,65,235 : 2d_target_is 55 : 2d_fill_color 170,65,235
      font_name 55,"Webdings" : font_size 55,30
      print_locate -1,-4 : print chr$(97)
      2d_image_copy 57,0,0,35,35
      2d_target_is 330 : 2d_image_paste 57,0,0 : on_click 330,clic
  panel 350 : rem Base du commentaire final --------------------------------
      hide 350 : left 350,700 : top 350,65 : width 350,360 : height 350,600
  picture 360 : rem Image finale
      parent 360,350 : full_space 360 : on_click 360,clic
  sound 400
  hide 40
  midi_on
      midi_volume 127
     
end : ' Début des routines ====================================================

sub aband() : rem Le joueur abandonne =========================================
  dim_local v1ab%
  if pas%=0
      midi_instrument 115
      midi_play 90,10
  end_if
  for v1ab% = 1 to 7
      debut(v1ab%)
  next v1ab%
  inactive 120
  sprite_hide 150
  inactive 190
  hide 240
  hide 250
  hide 260
  active 300
  caption 320,"Choisissez un des modèles dans la liste de droite"
end_sub

sub choix() : rem Choix du modèle =============================================
  dim_local v1ch% , v$
  if item_index(300)>0
      if file_exists(item_index$(300)+".jpg")=1
        file_load 110,item_index$(300)+".jpg"
      end_if
      show 100 : show 110
      hide 120 : pause 20 : sprite_target_is 120
      fusion()
      for v1ch% = 1 to 7
        debut(v1ch%)
      next v1ch%
      show 120
      active 120
      active 190
      v$=" - Remplissez entièrement le modèle avec toutes les pièces du Tangram"
      caption 320,item_index$(300)+v$
  end_if
end_sub

clic: : rem Gestion de tous les on-click ======================================
  inactive 0
  select number_click
      case 200 : sens_inverse()
      case 210 : sens_montre()
      case 220 : son()
      case 230 : son()
      case 240
        if pas%=0
            midi_instrument 115
            midi_play 90,10
        end_if
        for V1M% = 1 to 7
            debut(V1M%)
        next V1M%
        sprite_hide 150
        NSC%=0
      case 250 : aband() : NSC%=0
      case 260 : fini()
      case 300 : sprite_hide 150 : choix()
      case 330 : sprite_hide 150 : NSC%=0
      case 360
        hide 350
        if active(190)=0
            active 300
            caption 320,"Choisissez un des modèles dans la liste de droite"
        end_if
        NSC%=0
  end_select
  active 0
return

close: : rem Fermeture du programme ===========================================
  midi_off
  if file_exists("Provi.bmp")=1
      file_delete "Provi.bmp"
  end_if
return

rem DATAS =====================================================================
  data "03" , "07" , "12" , "33" , "17" , "21" , "25"
  data 700,20,800,20,680,250,920,250,700,370,850,370,720,500
  data 198,198,140,280,198,198,280,140,198,198,140,280,198,198,280,140
  data 140,140,99,198,140,140,198,99,140,140,99,198,140,140,198,99
  data 99,99,70,140,99,99,140,70,99,99,70,140,99,99,140,70
  data 210,70,198,99,70,198,99,198,210,70,99,198,70,210,198,99
  data 99,99,140,140
rem Fin des datas

sub debut(qp%) : rem Mise des pièces dans la réserve de droite ================
  rem qp% = Quelle Pièce
  dim_local qn% , qq%
  qn%=qp%+129
  if file_exists("Piece-"+NPP$(qp%)+".bmp")=1
      sprite_file_load qn%,"Piece-"+NPP$(qp%)+".bmp"
  end_if
  sprite_position qn%,PPX%(qp%),PPY%(qp%)
  if file_exists("Piece-"+NPP$(qp%)+".bmp")=1
      file_load qn%+10,"Piece-"+NPP$(qp%)+".bmp"
  end_if
  NPS%(qp%)=val(NPP$(qp%))
  PSX%(qp%)=PPX%(qp%)
  PSY%(qp%)=PPY%(qp%)
  qq%=val(NPP$(qp%))
  DSP%(qp%)=qq%-int((qq%-1)/8)*8
end_sub

down: : rem Mise en marche du sprite à partir du clic souris ==================
  quel()
  if NSC%>0
      PIX%=mouse_x_position(120)
      PIY%=mouse_y_position(120)
      if (PIX%>PSX%(NSC%)) and (PIX%<(PSX%(NSC%)+TDPX%(NPS%(NSC%))-1))
        if (PIY%>PSY%(NSC%)) and (PIY%<(PSY%(NSC%)+TDPY%(NPS%(NSC%))-1))
            PIX%=PIX%-PSX%(NSC%)
            PIY%=PIY%-PSY%(NSC%)
            V1M%=color_pixel_red(NSC%+139,PIX%,PIY%)
            V2M%=color_pixel_green(NSC%+139,PIX%,PIY%)
            V3M%=color_pixel_blue(NSC%+139,PIX%,PIY%)
            if V1M%>0 or V2M%>0 or V3M%>0
              IDS%=1
              inactive 300
              show 240
              show 250
              show 260
              hide 350
              on_mouse_move 120,move
            end_if
        end_if
      end_if
  end_if
return

sub fini() : rem Le joueur déclare avoir fini =================================
  dim_local v1fi% , v2fi% , rf% , ib% , v3fi$
  hide 240
  hide 250
  hide 260
  inactive 190
  if pas%=0
      midi_instrument 115
      midi_play 90,10
  end_if
  if file_exists("Vérif.jpg")=1
      file_load 360,"Vérif.jpg"
  end_if
  show 350
  2d_target_is 0
  2d_image_copy 57,50,100,690,640
  2d_target_is 160
  2d_image_paste 57,0,0
  for v1fi% = 5 to 535 step 5
      for v2fi% = 5 to 635 step 5
        ib%=0 : ' Détection de blanc sur le point
        if color_pixel_red(160,v2fi%,v1fi%)=255
            if color_pixel_green(160,v2fi%,v1fi%)=255
              if color_pixel_blue(160,V2fi%,v1fi%)=255
                  ib%=1
              end_if
            end_if
        end_if
        if ib%=1 : ' Détection de blanc autour du point
            if color_pixel_red(160,v2fi%-1,v1fi%)=255
              if color_pixel_green(160,v2fi%+1,v1fi%)=255
                  if color_pixel_blue(160,v2fi%,v1fi%-1)=255
                    if color_pixel_green(160,v2fi%,v1fi%+1)=255
                        rf%=rf%+1
                    end_if
                  end_if
              end_if
            end_if
        end_if
      next v2fi%
  next v1fi%
  if rf%=0 : ' Le joueur est victorieux
      if file_exists("Bravo.jpg")=1
        file_load 360,"Bravo.jpg"
      end_if
      if file_exists("Bravo.mp3")=1
        file_load 400,"Bravo.mp3"
      end_if
      v3fi$=" - Bravo, c'est excellent - "
      v3fi$=v3fi$+"Cliquez sur le canard pour une nouvelle partie"
      caption 320,item_index$(300)+v3fi$
      inactive 120
      inactive 190
  else : ' Le joueur n'a pas fini
      if file_exists("Blanc.jpg")=1
        file_load 360,"Blanc.jpg"
      end_if
      if file_exists("Blanc.mp3")=1
        file_load 400,"Blanc.mp3"
      end_if
  end_if
  if PAS%=0
      play 400
      if rf%=0
        pause 4000
      else
        pause 600
      end_if
  end_if
  if rf%>0
      active 190
  end_if
end_sub

sub fusion() : rem Fusion du modèle et du fond ================================
  2d_target_is 0
  2d_image_copy 57,20,50,1070,650
  2d_target_is 100
  2d_image_paste 57,0,0
  file_save 100,"Provi.bmp"
  hide 100 : hide 110
  file_load 120,"Provi.bmp"
  show 120
end_sub

sub marque() : rem Imposition d`une marque sur la pièce =======================
  dim_local v1ma% , v2ma%
  v1ma%=PSX%(NSC%)+int((TDPX%(NPS%(NSC%))-40)/2)
  v2ma%=PSY%(NSC%)+int((TDPY%(NPS%(NSC%))-40)/2)
  select DSP%(NSC%)
      case 1 : v1ma%=v1ma%-(33-TPU%*7) : v2ma%=v2ma%+(33-TPU%*7)
      case 3 : v1ma%=v1ma%-(33-TPU%*7) : v2ma%=v2ma%-(33-TPU%*7)
      case 5 : v1ma%=v1ma%+(33-TPU%*7) : v2ma%=v2ma%-(33-TPU%*7)
      case 7 : v1ma%=v1ma%+(33-TPU%*7) : v2ma%=v2ma%+(33-TPU%*7)
  end_select
  sprite_position 150,v1ma%,v2ma%
  sprite_show 150
end_sub

move: : rem Mouvement du sprite sur la grille =================================
  off_mouse_move 120
  V1M%=mouse_x_position(120)
  V2M%=mouse_y_position(120)
  if ((V1M%-PIX%)>2) and ((V1M%-PIX%+TDPX%(NPS%(NSC%)))<1048)
      if ((V2M%-PIY%)>2) and ((V2M%-PIY%+int(TDPX%(NPS%(NSC%))/2))<598)
        sprite_position NSC%+129,V1M%-PIX%,V2M%-PIY%
        V3M%=(V1M%-PIX%)+int((TDPX%(NPS%(NSC%))-40)/2)
        V4M%=(V2M%-PIY%)+int((TDPY%(NPS%(NSC%))-40)/2)
        select DSP%(NSC%)
            case 1 : V3M%=V3M%-(33-TPU%*7) : V4M%=V4M%+(33-TPU%*7)
            case 3 : V3M%=V3M%-(33-TPU%*7) : V4M%=V4M%-(33-TPU%*7)
            case 5 : V3M%=V3M%+(33-TPU%*7) : V4M%=V4M%-(33-TPU%*7)
            case 7 : V3M%=V3M%+(33-TPU%*7) : V4M%=V4M%+(33-TPU%*7)
        end_select
        sprite_position 150,V3M%,V4M%
      end_if
  end_if
  on_mouse_move 120,move
return

sub quel() : rem Quelle pièce est cliquée =====================================
  dim_local v1qu% , qx% , qy% , cr% , cg% , cb%
  qx%=mouse_x_position(120)
  qy%=mouse_y_position(120)
  for v1qu% = 7 to 1 step -1
      if qx%>PSX%(v1qu%) and qx%<PSX%(v1qu%)+TDPX%(NPS%(v1qu%))
        if qy%>PSY%(v1qu%) and qy%<PSY%(v1qu%)+TDPY%(NPS%(v1qu%))
            cr%=color_pixel_red(v1qu%+139,qx%-PSX%(v1qu%),qy%-PSY%(v1qu%))
            cg%=color_pixel_green(v1qu%+139,qx%-PSX%(v1qu%),qy%-PSY%(v1qu%))
            cb%=color_pixel_blue(v1qu%+139,qx%-PSX%(v1qu%),qy%-PSY%(v1qu%))
            if cr%>0 or cg%>0 or cb%>0
              NSC%=v1qu%
              TPU%=int(((NPS%(NSC%))-1)/8)
              if TPU%=3
                  TPU%=TPU%+2
              end_if
              exit_for
            end_if
        end_if
      end_if
  next v1qu% 
end_sub

sub sens_inverse() : rem Rotation pièce sens inverse de montre ================
  dim_local v1si% , v2si$
  if NSC%>0
      v1si%=int(((NPS%(NSC%))-1)/8)
      if v1si%<4
        if v1si%=int((NPS%(NSC%)-2)/8)
            NPS%(NSC%)=NPS%(NSC%)-1
        else
            NPS%(NSC%)=(v1si%+1)*8
        end_if
      else
        if even(NPS%(NSC%))=0
            NPS%(NSC%)=34
            DSP%(NSC%)=2
        else
            NPS%(NSC%)=33
            DSP%(NSC%)=1
        end_if
      end_if
      TPU%=v1si%
      if TPU%=3
        TPU%=TPU%+2
      end_if
      v2si$=str$(NPS%(NSC%))
      if len(v2si$)<2
        v2si$="0"+v2si$
      end_if
      if file_exists("Piece-"+v2si$+".bmp")=1 
        sprite_file_load NSC%+129,"Piece-"+v2si$+".bmp"
      end_if
      sprite_position NSC%+129,PSX%(NSC%),PSY%(NSC%)
      if file_exists("Piece-"+v2si$+".bmp")=1
        file_load NSC%+139,"Piece-"+v2si$+".bmp"
      end_if
      if v1si%<4
        DSP%(NSC%)=DSP%(NSC%)-1
        if DSP%(NSC%)<1
            DSP%(NSC%)=8
        end_if
      end_if
      marque()
  end_if
end_sub

sub sens_montre() : rem Rotation pièce sens aiguilles d`une montre ============
  dim_local v1sm% , v2sm$
  if NSC%>0
      v1sm%=int(((NPS%(NSC%))-1)/8)
      if v1sm%<4
        if v1sm%=int(NPS%(NSC%)/8)
            NPS%(NSC%)=NPS%(NSC%)+1
        else
            NPS%(NSC%)=(v1sm%+1)*8-7
        end_if
      else
        if even(NPS%(NSC%))=0
            NPS%(NSC%)=34
            DSP%(NSC%)=2
        else
            NPS%(NSC%)=33
            DSP%(NSC%)=1
        end_if
      end_if
      TPU%=v1sm%
      if TPU%=3
        TPU%=TPU%+2
      end_if
      v2sm$=str$(NPS%(NSC%))
      if len(v2sm$)<2
        v2sm$="0"+v2sm$
      end_if
      if file_exists("Piece-"+v2sm$+".bmp")=1 
        sprite_file_load NSC%+129,"Piece-"+v2sm$+".bmp"
      end_if
      sprite_position NSC%+129,PSX%(NSC%),PSY%(NSC%)
      if file_exists("Piece-"+v2sm$+".bmp")=1
        file_load NSC%+139,"Piece-"+v2sm$+".bmp"
      end_if
      if v1sm%<4
        DSP%(NSC%)=DSP%(NSC%)+1
        if DSP%(NSC%)>8
            DSP%(NSC%)=1
        end_if
      end_if
      marque()
  end_if
end_sub

sub son() : rem Gestion du son ================================================
  if number_click=220
      hide 220
      show 230
      PAS%=0
  else
      hide 230
      show 220
      PAS%=1
  end_if
end_sub

up: : rem Relâchement de la souris sur la grille ==============================
  if IDS%=1
      off_mouse_move 120
      PSX%(NSC%)=mouse_x_position(120)
      PSX%(NSC%)=PSX%(NSC%)-PIX%
      V1M%=PSX%(NSC%)
      PSY%(NSC%)=mouse_y_position(120)
      PSY%(NSC%)=PSY%(NSC%)-PIY%
      V2M%=PSY%(NSC%)
      IDS%=0
      PSX%(NSC%)=int(PSX%(NSC%)/10)*10
      PSY%(NSC%)=int(PSY%(NSC%)/10)*10
      if V1M%>(PSX%(NSC%)+10/2)
        PSX%(NSC%)=PSX%(NSC%)+10
      end_if
      if V2M%>(PSY%(NSC%)+10/2)
        PSY%(NSC%)=PSY%(NSC%)+10
      end_if
      if PSX%(NSC%)<2
        PSX%(NSC%)=2
      end_if
      if (PSX%(NSC%)+TDPX%(NPS%(NSC%)))>1048
        PSX%(NSC%)=1049-TDPX%(NPS%(NSC%))
      end_if
      if PSY%(NSC%)<2
        PSY%(NSC%)=2
      end_if
      if (PSY%(NSC%)+TDPY%(NPS%(NSC%)))>598
        PSY%(NSC%)=599-TDPY%(NPS%(NSC%))
      end_if
      sprite_position NSC%+129,PSX%(NSC%),PSY%(NSC%)
      marque()
  end_if
return
Bien sûr, ce code ne vous permettra pas d'essayer le programme
si vous n'avez pas les fichiers annexes.
geek
Amusez-vous bien !
santa
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Marc

Marc


Nombre de messages : 2392
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Tangram Empty
MessageSujet: Re: Tangram   Tangram EmptySam 20 Jan 2024 - 21:43

Bonsoir à tous !

@JJN4
Encore un super jeu, très bien conçu et présenté !  cheers

Effectivement, ce n’est pas si simple que cela puisse paraître !

Il me reste encore 51 défis à résoudre ! ! !

Bravo JJN4 !

Capture d'écran:
Revenir en haut Aller en bas
 
Tangram
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Tangram
» Récapitulatif ludothèque panoramic jjn4
» Tangram-Toukaré

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: