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
» Logiciel de planétarium.
Panoramic pour Android : instantané du développement - Page 2 Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Panoramic pour Android : instantané du développement - Page 2 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Panoramic pour Android : instantané du développement - Page 2 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Panoramic pour Android : instantané du développement - Page 2 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Panoramic pour Android : instantané du développement - Page 2 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Panoramic pour Android : instantané du développement - Page 2 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Panoramic pour Android : instantané du développement - Page 2 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Panoramic pour Android : instantané du développement - Page 2 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Panoramic pour Android : instantané du développement - Page 2 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Panoramic pour Android : instantané du développement - Page 2 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Panoramic pour Android : instantané du développement - Page 2 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Panoramic pour Android : instantané du développement - Page 2 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Panoramic pour Android : instantané du développement - Page 2 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Panoramic pour Android : instantané du développement - Page 2 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Panoramic pour Android : instantané du développement - Page 2 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment : -28%
-28% Machine à café avec broyeur ...
Voir le deal
229.99 €

 

 Panoramic pour Android : instantané du développement

Aller en bas 
+2
Pedro
Jack
6 participants
Aller à la page : Précédent  1, 2
AuteurMessage
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Panoramic pour Android : instantané du développement - Page 2 Empty
MessageSujet: Re: Panoramic pour Android : instantané du développement   Panoramic pour Android : instantané du développement - Page 2 EmptyJeu 13 Nov 2014 - 10:47

Moi, j'ai un Galaxy S3 et ça marche si ça peut t'aider

PS: Pour Jack au niveau de l'éditeur intégré. J'ai réussi à reproduire plusieur fois le message de violation d'accès en supprimant des caractère (l'équvalent du backspace sur le clavier intégré)

Du coup je suis la procédure recommandé (modification du source depuis le PC) ou en utilisant un petit traitement de texte sur mon S3 (perso, j'ai mis TED, ça marche bien. Je ne sais pas s'il y a mieux pour éditer mais ça marche bien en attendant une version Android de Synedit)
Revenir en haut Aller en bas
Klaus

Klaus


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

Panoramic pour Android : instantané du développement - Page 2 Empty
MessageSujet: Re: Panoramic pour Android : instantané du développement   Panoramic pour Android : instantané du développement - Page 2 EmptyJeu 13 Nov 2014 - 16:34

Je télécharge le Galaxy S3 et j'essaie...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

Panoramic pour Android : instantané du développement - Page 2 Empty
MessageSujet: Re: Panoramic pour Android : instantané du développement   Panoramic pour Android : instantané du développement - Page 2 EmptyJeu 13 Nov 2014 - 17:23

Dommage. Avec le GAlaxy S3 simulé, j'ai exactement le même message...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Panoramic pour Android : instantané du développement - Page 2 Empty
MessageSujet: Re: Panoramic pour Android : instantané du développement   Panoramic pour Android : instantané du développement - Page 2 EmptyVen 14 Nov 2014 - 15:01

Je pense que ça vient de l'émulateur Klaus.

Bon sinon pour tester Panoramic sous Android, j'ai essayé de voir un peu ce que l'on pouvait faire.
Actuellement, j'ai rencontré des problème de remplissage avec 2_fill sur les 2d_rectangle ou les 2D_circle.
Il me remplissait une zone de l'écran ne correspondant pas à l'objet.

J'ai fini pas faire un code simplifié qui devrait marcher.
Il fonctionne sur le PC et d'après mes tests, il devrait aussi fonctionner sur Android car Jack utilise la fonction 2d_circle dans une de ses démos, mais moi, la balle ne s'affiche pas.

Je mets le code et si tu as le temps de m'expliquer ce que je devrais faire pour que ça marche Jack, je pourrais avoir l'honneur d'avoir fait le premier jeu (basic) a fonctionner sous Panoramic pour Android Very Happy

Bon le jeu n'est pas parfait du tout, c'est juste un exemple et un test des possibilité du langage et pour le moment pour une raison qui m'échappe, je rappelle que la balle ne s'affiche pas.

Code:
' Panorabric version Android (Prevu pour Samsung S3)
' Resolution de l'écran 600 x 380

label efface_raquette, dessine_raquette
label clic,fin, boucle_principale, init_niveau, recommence
label trace_brique,dessine_briques
label lance_balle, deplace_balle, trace_balle, efface_balle

' Déclarations
dim i,j,c
dim h,l : h=600: l=380
dim x_r , y_r, hauteur_r, largeur_r
dim hauteur_b, largeur_b : hauteur_b = 8 : largeur_b=22
dim Nb_lignes, Nb_briques_restantes
dim Nb_b_ligne : Nb_b_ligne = int((l - 60)/(largeur_b+5))
dim xb, yb, r , N, n_picture
dim x_ball,y_ball, r_ball, n_ball : r_ball = 10
dim vies : vies = 3
dim score : score = 0
dim objet%, nom_couleur$
dim ecran%, aff_vies%, aff_score%
dim Nb_couleur%: Nb_couleur% = 18
dim t_c(Nb_couleur%,3)
dim ombre  : ombre=30
dim lumiere : lumiere = 30

height 0, h: width 0,l
caption 0, "PANORABRIC Android - V1.0"
border_small 0
button 1 : hide 1 : ' Creation du bouton gauche
top 1,h - 80:left 1,10 : caption 1,"<"
on_click 1,clic
button 2 : hide 2 : ' Creation du bouton droite
top 2,h - 80:left 2,50+width(1) : caption 2,">"
on_click 2,clic
button 3 : hide 3 : ' Creation du bouton quitter
top 3,h - 80:left 3,l-width(3)-28 : caption 3,"Quitter"
on_click 3,clic
timer 4

' Initialisation
objet% = 5 : ' On prend 3 objets
hauteur_r = 10 : largeur_r=60
y_r = h-120-hauteur_r

data "0 - Noir", 0,  0,  0,  "1 - Blanc", 255,255,255
data "2 - couleur de fond - kaki foncé", 155,155, 55
data "3 - Kaki", 180,180,80, "4 - gris foncé",  80, 80, 80
data "5 - bleu" ,80, 80,215, "6 - rouge", 215, 80, 80
data "7 - vert", 80,215, 80, "8 - gris", 155,133,155
data "9 - vert clair", 100,215,100, "10 - violet", 215, 80,215
data "11 - kaki clair", 215,215, 80, "12 - bleu cyan", 80,215,215
data "13 - bleu moyen", 100,100,215, "14 - vert moyen",55,215,133
data "15 - violet",133, 55,215,      "16 - marron clair",215,133, 55
data "17 - bleu nuit",  55, 55,133

for i = 1 to Nb_couleur%
read nom_couleur$
  for j = 1 to 3
    read c : t_c(i,j)=c
  next j
next i

ecran% = objet% : picture ecran%
top ecran%,0: left ecran%,1
h = h -100
height ecran%, h: width ecran%,l-18
2D_target_is ecran%: objet% = objet% +1

' Trace le contour
2D_pen_color t_c(3,1), t_c(3,2), t_c(3,3)
2D_poly_from 0,h  : 2D_poly_to 8,h    : 2D_poly_to 8,20
2D_poly_to l-23,20 : 2D_poly_to l-23,h  : 2D_poly_to l-15,h

aff_vies% = objet% : alpha aff_vies%
' color aff_vies%, t_c(3,1), t_c(3,2), t_c(3,3)
top aff_vies%,2 : left aff_vies%, 30
width aff_vies%,140 : caption aff_vies%, "Vies = "+str$(vies)
objet% = objet% + 1

aff_score% = objet% : alpha aff_score%
' color aff_score%, t_c(3,1), t_c(3,2), t_c(3,3)
top aff_score%,2 : left aff_score%, 200
width aff_score%,140 : caption aff_score%, "Score = "+str$(score)
objet% = objet% + 1

gosub init_niveau

' timer pour deplacements
timer_interval 4,60 : on_timer 4,boucle_principale
show 1: show 2: show 3
end

Dessine_raquette:
  2D_pen_color t_c(5,1), t_c(5,2), t_c(5,3)
  2D_poly_from x_r,y_r : 2d_poly_to x_r+largeur_r,y_r
  2d_poly_to x_r+largeur_r,y_r + hauteur_r : 2d_poly_to x_r ,y_r + hauteur_r
  2d_poly_to x_r,y_r
return

Efface_raquette:
  2D_pen_color t_c(2,1), t_c(2,2), t_c(2,3)
  2D_poly_from x_r,y_r : 2d_poly_to x_r+largeur_r,y_r
  2d_poly_to x_r+largeur_r,y_r + hauteur_r : 2d_poly_to x_r ,y_r + hauteur_r
  2d_poly_to x_r,y_r
return

init_niveau:
  Nb_lignes = 6: gosub dessine_briques
  x_r = 0.5 * (l - largeur_r - 35)
  gosub Dessine_raquette
  gosub Lance_balle
return

dessine_briques:
if variable("t_br")=1 then free t_br
dim t_br(Nb_lignes*Nb_b_ligne,5)
dim k: k=0 : Nb_briques_restantes = 0
For i= 1 to Nb_lignes
  yb = 25 + (hauteur_b + 15) * i
  For j = 1 to Nb_b_ligne
    xb = 15 + (largeur_b + 5) * (j-1)
    k=k+1 : t_br(k,1) = 1 : t_br(k,5) = 100
    t_br(k,2) = t_c(5+i,1): t_br(k,3) = t_c(5+i,2): t_br(k,4) = t_c(5+i,3)
    Nb_briques_restantes = Nb_briques_restantes + 1
    2D_pen_color t_br(k,2), t_br(k,3), t_br(k,4) : gosub trace_brique
  Next j
