Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Taquin sur Casio Graph 35+E II ou 90E en PythonExtra
Ptitjoz Hors ligne Membre Points: 261 Défis: 10 Message

Taquin sur Casio Graph 35+E II ou 90E en PythonExtra

Posté le 12/12/2023 16:55

Avec PythonExtra, vous pouvez créer des jeux sympathiques sur votre calculatrice !

Voici mon premier jeu qui utilise les touches de direction de votre calculatrice !
il n’est pas parfait et sans doute des points à réécrire, mais il faut bien un début à tout.

j’apporterai des améliorations plus tard

voici le source de cette version 0.52


from gint import *
from urandom import randint,seed
from usys import exit

v="v 0.5.2"
nbc=0
seed(456) # graine pour rejouer parties identiques
def permute(o,p):
  global nbc
  o=o*(-1)
  c[p]=c[p+o]
  c[p+o]=""
  nbc+=1
  affjeu()
  
def initlist():
  global c
  a=[""," 1"," 2"," 3"," 4"," 5"," 6"," 7"," 8"," 9","10","11","12","13","14","15"]
  b,c=[],[]

  for i in range(16):
    b.append(randint(1,50000))

  for i in range(16):
    x=b.index(max(b))
    b[x]=0
    c.append(a[x])

def affjeu():
  dclear(C_WHITE)
  dtext(84,4,C_BLACK,"Taquin")
  dtext(87,12,C_BLACK,v)
  dtext(84,20,C_BLACK,"coups :")
  dtext(90,28,C_BLACK,str(nbc))
  x1,n=0,0
  for x in range(4):
    y1=0
    x1=x1+16
    for y in range(4):
      drect_border(x1,y1,x1+14,y1+14,C_WHITE,1,C_BLACK)
      if c[n]=="":
        drect(x1,y1,x1+14,y1+14,C_BLACK)
      dtext(x1+2,y1+3,C_BLACK,c[n])
      n+=1
      y1=y1+16
      dupdate()

def cherche():
  return c.index("")
  
initlist()
affjeu()

while True:
  p=cherche()
  k=getkey().key
  
  if k==KEY_UP:
     if  p!=3 and p!=7 and p!=11 and p!=15:
       permute(-1,p)
  
  if k==KEY_DOWN:
    if p!=4 and p!=8 and p!=12:
      permute(1,p)
  
  if k==KEY_LEFT:
    if p!=12 and p!=13 and p!=14 and p!=15:
      permute(-4,p)
  
  if k==KEY_RIGHT:
    if p!=0 and p!=1 and p!=2 and p!=3:
      permute(4,p)  
  
  if k==KEY_EXIT:
    exit()
  



Fichier joint


Ptitjoz Hors ligne Membre Points: 261 Défis: 10 Message

Citer : Posté le 14/12/2023 16:57 | #


Etat d'avancement : 2eme étape, mettre ce jeu sur Casio 90E
la question est donc de savoir comment faire un code cross compatible ?



bon les couleurs et les graphismes sont aussi à revoir
Un peu poète, un peu geek, un peu rêveur, un peu écolo.
https://joz.alwaysdata.net/info/

Lephenixnoir En ligne Administrateur Points: 24563 Défis: 170 Message

Citer : Posté le 14/12/2023 17:06 | #


Alors avec le module actuel c'est un peu "difficile" dans le sens où y'a pas grand-chose qui est exposé... mais tu peux déjà tricher un peu et détecter la Graph 90+E avec la taille de l'écran :

isg90 = (gint.DWIDTH == 396)

Les fonctions clavier sont identiques, c'est surtout l'affichage qu'il faut ajuster.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Ptitjoz Hors ligne Membre Points: 261 Défis: 10 Message

Citer : Posté le 15/12/2023 14:23 | #


Merci, oui ta proposition me convient
par exemple :
try:
  from gint import *
  isg90=(DWIDTH==396)
  print("Tu as une Casio",end=" ")
  if isg90:
    print("90 E")
  else:  
    print("35+ EII")
except:
  print("Choisir PythonExtra!")  


NB, il y a peut-être d'autres machines qui supportent python extra ? j'adapterai le code en connaissance à la fin pour finaliser ; mais pour l'instant, je m'en tiens à ces 2 machines
Un peu poète, un peu geek, un peu rêveur, un peu écolo.
https://joz.alwaysdata.net/info/

Ptitjoz Hors ligne Membre Points: 261 Défis: 10 Message

Citer : Posté le 18/12/2023 08:43 | # | Fichier joint


Voilà le code (en p.j) fonctionne sur les 2 machines sans modifications manuelles. Merci Lephe



Prochaines étapes :
* Ne mettre que des parties jouables.
* Vérification quand la partie sera gagnée
* Mettre un chronometre
* Page d'accueil et de sortie
* Revoir les graphismes avec des images
* Enregistrer le numéro de partie, le recors de score et de temps. (mais es-ce faisable ?
Un peu poète, un peu geek, un peu rêveur, un peu écolo.
https://joz.alwaysdata.net/info/

Fcalva Hors ligne Membre Points: 600 Défis: 10 Message

Citer : Posté le 18/12/2023 10:03 | #


Ptitjoz a écrit :

* Mettre un chronometre
* Enregistrer le numéro de partie, le recors de score et de temps. (mais es-ce faisable ?
Pour le moment je n'ai pas vu de fonctions relatives au système de fichiers, ni ne tapant dans les variables/matrices, et pas de timers non plus en parcourant le source
Pc master race - Apréciateur de Noctua moyen
Caltos : G35+EII, G90+E (briquée )
Ptitjoz Hors ligne Membre Points: 261 Défis: 10 Message

Citer : Posté le 18/12/2023 19:38 | #


Pour le chrono avec pythonextra il y a le module utime que je n'ai pas entièrement exploré, mais on peut avoir l'heure sur la machine et aussi gérer les délais avec sleep() sleep_ms() sleep_us() etc.

Pour le reste si on ne peut pas enregistrer quoique ce soit je m'en tiendrai là.
avancement du jeu
   80%

Un peu poète, un peu geek, un peu rêveur, un peu écolo.
https://joz.alwaysdata.net/info/

Tuper4 Hors ligne Membre Points: 889 Défis: 19 Message

Citer : Posté le 11/01/2024 19:27 | #


J'ai posé la meme question avec la gestion de fichier et Lephe' m'a répondu qu'il y en a pas, ni dans le python officiel (celui de casio sinon tu peux faire import os) ni sur pythonextra mais qu'elle est sur la TODO list (d'après Slyvtt) donc, il faudra juste attendre
When the doorbell rings at three in the morning, it’s never good news. -Anthony Horowitz

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 83 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd