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 - Actualités


Index du Forum » Actualités » Concours de rentrée 2020 - Défi Python de Xuanwu !
Lephenixnoir En ligne Administrateur Points: 24122 Défis: 170 Message

Concours de rentrée 2020 - Défi Python de Xuanwu !

Posté le 23/09/2020 19:42

Salut à tous ! Comment les années précédentes, TI-Planet et Planète Casio organisent un concours de rentrée, une série de défis ouverts à tous pour profiter de logique, de programmation, et de calculatrices graphiques !


Après le concours Galactik, le triconcours et le concours de rentrée 2019, nous sommes de retour avec de nouveaux défis ! Grâce à l'adoption des fonctions de tracés en Python sur la majorité des modèles de calculatrices lycée, cette quatrième édition du concours te propose trois défis tous en Python qui seront lancés chacun à leur tour.

• Le défi de Xuanwu est un exercice de tracé à la tortue, qui commence dès maintenant et est ouvert jusqu'à 18 Octobre 2020 à minuit.
• Le défi de Quetzalcoatl est un exercice de tracé par coordonnées.
• Le défi du Léviathan est un problème d'intelligence artificielle.

Ces défis sont ouvert à tous et conçus pour être abordables dès le collège. Ce sont des jeux dans lequel tu dois utiliser un programme pour accomplir une tâche tout en maximisant un score ou en minimisant un coût. Dans le jargon on appelle ça un « problème d'optimisation », et si ça peut sembler compliqué tu verras que c'est en fait très simple.

Pour chaque défi, nous te fournissons un programme Python dans lequel tu peux programmer ta solution avant de l'envoyer. Grâce au travail de Critor, tu peux concevoir ta solution sur pas moins de 13 modèles de calculatrices Python !

Tu peux participer à toutes les épreuves que tu veux et même envoyer plusieurs solutions pour la même épreuve si tu arrives à améliorer ton score. N'hésite pas à faire beaucoup de tests !

Les lots de cette année comprennent nombre calculatrices Python moyen et haut-de-gamme, ainsi que des raretés de goodies quasiment exclusifs à cette date, parfaits pour les fervents fans ! Le concours de rentrée est l'événement à ne pas rater !


Le défi Python de Xuanwu, le serpent-tortue

Alors que tu randonnais sur les causses du Larzac accompagné·e de ta calculatrice favorite, voici que tu découvres une profonde cavité cachée derrière un imposant rocher. Maladroit, tu glisses sur l'herbe mouillée et chutes d'une façon ironiquement prévisible dans la caverne.

Une fois tes esprits repris, à la lumière de ta calculatrice tu notes s'étendant devant toi un dédale de couloirs, en grande partie obstrué de terre et pierres. Un trésor géologique dont l'admiration n'est surpassée que par le mystère d'un véhicule d'excavation entreposé sous la terre et la poussière.

D'une technologie semble-t-il encore jamais vue, l'excavatrice est un assemblage de pièces de pierre couplées à un métal qui t'es inconnu. À peine t'en approches-tu que la machine se met à vrombir, et un mystérieux script de contrôle Python se télécharge comme par magie dans ta calculatrice...



Des malins auront remarqué une subtile indication de direction dans un coin de l'image.
Cependant, à la surprise de tous, la machine peut bel et bien tourner à gauche !

Ta chute a affaissé le rocher qui cachait l'entrée, aucune remontée n'est possible. Afin de retrouver la lumière du jour, te voilà forcé de piloter l'excavatrice jusqu'à la sortie du labyrinthe géologique qui s'étend devant toi. Mais si la machine semble bien démarrer, difficile de savoir pour combien de temps. Elle arrive à peine à avancer et les foreuses sont hors d'état de marche. Il va donc falloir contourner les roches et économiser ta consommation d'énergie durant le trajet...

Le défi se compose des 3 scripts Python que tu peux télécharger en bas de cet article.

polycalc.py est la bibliothèque de compatibilité graphique permettant au défi de se lancer sur les 13 environnements Python supportés par ce concours.
laby.py contient la description du labyrinthe et les règles du jeu. À toi de voir ce que tu peux en tirer !
labytest.py est un exemple de soumission au concours.

L'excavatrice dispose de 3 contrôles pour tourner et avancer, représentés par 3 fonctions avancer(), a_gauche() et a_droite() que tu dois utiliser pour atteindre la sortie. Voici un exemple de contrôle qui déplace la machine entre les premiers murs du labyrinthe :