Next i
free k
return

trace_brique:
  2d_poly_from xb,yb : 2d_poly_to xb+largeur_b, yb
  2d_poly_to xb+largeur_b, yb+hauteur_b-2 :  2d_poly_to xb, yb+hauteur_b-2
  2d_poly_to xb, yb
return

Lance_balle:
  y_ball = y_r - 25
  x_ball = int(rnd(l-60)) + 15
  r=1
return

efface_balle:
  2D_pen_color t_c(2,1), t_c(2,2), t_c(2,3)
  2D_circle x_ball+r_ball, y_ball+r_ball, r_ball
return

trace_balle:
  2D_pen_color t_c(6,1), t_c(6,2), t_c(6,3)
  2D_circle x_ball+r_ball, y_ball+r_ball, r_ball
return

recommence:
  vies = 3 : score = 0
  gosub efface_raquette
  gosub efface_balle
  gosub init_niveau
  timer_on 4
return

deplace_balle:
  IF x_ball> l-29 -2*r_ball
    x_ball = l-29 -2*r_ball : c = 2
  ELSE
    IF x_ball < 12 THEN x_ball = 12 : c = 1
  END_IF
'  IF y_ball > h-35-2*r_ball THEN r = 1 : ELSE : IF y_ball < 24 THEN r = 2
  IF y_ball < 26 THEN y_ball = r = 2
  IF c<2 THEN x_ball = x_ball + 5 : ELSE: x_ball = x_ball - 5
  IF r<2 THEN y_ball = y_ball - 5 : ELSE: y_ball = y_ball + 5
return

boucle_principale:
if variable("temp") = 0 then dim temp
  timer_off 4
  gosub efface_balle
  ' Teste si collision avec une brique
  if (r= 1 and y_ball < (25 + hauteur_b + (hauteur_b + 15) * Nb_lignes))
    i = int((x_ball - 15) / (largeur_b + 5))+1
    temp = int ((y_ball -25 -hauteur_b) / (hauteur_b +15))+1
    N = (temp-1)*Nb_b_ligne +i
    if N <= (Nb_lignes*Nb_b_ligne) and N>0
      if t_br(N,1) = 1
          r=2 : t_br(N,1) = 0
          ' Efface les briques
          2D_pen_color t_c(2,1), t_c(2,2), t_c(2,3)
          xb = 15 + (largeur_b + 5) * (i-1) : yb = 25 + (hauteur_b + 15) * (temp)
          gosub trace_brique
          Nb_briques_restantes = Nb_briques_restantes - 1 : score = score + t_br(N,5)
      end_if
    end_if
  else
    if (r= 2 and  (y_ball  > (40 + hauteur_b)) and (y_ball < (25 + hauteur_b + (hauteur_b + 15) * Nb_lignes) ))
      i = int((x_ball - 30) / (largeur_b + 10)) +1
      temp = int (((y_ball+2*r_ball) -25 -hauteur_b) / (hauteur_b +15))
      N = (temp-1)*Nb_b_ligne +i
      if N <= (Nb_lignes*Nb_b_ligne) and N>0
        if t_br(N,1) = 1
          r=1 : t_br(N,1) = 0
          ' Efface les briques
          2D_pen_color t_c(2,1), t_c(2,2), t_c(2,3)
          xb = 15 + (largeur_b + 5) * (i-1) : yb = 25 + (hauteur_b + 15) * (temp)
          gosub trace_brique
          Nb_briques_restantes = Nb_briques_restantes - 1 : score = score + t_br(N,5)
        end_if
      end_if
    end_if
  end_if

' Trace la balle
  gosub deplace_balle
  gosub trace_balle

' Verifie si la balle touche la raquette
  if r=2 and y_ball > y_r - 2 * r_ball - 4
      if ((x_ball > (x_r - r_ball)) and (x_ball < (x_r + largeur_r)))
        r = 1
            score=score+1
      else
        if r=2 and y_ball > y_r
            ' Balle perdue
            wait 30:  gosub efface_balle
            wait 100: gosub Lance_balle
            vies = vies-1
        end_if
      end_if
  end_if
  caption aff_vies%, "Vies = "+str$(vies)
  caption aff_score%, "Score = "+str$(score)
  if Nb_briques_restantes = 0
    Message "Bravo, niveau suivant ..."
    gosub efface_balle :  gosub init_niveau
  end_if
  if vies < 1 then goto fin
  free temp
  timer_on 4
return

clic:
if clicked(1) = 1
  gosub Efface_raquette        : ' Efface ancienne raquette
  x_r = x_r - (largeur_r / 2)  : ' Mise à jour de la position de la raquette suite à l'appuie sur la flèche
  if x_r < 10 then x_r=10      : ' Mais on ne doit pas dépasser les bords !!
  gosub dessine_raquette      : ' Actualise l'affichage de la raquette
else
  if clicked(3) = 1
    gosub fin
  else
    gosub Efface_raquette        : ' Efface ancienne raquette
    x_r = x_r + (largeur_r / 2)  : ' Mise à jour de la position de la raquette suite à l'appuie sur la flèche
    if x_r > l - largeur_r-26 then x_r = l - largeur_r-26  : ' Mais on ne doit pas dépasser les bords !!
    gosub dessine_raquette      : ' Actualise l'affichage de la raquette
  end_if
end_if
return

fin:
  timer_off 4
terminate

Revenir en haut Aller en bas
Klaus

Klaus


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

Panoramic pour Android : instantané du développement - Page 2 Empty
MessageSujet: Re: Panoramic pour Android : instantané du développement   Panoramic pour Android : instantané du développement - Page 2 EmptyVen 14 Nov 2014 - 15:30

Je veux bien que ça vienne de l'émulateur, Jicehel, mais j'aimerais comprendre. Est-ce qu'il y a une option ou un paramètre dans Androïd qu'il faut adapter pour que Panoramic marche ? Car d'autres programmes marchent très bien...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Panoramic pour Android : instantané du développement - Page 2 Empty
MessageSujet: Re: Panoramic pour Android : instantané du développement   Panoramic pour Android : instantané du développement - Page 2 EmptyVen 14 Nov 2014 - 17:24

Là, je laisse Jack répondre. J'ai voulu installer Andy sur mon poste au boulot mais notre politique de sécurité ne me laisse pas faire ...
Revenir en haut Aller en bas
Jack
Admin
Jack


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

Panoramic pour Android : instantané du développement - Page 2 Empty
MessageSujet: Re: Panoramic pour Android : instantané du développement   Panoramic pour Android : instantané du développement - Page 2 EmptyVen 14 Nov 2014 - 20:00

@Klaus: je ne pense pas qu'il y ait des options à positionner. Panoramic a fonctionné immédiatement sur plusieurs SmartPhones sans option particulière.
J'utilise quelquefois l'émulateur fourni avec Android SDK, et avec lequel Panoramic pour Android fonctionne : AVD Manager (Android Virtual Device).

@Jicehel: tu étais le premier utilisateur de Panoramic pour Android.
Maintenant tu es le premier à avoir programmé un jeu pour Android avec Panoramic.

Il y avait un bug sur 2D_CIRCLE, en fait cette commande créait un cercle plein et non pas la circonférence.
Cependant, l'exemple 3 qui est fourni ne fonctionne plus !

Voici la version de Panoramic qui fait tourner ton jeu:

http://www.datafilehost.com/d/1aed7de2

Elle possède en outre un début de documentation intégrée.

_________________
Panoramic pour Android : instantané du développement - Page 2 Webdav username : panoramic@jack-panoramic password : panoramic123


Dernière édition par Jack le Sam 15 Nov 2014 - 6:15, édité 2 fois
Revenir en haut Aller en bas
https://panoramic.1fr1.net
papydall

papydall


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

Panoramic pour Android : instantané du développement - Page 2 Empty
MessageSujet: Re: Panoramic pour Android : instantané du développement   Panoramic pour Android : instantané du développement - Page 2 EmptySam 15 Nov 2014 - 0:07

@Jack
Voulant télécharger à partir du site mentionné dans ton poste ci-haut, mon anti-virus Avira me signale

Citation :

Remarque relative à la sécurité
L’accès au fichier
‘C:\Users\acer\Desktop\Download.exe’
Contenant le virus ou programme indésirable ‘TR/Cript.XPACK.Gen8’ a été bloqué.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jack
Admin
Jack


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

Panoramic pour Android : instantané du développement - Page 2 Empty
MessageSujet: Re: Panoramic pour Android : instantané du développement   Panoramic pour Android : instantané du développement - Page 2 EmptySam 15 Nov 2014 - 5:56

Je n'avais pas essayé le téléchargement ...
J'ai désactivé tous les liens.

_________________
Panoramic pour Android : instantané du développement - Page 2 Webdav username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Panoramic pour Android : instantané du développement - Page 2 Empty
MessageSujet: Re: Panoramic pour Android : instantané du développement   Panoramic pour Android : instantané du développement - Page 2 EmptySam 15 Nov 2014 - 9:06

Jack, ça doit marcher, je pense si tu mets les versions sur le webdav et qu'on le copie sur le pc puis qu'on le transfert en usb dans download ? Je n'ai pas essayé mais si on créé un repertoire Panoramic sur notre téléphone, ça devrait marcher aussi, non ?
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Panoramic pour Android : instantané du développement - Page 2 Empty
MessageSujet: Re: Panoramic pour Android : instantané du développement   Panoramic pour Android : instantané du développement - Page 2 EmptySam 15 Nov 2014 - 9:08

