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
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
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 :
Les fonctions clavier sont identiques, c'est surtout l'affichage qu'il faut ajuster.
Citer : Posté le 15/12/2023 14:23 | #
Merci, oui ta proposition me convient
par exemple :
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
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 ?
Citer : Posté le 18/12/2023 10:03 | #
* Mettre un chronometre
* Enregistrer le numéro de partie, le recors de score et de temps. (mais es-ce faisable ?
Caltos : G35+EII, G90+E (briquée )
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à.
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