#cas
from laby import *

def chemin():
  avancer(1.5)
  a_droite(1.5707963267948966)
  avancer(1)

Tu peux l'évaluer pour obtenir ton score avec la fonction aller_selon de labytest.py.

from labytest import *
aller_selon(chemin)


Ton programme peut utiliser tous les outils Python de ton choix pour calculer son chemin() et prendre des décisions. Tu peux notamment créer des variables, des boucles, ou des fonctions. Tu peux aussi démonter l'excavatrice et étudier le code que nous avons concocté dans laby.py si tu veux comprendre le fonctionnement de cette machine antique.

Attention cependant, tu n'as pas le droit de lire ou modifier des éléments de laby.py autrement qu'en utilisant les trois fonctions avancer(), a_gauche() et a_droite(), sous peine de casser la machine et rester enfermé à jamais.


Comment participer

Pour participer, envoie ta participation par mail à l'addresse info@tiplanet.org avec :

• En objet, « Défi de Xuanwu »
• Ton adresse postale complète avec ton nom et prénom
• Ton adresse mail (si différente de celle utilisée pour l'envoi)
• En option, ton pseudonyme sur TI-Planet ou Planète Casio (utilisé pour la liste des participants à la fin du concours)
• Un numéro de téléphone personnel valide (utilisé uniquement en cas d'urgence, notamment en cas de problème avec une participation ou lors d'un choix de lot contraint par le temps)

Les communautés de TI-Planet et Planète Casio sont sensibles aux problématiques d'informations personnelles. Les informations que tu soumets seront utilisées uniquement pour le concours, puis supprimées lorsque l'événement sera terminé et les lots envoyés.


Lots de cette épreuve

Il y a 12 lots à remporter dans cette épreuve, fournis généreusement par les constructeurs Casio, Numworks, Texas Instruments, le revendeur Calcuso, Bernard Parisse de l'Institut Fourier (auteur de Xcas/KhiCAS), les associations CreativeCalc et UPECS gérant Planète Casio et TI-Planet, ainsi que Hewlett-Packard avec des goodies de 2019 !

À cause de réorganisations importantes chez HP, le service marketing français a été délégué à une entreprise en République Tchèque, ce qui ne nous a pas permis d'obtenir de lots pour l'événement de cette année. Cependant, nous continous de supporter la HP Prime comme plateforme pour les soumissions.

Les participants ayant obtenus les 12 meilleurs coûts au défi pourront choisir chacun à leur tour un lot de leur choix.

2 lots Capricorne ♑ comprenant 1 calculatrice Casio Graph 90+E, 1 pack de goodies Casio, 1 goodie Xcas, et 1 pack de goodies TI-Planet & Planète Casio

2 lots Bélier ♈ comprenant 1 solution d'émulation Casio, 1 CD de vidéos Casio fx-CG20 ou catalogue de produits Casio, 1 pack de goodies Casio, 1 goodie Xcas, et 1 pack de goodies TI-Planet & Planète Casio

Le CD contient 42 vidéos d'environ 8 heures par Jean-Michel Ferrard, originellement conçu pour la fx-CG 20 mais toujours applicable à la Graph 90+E, pour Windows et Mac.

La solution d'émulation Casio est au choix parmi :
• Une clé USB 8 Go d'émulation permanente, avec les émulateurs fx-92 Scientifique Collège+, Graph 35+E II 3.30, et Graph 90+E 3.40 à jour, pour Windows. Casio a annoncé que les mises à jour seront disponibles pour ces clefs dans le futur. Le modèle blanc est la clé Transcend 2019, le bleu est la clef EMTEC 2020.
• Une license de 3 ans permettant d'installer le fx-CP400 Manager (Windows/Mac) et le fx-CG 500 Manager (Windows/Mac). Les deux sont similaires à la ClassPad 400+E.





1 lot Serpentaire ⛎ comprenant 1 goodie HP, 1 goodie Xcas et 1 pack de goodies TI-Planète-Casio

La clé USB HP a une capacité de 16 Go, le poster mesure 59.2x40 cm.



2 lots Sagittaire ♐ comprenant 1 calculatrice NumWorks N0110, 1 pack de goodies NumWorks, 1 goodie Xcas, et 1 pack de goodies TI-Planet & Planète Casio

2 lots Balance ♎ comprenant 1 couvercle NumWorks, 1 autocollant NumWorks, 1 enveloppe ou carte postale ou carte de visite-énigme NumWorks, 1 pack de goodies NumWorks, 1 goodie Xcas et 1 pack de goodies TI-Planet & Planète Casio





1 lot Taureau ♉ comprenant 1 calculatrice TI-Nspire CX II-T CAS, 1 licence logiciel TI-Nspire CAS élève, 1 pack de goodies TI, 1 goodie Xcas, et 1 pack de goodies TI-Planète-Casio

1 lot Lion ♌ comprenant 1 calculatrice TI-Nspire CX II-T, 1 licence logiciel TI-Nspire élève, 1 pack de goodies TI, 1 goodie Xcas et 1 pack de goodies TI-Planète-Casio

1 lot Gémeaux ♊ comprenant 1 calculatrice TI-83 Premium CE Edition Python, 1 adaptateur USB, 1 clavier USB, 1 pack de goodies TI et 1 pack de goodies TI-Planète-Casio





Tu peux trouver le détail des choix de goodies sur l'article TI-Planet annonçant le concours. Un truc tout nouveau de cette année c'est les batteries USB Casio de 2200 mAh, parfaites pour alimenter en urgence une calculatrice qui n'a plus de piles !



Ressources et téléchargement du programme

Scripts Python polycalc.py, laby.py et labytest.py

Pour participer sur Graph 35+E II, il faut disposer de la mise à jour vers l'OS 3.30 qui introduit les fonctions de dessin en Python. Pour Graph 90+E, il faut de même avoir la mise à jour vers l'OS 3.40.

Mises à jour Python vers l'OS 3.30 et 3.40

Tu peux aussi utiliser un émulateur pour tester le script sur ton ordinateur ! Les émulateurs de Casio sont gratuits pendant 90 jours.

Émulateur Graph 35+E II version 3.30 pour Windows
Émulateur Graph 90+E version 3.40 pour Windows (lien direct)
Émulateur Graph 90+E version 3.40 pour Mac (lien direct)

Pour transférer les scripts Python, branche ta calculatrice avec un câble USB à l'ordinateur et appuie sur F1 (Flash USB). Ta Graph 35+E II et ta Graph 90+E se présente comme une clé USB à l'ordinateur. Tu peux alors coller les fichiers dans le dossier principal puis éjecter la pseudo-clé USB. Ensuite, lance les scripts depuis l'application Python !

Pour les autres modèles, vois dans l'article TI-Planet. Tu peux participer avec toutes les combinaisons calculatrice/Python suivantes !

• TI-83 Premium CE Edition Python / TI-84 Plus CE-T Python Edition
• Casio Graph 35+E II
• Casio Graph 90+E / fx-CG50
• HP Prime en mode CAS
• HP Prime avec appli Python intégrée (firmware instable, déconseillé)
• NumWorks (y compris Delta et Omega)
• NumWorks avec l'appli KhiCAS en mode Micropython (Delta uniquement)
• NumWorks avec l'appli KhiCAS en mode de compatibilité Python (Delta uniquement)
• TI-Nspire CX II
• TI-Nspire avec Ndless et Micropython
• TI-Nspire CX/CM avec Ndless et Micropython
• TI-Nspire CX avec Ndless et KhiCAS CX

Toutes les raisons de participer sont réunies ! Ne perds pas un instant et attrape ta calculatrice ou ton émulateur favori·e pour résoudre dès maintenant le défi Python de Xuanwu !

D'autres annonces suivront pour les autres défis, et les résultats lorsque le défi sera terminé. Stay tuned et à bientôt sur Planète Casio !

Article connexe sur TI-Planet : Concours de rentrée 2020 - défi Python de Xuanwu


1, 2, 3 Suivante
Filoji Hors ligne Maître du Puzzle Points: 348 Défis: 16 Message

Citer : Posté le 23/09/2020 19:55 | #


J'y participe !!! Les votes sont lancés !
Plus sérieusement, je le fait sous PC moi (La calto est bien trop lente), donc j'ai recrée un petit code Il ne nous montre pas le chemin, mais la consommation
Je pense que je vais créer un petit prog qui va me calculer automatiquement les orientations etc :P
Et surtout..
Bonne Chance !
Gloire au Flying Spaghetti Monster !!!
FlamingKite Hors ligne Membre Points: 516 Défis: 9 Message

Citer : Posté le 23/09/2020 19:59 | #


Magnifique ! Je l'attendais avec impatience étant donné qu'avant j'étais pas sur PC !
J'annonce malheureusement ma non-participation, mes compétences m'interdisent de participer et même si elle me le permettaient, cette année, j'ai pas de temps en trop mais je suivrai de près l'avancée de l'évènement.
Sur ce, bonne chance à tous !
Lephenixnoir En ligne Administrateur Points: 24122 Défis: 170 Message

Citer : Posté le 23/09/2020 20:00 | #


Ha ha pas surprenant, tout le monde a déjà commencé à le faire sur ordinateur. Il paraît qu'une version Tkinter traîne sur TI-Planet. La légende dit aussi que les concepteurs de l'excavatrice avaient leur propre version de debuggage. Si vous lisez bien les inscriptions sur le murs de la caverne, vous pourriez trouver des indices. Mais après il y a d'autres activités plus pressantes, je le reconnais.
Mon graphe (19 Mars): (fxsdk#11 ; gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Lephenixnoir En ligne Administrateur Points: 24122 Défis: 170 Message

Citer : Posté le 23/09/2020 20:07 | # | Fichier joint


Filoji vient de griller la politesse à tout le monde en déterminant la solution optimale au problème.


Mon graphe (19 Mars): (fxsdk#11 ; gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Filoji Hors ligne Maître du Puzzle Points: 348 Défis: 16 Message

Citer : Posté le 23/09/2020 20:07 | #


Pardon, j'ai même pas compris ce que je suis censé savoir...
Gloire au Flying Spaghetti Monster !!!
Lephenixnoir En ligne Administrateur Points: 24122 Défis: 170 Message

Citer : Posté le 23/09/2020 20:09 | #


Est-ce qu'il y a quelque chose dans l'annonce qui n'est pas clair ou que tu n'as pas compris ?
Mon graphe (19 Mars): (fxsdk#11 ; gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Filoji Hors ligne Maître du Puzzle Points: 348 Défis: 16 Message

Citer : Posté le 23/09/2020 20:10 | #


Oui, ça :
Lephenixnoir a écrit :
Filoji vient de griller la politesse à tout le monde en déterminant la solution optimale au problème.


Gloire au Flying Spaghetti Monster !!!
Lephenixnoir En ligne Administrateur Points: 24122 Défis: 170 Message

Citer : Posté le 23/09/2020 20:14 | #


C'est drôle comme blague (même involontaire), parce que c'est clairement autorisé de tourner à gauche et que ne pas le faire va te complexifier la tâche.

Du reste, si quelqu'un arrive à nommer l'algorithme utilisé pour la génération du labyrinthe, il y a un cookie en jeu ! Non que ce soit compliqué mais ça demande de désobfusquer un peu de code.
Mon graphe (19 Mars): (fxsdk#11 ; gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Critor Hors ligne Administrateur Points: 2567 Défis: 18 Message

Citer : Posté le 23/09/2020 20:29 | #


Merci pour la rédaction et le formatage, toujours avec grand talent.
Ne dit-on pas que c'est l'emballage le plus important ?
FlamingKite Hors ligne Membre Points: 516 Défis: 9 Message

Citer : Posté le 23/09/2020 20:30 | #


Si c'est le cas, j'ai peut être une chance pour participer
Lephenixnoir En ligne Administrateur Points: 24122 Défis: 170 Message

Citer : Posté le 23/09/2020 20:30 | #


Merci, encore que le crédit te revienne pour la majorité de cette mise en forme. Qui en effet pour un événement de ce genre est cruciale ! x3

Ajouté le 23/09/2020 à 21:18 :
Et voilà la bannière dans l'article et en haut des pages du site.
Mon graphe (19 Mars): (fxsdk#11 ; gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Massena Hors ligne Ancien rédacteur Points: 2219 Défis: 11 Message

Citer : Posté le 23/09/2020 21:19 | #


Zut, pas d'indices cette fois :3
Lephenixnoir En ligne Administrateur Points: 24122 Défis: 170 Message

Citer : Posté le 23/09/2020 21:22 | #


Pour limiter la confusion sur le rôle de l'excavatrice, il faut préciser que les foreuses sont hors d'état de marche, vous ne pouvez donc pas passer à travers les murs. C'est un exercice de mouvement uniquement.
Mon graphe (19 Mars): (fxsdk#11 ; gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Massena Hors ligne Ancien rédacteur Points: 2219 Défis: 11 Message

Citer : Posté le 23/09/2020 21:22 | #


D'accoooord, merci beaucoup pour cette précision !
Ça éclaircit grandement les choses
Hackcell Hors ligne Maître du Puzzle Points: 1524 Défis: 11 Message

Citer : Posté le 23/09/2020 21:32 | # | Fichier joint


Lephenixnoir a écrit :
vous ne pouvez donc pas passer à travers les murs.


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

Citer : Posté le 23/09/2020 22:05 | #


Et tu fais ça sur la version originale ? :3
Mon graphe (19 Mars): (fxsdk#11 ; gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Hackcell Hors ligne Maître du Puzzle Points: 1524 Défis: 11 Message

Citer : Posté le 23/09/2020 22:11 | #


nan, j'ai changé les couleurs pour un truc plus flashy, pourquoi ? :3c
Lephenixnoir En ligne Administrateur Points: 24122 Défis: 170 Message

Citer : Posté le 23/09/2020 22:33 | #


Tout va bien, modifier les couleurs n'est pas autorisé donc cette participation est invalide. Ouf.
Mon graphe (19 Mars): (fxsdk#11 ; gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
FlamingKite Hors ligne Membre Points: 516 Défis: 9 Message

Citer : Posté le 23/09/2020 22:33 | #


ce problème réglé si facilement... (les autres qui traversent les murs, c'est pareil ?)
Tituya Hors ligne Administrateur Points: 2136 Défis: 26 Message

Citer : Posté le 23/09/2020 23:04 | #


Bon, pour aider les gens quand même vu que je suis particulièrement sympa, je vous file un script pygame que j'ai fait pour simuler lce programme sur l'ordi.

EDIT : Etrangement, la consommation n'est pas la même sur calto que sur pc, vous pouvez au moins simuler sur ordi le chemin, c'est déjà ça

#cas
from math import sin, cos, asin, pi
from polycalc import *
import pygame
from pygame.locals import *

def ri(a,b):
    global s
    s = (s * 214013 + 2531011) % 4294967296
    r = (s // 65536) & 0x7fff
    return r % (b-a) + a

def mon_secret(v, b, n):
    return v & ~(b * 2**n)

def mon_xor(a, b):
    return a + b - (a & b)

def ufl(r):
    global rl
    i, s = r // 3, 10 * (r % 3)
    rep = rl[i]//2**s & 1023
    if rep != r:
        rep = ufl(rep)
        rl[i] = mon_secret(rl[i], 1023, s)
        s = rep * 2**s
        rl[i] = mon_xor(rl[i], s)
    return rep

def ufm(r1, r2):
    global rl
    i, r1 = r1 // 3, 10 * (r1 % 3)
    r2 *= 2**r1
    rl[i] = mon_secret(rl[i], 1023, r1)
    rl[i] = mon_xor(rl[i], r2)

def cout(x):
    return len(str(round(abs(x)/1.,5)))

def a_gauche(a):
    global state
    state[5] += 5 + cout(a)
    state[2] -= a

def a_droite(a):
    a_gauche(-a)

def avancer(l):
    global state
    t = state[2]*2*asin(1)/pi
    dx, dy = cos(t), sin(t)
    state[5] += 8 + cout(l)
    while(l > 0):
        state[3:5] = state[0:2]
        x, y = state[0] + dx/4, state[1] + dy/4
        ix, iy = int(x) - (x < 0), int(y) - (y < 0)
        drx, dry = ix - int(state[3]), iy - int(state[4])
        vw = lambda y, x: wl[y] & 2**x
        hw = lambda y, x: wl[y + laby_h] & 2**x
        wx = laby_w - 2 - min(ix, ix - drx)
        tx = drx and (ix < 0 or ix >= laby_w or vw(iy - dry, laby_w - 2 - min(ix, ix - drx)))
        ty = dry and (iy < 0 or iy >= laby_h or hw(min(iy, iy - dry), laby_w - 1 - (ix - drx)))
        t = dx <= 0 or int(x) < laby_w - 1 or int(y) < laby_h - 1
        if t and tx or ty or (drx and dry and (t and tx or ty)) or (drx and dry and (t and vw(iy, laby_w - 2 - min(ix, ix - drx)) or hw(min(iy, iy - dry), laby_w - 1 - ix))):
            state[5] += 15
            return
        l -= .25
        state[6] += (state[6] < 200)
        state[0:2] = (x, y)
        draw_line(state[3] * zx, state[4] * zy, state[0] * zx, state[1] * zy, colors[4])

laby_w, laby_h = 20, 12
s = 0xdeadbeef

rl = [(3*i + 2)*1048576 + (3*i + 1)*1024 + 3*i for i in range(laby_w*laby_h + 2//3)]
wl = [(2**(laby_w + 1) - 1) // (1 + (k < laby_h)) for k in range(2*laby_h - 1)]
cl = len(rl)
while cl > 1 - (laby_w * laby_h)//100*10:
    y = ri(0, 2*laby_h - 1)
    x = ri(0, laby_w - (y < laby_h))
    if wl[y] & 2**x:
        if y < laby_h:
            r1 = y*laby_w + x
            r2 = r1 + 1
        else:
            r1 = (y - laby_h)*laby_w + x
            r2 = r1 + laby_w
        rl1, rl2 = ufl(r1), ufl(r2)
        if rl1 != rl2 or cl <= 1:
            ufm(rl1, rl2)
            cl -= 1
            wl[y] = mon_secret(wl[y], 1, x)
for r in range(len(rl)):
    ufl(r)

#screen_w, screen_h, poly_set_pixel, poly_draw_line, poly_fill_rect, poly_clean_screen, poly_show_screen = get_infos()

ratio = 3
screen_w = 384*ratio
screen_h = 192*ratio

ds = 4
zint = 1 + (screen_w > 2*laby_w*ds)
ds += zint - 1
zx, zy = (screen_w - zint) / laby_w, (screen_h - zint) / laby_h
#get_infos, poly_set_pixel, rl, ufl, ufm = None, None, None, None, None
colors = ([0, 95, 0], [0, 0, 63], [0, 200, 0], [0, 0, 255], [255, 0, 0])

pygame.init()
pygame.mixer.quit()
pygame.display.set_caption('Concours')
fenetre = pygame.display.set_mode((screen_w,screen_h))

def draw_line(x1, y1, x2, y2, c):
    pygame.draw.line(fenetre, (c),(x1, y1), (x2, y2))
    pygame.display.update()

def clean_screen():
    fenetre.fill([255,255,255])

def fill_rect_v(x, y, w, h, c):
    pygame.draw.rect(fenetre, c, Rect(x, y, 3, 15*ratio))

def fill_rect_h(x, y, w, h, c):
    pygame.draw.rect(fenetre, c, Rect(x, y, 15*ratio+10, 3))


def aller_selon(f, affiche):
    global state
    state = [0, .5, 0, 0, .5, 0, 0]
    clean_screen()
    for i in range(2):
        fill_rect_v(0, i * laby_h * zy, laby_w * zx, zint, colors[1])
        fill_rect_h(i * laby_w * zx, (not i) * zy, zint, (laby_h - 1) * zy, colors[0])
    for y in range(2*laby_h - 1):
        for z in range(laby_w - (y < laby_h)):
            if wl[y] & 2**z:
                x = laby_w - 1 - z
                if y < laby_h:
                    fill_rect_v(x * zx, y * zy, zint, zy, colors[2])
                else:
                    fill_rect_h(x * zx, (y - laby_h + 1) * zy, zx, zint, colors[3])
    f()
    boucle=False
    while not boucle and affiche:
        for event in pygame.event.get():
            if event.type==QUIT:
                boucle=True
            pygame.display.update()
    state[5] -= state[6] // 2
    print('Consommation : ' + str(state[5]))
    if state[0] >= laby_w:
        print('------------ GG ! -----------')
        print('info@tiplanet.org.')
    return state[5]


En soit, rien de spécial dedans. Je ne sais pas si ça fait de moi un hors la loi, mais j'ai rajouté un paramètre à aller_selon() qui permet d'afficher ou non le dessin.
J'ai aussi fait un ratio qui correspond simplement à la taille de l'écran simulé. Mon calcul est foireux, mais globalement pour une taille d'écran de 3 c'est ok.

Bretagne > Reste du globe
(Et de toute façon, vous pouvez pas dire le contraire)
Projet en cours : Adoranda

Mes programmes
Hésite pas à faire un test !


1, 2, 3 Suivante

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 61 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