Il ne faut pas paniquer, il fallait juste décocher la case pour télécharger en utilisant le "downloader" pour que ça marche bien.
C'est le programme downloader.exe qui est douteux. Si on télécharge directement, il n'y a pas de problème.
Revenir en haut Aller en bas
Jack
Admin
Jack


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

Panoramic pour Android : instantané du développement - Page 2 Empty
MessageSujet: Re: Panoramic pour Android : instantané du développement   Panoramic pour Android : instantané du développement - Page 2 EmptySam 15 Nov 2014 - 19:01

Voici la dernière version de Panoramic pour Android :

http://www.filedropper.com/panoramic

Elle est aussi sur mon Webdav.

Elle possède un début de documentation (touche DOC)
Les commandes de dessin suivantes sont terminées et testées :
2D_LINE
2D_POLY_FROM
2D_POLY_TO
2D_CIRCLE
2D_RECTANGLE
2D_CLEAR
2D_PEN_WIDTH
2D_PEN_COLOR

_________________
Panoramic pour Android : instantané du développement - Page 2 Webdav username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
https://panoramic.1fr1.net
papydall

papydall


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

Panoramic pour Android : instantané du développement - Page 2 Empty
MessageSujet: Re: Panoramic pour Android : instantané du développement   Panoramic pour Android : instantané du développement - Page 2 EmptyDim 16 Nov 2014 - 2:15

@Jack
J’ai téléchargé sur ton Webdav ESSAIS_ANDROID juste pour voir.
Comme je ne dispose ni de Smartphone ni de tablette sous Androïd, j’ai étudié   le fichier
ESSAIS_ANDROID\assets\internal/03_checkerboard.txt qui représente un code Panoramic de tracé d’un damier.

Je me suis donné la liberté (ai-je le droit !?) de recoder le programme à ma manière : Pas de LABEL ni de GOSUB ; uniquement des SUB.
J’ai également optimisé les sous programmes :
draw the frame of board
draw the black squares
draw white pawns
draw red pawn

Et ça donne ceci :

Code:

rem ============================================================================
rem   03_checkerboard.txt
rem   Auteur Jack
rem   Recodé par Papydall
rem ============================================================================

Init()
Draw_Black_Squares()
Draw_White_Pawns()
Draw_Red_Pawn()
end

rem ============================================================================
SUB Init()

    dim x,y,case1,case2,bord,rayon
    color 0,255,255,255
    case1 = 50 : bord = 5
    picture 1 : width 1,420:height 1,440 : 2D_target_is 1
    2d_rectangle bord,bord,8*case1+bord,8*case1+bord : ' draw the frame of board
    
END_SUB
rem ============================================================================
' draw the black squares
SUB Draw_Black_Squares()
    2d_fill_color 0,0,0
    for x = 1 to 7 step 2 : Case(x,0) : Case(x,2) : Case(x,4) : Case(x,6) : next x
    for x = 0 to 6 step 2 : Case(x,1) : Case(x,3) : Case(x,5) : Case(x,7) : next x
END_SUB
rem ============================================================================
SUB Case(x,y)
    dim_local i
    for i=0 to case1
        2D_poly_from i+bord+x*case1,bord+y*case1
        2D_poly_to i+bord+x*case1,bord+(y+1)*case1
    next i
END_SUB
rem ============================================================================
' draw white pawns
SUB Draw_White_Pawns()
    rayon = case1 / 2.7 : case2 = case1 / 2
    2d_fill_color 255,255,255
    for x = 1 to 7 step 2 : Pawn(x,0) : Pawn(x,2)  : next x
    for x = 0 to 6 step 2 : Pawn(x,1)  : next x
END_SUB
rem ============================================================================
' Draw red pawn
SUB Draw_Red_Pawn()
    2d_fill_color 255,20,20
    for x = 1 to 7 step 2 : Pawn(x,6) : next x
    for x = 0 to 6 step 2 : Pawn(x,5) : Pawn(x,7) : next x
END_SUB
rem ============================================================================
' draw pawn in case (x,y)
SUB Pawn(x,y)
    2d_circle bord +(2*x+1)*case2, bord +(2*y+1)*case2, rayon
END_SUB
rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jack
Admin
Jack


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

Panoramic pour Android : instantané du développement - Page 2 Empty
MessageSujet: Re: Panoramic pour Android : instantané du développement   Panoramic pour Android : instantané du développement - Page 2 EmptyDim 16 Nov 2014 - 4:01

Merci d'avoir remis ce code au gout du jour avec des subs.
Le dessin du damier venait d'un jeu complet de dames contre l'ordinateur, que j'avais codé début 2007 en adaptant un code pour TRS80 de 1978 !

Le voici :
Code:
rem 2007/02/21
rem CHECKERS

dim xm,ym,x,y
dim case,case2,bord,rayon
dim A(64)
dim AA,B,C,F,G,H,I,J,K,L,N,Q,R,S,T

label player,player_from,player_to,cont1,cont2
label man,square,move
label AB1,AB2,AB3,CD,CAS
label draw,IA,IA2,IA3,IA4,IA5,IA6
label SP1,SP2,SP3,SP4,TP1,TP2,TP3,TP4,TP5,TP6

left 0,100:top 0,0:width 0,510:height 0,550
caption 0,"C H E C K E R S"
rem white background
color 0,255,255,255:display

picture 1:left 1,35:top 1,33:width 1,410:height 1,410

rem picture 1:width 1,410:height 1,410

color 1,230,230,230:display

rem memory of play
list 2:top 2,35:left 2,455:height 2,410:width 0,610

rem draw checkboard 8x8
case=50:rem size of a square
bord=5: rem shift
rayon=case/2.7
case2=case/2

rem read internal code
for N=1 to 64
  read A(N)
next N
data 99,1,99,1,99,1,99,1,1,99,1,99,1,99,1,99,99,1,99,1,99,1
data 99,1,0,99,0,99,0,99,0,99,99,0,99,0,99,0,99,0,-1,99,-1,99
data -1,99,-1,99,99,-1,99,-1,99,-1,99,-1,-1,99,-1,99,-1,99,-1,99
rem 99 = white square
rem 2  = square with computer's king
rem 1  = square with computer's man
rem 0  = empty square
rem -1 = square with player's man
rem -2 = square with player's king

rem draw frame of board
2d_target_is 1
2d_poly_from bord,bord
2d_poly_to 8*case+bord,bord
2d_poly_to 8*case+bord,8*case+bord
2d_poly_to bord,8*case+bord
2d_poly_to bord,bord

rem draw the board
for n=1 to 64
gosub draw
next n

rem move explanation
alpha 3:left 3,150:top 3,450:width 3,48:height 3,13
caption 3,"FROM : click on man, then TO : click on empty square"

rem to terminate
check 4:left 4,400:top 4,480:caption 4,"Terminate"

rem column names
alpha 5:left 5,60:top 5,15:width 5,25:height 5,13:caption 5,"A"
alpha 6:left 6,60+50:top 6,15:width 6,25:height 6,13:caption 6,"B"
alpha 7:left 7,60+2*50:top 7,15:width 7,25:height 7,13:caption 7,"C"
alpha 8:left 8,60+3*50:top 8,15:width 8,25:height 8,13:caption 8,"D"
alpha 9:left 9,60+4*50:top 9,15:width 9,25:height 9,13:caption 9,"E"
alpha 10:left 10,60+5*50:top 10,15:width 10,25:height 10,13:caption 10,"F"
alpha 11:left 11,60+6*50:top 11,15:width 11,25:height 11,13:caption 11,"G"
alpha 12:left 12,60+7*50:top 12,15:width 12,25:height 12,13:caption 12,"H"

rem lines names
alpha 13:left 13,20:top 13,57+7*50:caption 13,"8"
alpha 14:left 14,20:top 14,57+6*50:caption 14,"7"
alpha 15:left 15,20:top 15,57+5*50:caption 15,"6"
alpha 16:left 16,20:top 16,57+4*50:caption 16,"5"
alpha 17:left 17,20:top 17,57+3*50:caption 17,"4"
alpha 18:left 18,20:top 18,57+2*50:caption 18,"3"
alpha 19:left 19,20:top 19,57+50:caption 19,"2"
alpha 20:left 20,20:top 20,57:caption 20,"1"

rem display move to play
alpha 21:left 21,150:top 21,480:width 21,48:height 21,13

player:
caption 21,"FROM ?"
gosub player_from
gosub IA
goto player

end

player_from:
if mouse_left_up(1)=1
 xm=mouse_x_left_up(1)
 xm=xm-bord
 if xm<0 then xm=0
 xm=int(xm/case)+1
 if xm>8 then xm=8
 rem xm=column number

 ym=mouse_y_left_up(1)
 ym=ym-bord
 if ym<0 then ym=0
 ym=int(ym/case)+1
 if ym>8 then ym=8
 rem ym=line number

 f=xm+8*(ym-1)
 n=f
 gosub move
 item_add 2,"PLAYER :"
 item_add 2,"FROM "+chr$(65+x)+str$(y+1)
 wait 100
 caption 21,"TO ?"
 goto cont1
end_if
wait 100
if checked(4)=1 then terminate
goto player_from

cont1:
Q=1: rem illegal move?

rem F=0 means end by operator
if (F=0) then end

rem F must be inside the checkboard
if (F<1) or (F>64) then goto player_from

player_to:
if mouse_left_up(1)=1
 xm=mouse_x_left_up(1)
 xm=xm-bord
 if xm<0 then xm=0
 xm=int(xm/case)+1
 if xm>8 then xm=8
 rem xm=column number

 ym=mouse_y_left_up(1)
 ym=ym-bord
 if ym<0 then ym=0
 ym=int(ym/case)+1
 if ym>8 then ym=8
 rem ym=line number

 t=xm+8*(ym-1)
 n=t
 gosub move
 item_add 2,"TO   "+chr$(65+x)+str$(y+1)
 goto cont2
end_if

wait 200
if checked(4)=1 then terminate
goto player_to

cont2:
if (T=0) and (Q=0) then return: rem answer 0 then 0 to terminate

rem T must be inside the checkboard
if (T<1) or (T>64) then goto player_to

gosub CD:rem check if move is legal, result in Q

if Q=0 then item_add 2,"ILLEGAL MOVE ": goto player_from

rem here move is legal

rem update internal board
A(T)=A(F)
A(F)=0

rem update squares
N=F
gosub draw
N=T
gosub draw

rem draw if king
if T<9
 A(T)=-2
 N=T
 gosub draw
end_if

if (ABS(T-F)=7) or (ABS(T-F)=9) then return

N=(T+F)/2
A(N)=0
gosub draw
if A(T)=-1 then goto AB2
for B=7 to 9 step 2
 G=T+B
 if (G>64) or ((G+B)>64) then goto AB1
 if ((A(G)=1) or (A(G)=2)) and (A(G+B)=0)
  F=T
  Q=0
  caption 21,"TO ?"
  goto player_to
 end_if

AB1:
next B

AB2:
for B=-9 to -7 step 2
 G=T+B
 if (G<0) or ((G+B)<0) then goto AB3
 if ((A(G)=1) or (A(G)=2)) and (A(G+B)=0)
  F=T
  Q=0
  caption 21,"TO ?"
  goto player_to
 end_if

AB3:
next B
return

CD:
rem analyse if move is legal (result in Q)
Q=0
if (A(F)>-1) or (A(T)<>0) then return: rem illegal
if A(F)=-2
 for B=-9 to -7 step 2
  gosub CAS
 next B
end_if
for B=7 to 9 step 2
 gosub CAS
next B
return

CAS:
if ((F-T)=B) or (((F-T)=(2*B)) and ((A(INT((F+T)/2))=1) or (A(INT((F+T)/2))=2))) then Q=1
return

draw:
rem draw A(N)
gosub move

if a(n)=0
 2d_fill_color 0,0,0
 gosub square
end_if

if a(n)=2
 2d_fill_color 0,0,0
 gosub square
 2d_fill_color 255,255,255
 gosub man
 2d_fill_color 255,20,20
 2d_circle bord+(2*x+1)*case2,bord+(2*y+1)*case2,rayon/2
end_if

if a(n)=1
 2d_fill_color 0,0,0
 gosub square
 2d_fill_color 255,255,255
 gosub man
end_if

if a(n)=-1
 2d_fill_color 0,0,0
 gosub square
 2d_fill_color 255,20,20
 gosub man
end_if

if a(n)=-2
 2d_fill_color 0,0,0
 gosub square
 2d_fill_color 255,20,20
 gosub man
 2d_fill_color 255,255,255
 2d_circle bord+(2*x+1)*case2,bord+(2*y+1)*case2,rayon/2
end_if

return

IA:
rem artificial intelligence
Q=-99
for I=1 to 64
if (A(I)<1) or (A(I)>2) then goto IA2
if A(I)=2
 for B=-9 to -7 step 2
  gosub SP1
 next B
end_if

for B=7 to 9 step 2
   gosub SP1
next B

IA2:
next I
if Q=-99 then end:rem finished

IA3:
A(T)=A(F)
A(F)=0
N=F
gosub move
item_add 2,"COMPUTER:"
item_add 2,"FROM "+chr$(65+x)+str$(y+1)

gosub draw
N=T
gosub move
item_add 2,"TO "+chr$(65+x)+str$(y+1)

gosub draw
if T>56
 A(T)=2
 N=T
 gosub draw
end_if
if (ABS(F-T)<>14) and (ABS(F-T)<>18) then return
N=(T+F)/2
A(N)=0
gosub draw
if A(T)=1 then goto IA5
for B=-9 to -7 step 2
 C=T+B
 if (C<0) or ((C+B)<0) then goto IA4
 if (A(C)<0) and (A(C+B)=0) then F=T : T=C+B : goto IA3

IA4:
next B

IA5:
for B=7 to 9 step 2
   C=T+B
   if (C>64) or ((C+B)>64) then goto IA6
   if (A(C)<0) and (A(C+B)=0) then F=T : T=C+B : goto IA3

IA6:
next B
return

SP1:
R=-99
J=I+B
K=0
if (J<0) or (J>64) then goto SP4
if A(J)=0 then R=0 : L=J
if ((J+B)<0) or ((J+B)>64) then goto SP2
if (A(J+B)=0) and (A(J)<0) then R=5 : K=1 : L=J+B

SP2:
if R=-99 then goto SP4
if A(I)=2 then R=R-1 : goto SP3
if I<9 then R=R-2
if L>47 then R=R+3
if L>56 then R=R+3

SP3:
for AA=7 to 9 step 2
 gosub TP1
next AA
C=RND(10)/10
if (R>Q) or ((R=Q) and (C>0.4)) then Q=R : F=I : T=L

SP4:
return

TP1:
G=I+AA : H=I-AA : if (G>64) or ((G+AA)>64) then goto TP2
if ((A(G)=1) or (A(G)=2)) and (A(G+AA)<0) then R=R-8
if H<0 then goto TP3
if (A(G)<0) and (A(H)=0) then R=R+4
if (A(H)=-2) and (A(G)=0) then R=R+4

TP2:
if (H<0) or ((H-AA)<0) then goto TP3
if ((A(H)=1) or (A(H)=2)) and (A(H-AA)=-2) then R=R-8

TP3:
S=R:G=L+AA:H=L-AA:if G>64 then goto TP5
if H<0 then goto TP4
if (A(G)<0) and ((A(H)=0) or (I=H)) then R=R-10:goto TP4
if (A(H)=-2) and ((A(G)=0) or (I=G)) then R=R-10

TP4:
if (G+AA)>64 then goto TP5
if (A(G)<0) and (A(G+AA)=0) then R=R+5+K*10

if ((A(G)=1) or (A(G)=2)) and (A(G+AA)<0) then R=R+4:S=S+4

TP5:
if (H<0) or ((H-AA)<0) then goto TP6
if ((A(H)=1) or (A(H)=2)) and (A(H-AA)=-2) then R=R+4:S=S+4

TP6:
if R>S then R=S
return

end

man:
rem draw man in (x,y)
2d_circle bord+(2*x+1)*case2,bord+(2*y+1)*case2,rayon
return

square:
2d_rectangle bord+x*case,bord+y*case,bord+(x+1)*case,bord+(y+1)*case
return

move:
rem display the player's move
rem x and y from n
if n=2 then x=1:y=0
if n=4 then x=3:y=0
if n=6 then x=5:y=0
if n=8 then x=7:y=0
if n=9 then x=0:y=1
if n=11 then x=2:y=1
if n=13 then x=4:y=1
if n=15 then x=6:y=1
if n=18 then x=1:y=2
if n=20 then x=3:y=2
if n=22 then x=5:y=2
if n=24 then x=7:y=2
if n=25 then x=0:y=3
if n=27 then x=2:y=3
if n=29 then x=4:y=3
if n=31 then x=6:y=3
if n=34 then x=1:y=4
if n=36 then x=3:y=4
if n=38 then x=5:y=4
if n=40 then x=7:y=4
if n=41 then x=0:y=5
if n=43 then x=2:y=5
if n=45 then x=4:y=5
if n=47 then x=6:y=5
if n=50 then x=1:y=6
if n=52 then x=3:y=6
if n=54 then x=5:y=6
if n=56 then x=7:y=6
if n=57 then x=0:y=7
if n=59 then x=2:y=7
if n=61 then x=4:y=7
if n=63 then x=6:y=7
return

Pour jouer, tu as les pions rouges.
Tu cliques sur le pion rouge à déplacer, puis tu cliques sur la case vide où le pion doit aller.
L'ordinateur joue et ça recommence.

_________________
Panoramic pour Android : instantané du développement - Page 2 Webdav username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Pedro

Pedro


Nombre de messages : 1596
Date d'inscription : 19/01/2014

Panoramic pour Android : instantané du développement - Page 2 Empty
MessageSujet: Panoramic pour Android.   Panoramic pour Android : instantané du développement - Page 2 EmptyDim 16 Nov 2014 - 12:33

Bonjour.

Pour ma part, j'ai téléchargé le fichier apk sur mon PC.
Ensuite, je l'ai envoyé par mail à mon smartphone, puis téléchargé la pièce jointe du mail.

Eh bien, tout fonctionne parfaitement.

J'ai donc pû tester les débuts de Panoramic sous Android.
Revenir en haut Aller en bas
Contenu sponsorisé





Panoramic pour Android : instantané du développement - Page 2 Empty
MessageSujet: Re: Panoramic pour Android : instantané du développement   Panoramic pour Android : instantané du développement - Page 2 Empty

Revenir en haut Aller en bas
 
Panoramic pour Android : instantané du développement
Revenir en haut 
Page 2 sur 2Aller à la page : Précédent  1, 2
 Sujets similaires
-
» Aide en français / anglais Panoramic pour Android
» PANORAMIC SOUS ANDROID
» Gestionnaire de Projets Panoramic 2 - Développement en cours
» Panoramic et Android
» PANORAMIC_ANDROID est né

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Expériences autour de PANORAMIC :: PANORAMIC sous Android-
Sauter vers: