π
<-

NuuM 2D : retour labyrinthes Halloween en 2D sur ta NumWorks

NuuM 2D : retour labyrinthes Halloween en 2D sur ta NumWorks

Unread postby Admin » 22 Feb 2021, 15:08

A l'occasion d'Halloween 2020 NumWorks te sortait NuuM, un jeu Python en 3D utilisant la technique du raycasting (lancé de rayons).

Bien que la typographie du titre empruntait à la licence DOOM lancée en 1993, en réalité rien à voir. Ici pas de plateformes ni d'étages, le monde simulé est intégralement plat. Il s'agit en fait d'un labyrinthe 2D affiché en relief, on devrait plutôt parler de 2.5D ou de pseudo-3D.

Pour donner une référence vidéoludique en restant chez l'éditeur id Software, le jeu est ici plutôt comparable au titre précédent, Wolfenstein 3D de 1992.


Le script n'en reste pas moins très ambitieux avec plus de 10 Ko de code, aux limites actuelles de la calculatrice, ne compte pas pouvoir y faire des ajouts. ;)

13192

NumWorks te met donc au défi de traverser 4 labyrinthes successifs de 17×17 cases chacun. Tu dois à chaque fois trouver la clé afin de pouvoir accéder au labyrinthe suivant. 5 citrouilles purement décoratives seront également disposées dans chaque labyrinthe, cette fois-ci de façon aléatoire.

Alors, as-tu réussi à gagner depuis maintenant près de 4 mois ?

C'est vrai qu'être dans un labyrinthe, ce n'est pas pareil qu'en être au-dessus. ;)

Si ce n'est toujours pas le cas, on te propose aujourd'hui de hacker le jeu. :bat:

On trouve rapidement dans le code la définition des 4 labyrinthes :
Code: Select all
MAZE_SIZE = 17
MAZES = [
    994639892451692017993627844655427188346119489096700102527510313302320457573868616417279,
    994639136329297165277925056994599494901591635504316814914476715640179960969549973159935,
    994638899191857351225063837897269868434453723710226411561032419934171038551468501237759,
    994638903127657620198142832056217335350998827328484167051085993695318850524015157706751,
        ]


Le codage utilisé n'est certes pas précisé.

Mais aucun problème, car NumWorks a déjà codé une fonction wall(mapId, x, y) nous permettant de tester la case de coordonnées (x, y) du labyrinthe numéro mapId.
Elle peut retourner différentes constantes définies dans le script :
  • WALL_EMPTY (si c'est une case libre par laquelle on peut donc passer)
  • WALL_FANCY
  • WALL_SPECIAL_A
  • WALL_SPECIAL_B
  • WALL_SPECIAL_C
4 types de murs sont donc prévus, mais en pratique seule la couleur change comme tu as déjà pu voir plus haut. Le couleur d'affichage de chacun de ces murs est obtenue grâce à la fonction color(wallId).

13606Et bien voilà donc suffisamment d'informations pour hacker le script de NumWorks. Remplaçons simplement le code de la fonction drawSurfacesAndSprites() par une simple double boucle d'affichage de grille 2D :
Code: Select all
def drawSurfacesAndSprites(xp, yp, mapId):
  fill_rect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, color(CEILING))
  for y in range(MAZE_SIZE):
    for x in range(MAZE_SIZE):
      w = wall(mapId, x, y)
      if w != WALL_EMPTY:
        fill_rect(T_SIZE*x, T_SIZE*y, T_SIZE,T_SIZE,color(w))
  fill_rect(int(xp) * T_SIZE, int(yp) * T_SIZE, T_SIZE, T_SIZE, color(WALL_EMPTY))
  for sprite in SPRITES:
    sprite[1][0](int(sprite[0][0])*T_SIZE,int(sprite[0][1])*T_SIZE)


Rajoutons également de quoi afficher les sprites ainsi que la position du joueur, et voilà, la carte secrète intégrale du 1er labyrinthe de NumWorks se révèle enfin à nous ! :D

Tu peux donc dès maintenant t'y référer pour ne plus te perdre dans le labyrinthe 3D. ;)

13607Et tant que nous y sommes remplaçons également la fonction handleKeys(), comme ça si tu préfères tu pourras également jouer en 2D et découvrir encore plus rapidement les labyrinthes suivants ! ;)

Code source + installation : (pour NumWorks)

Téléchargement :
 
Ce compte ne reçoit pas de MP / This account does not receive PMs.
User avatar
AdminAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 1%
 
Posts: 460
Images: 28
Joined: 30 Aug 2011, 11:00
Gender: Not specified
Calculator(s):
MyCalcs profile

Online

Re: NuuM 2D : retour labyrinthes Halloween en 2D sur ta NumW

Unread postby cent20 » 22 Feb 2021, 17:02

C'est génial.

Le jeu est une belle démonstration des capacités de la calculatrice et cet article qui révèle une partie des secrets de la programmation de ce jeu encore plus intéressant. Comme tout n'est pas codé dans des listes ou pire des listes de listes, on peut arriver à faire tourner un script de 10 ko.

Bravo au développeur de ce jeu et à Critor d'avoir attendu 4 mois avant de hacker le jeu...
Image
Enseignant de mathématiques et d'informatique. Spécialité NSI : Des projets, des tutos, mais aussi de l'art
Calculatrice NumWorks : Des applications et des jeux, scripts, 📙 Découvrir la NumWorks
User avatar
cent20VIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 48.3%
 
Posts: 1047
Images: 67
Joined: 17 May 2012, 09:49
Location: Avignon
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: nsi_xyz

Re: NuuM 2D : retour labyrinthes Halloween en 2D sur ta NumW

Unread postby critor » 22 Feb 2021, 17:14

Merci pour ton retour. :)

cent20 wrote:Bravo au développeur de ce jeu et à Critor d'avoir attendu 4 mois avant de hacker le jeu...

Il fallait bien que je te laisse un temps raisonnable pour chercher, avant de publier la solution. :P
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48%
 
Posts: 41981
Images: 15887
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: NuuM 2D : retour labyrinthes Halloween en 2D sur ta NumW

Unread postby cirekraft » 22 Feb 2021, 17:22

Merci bien pour cette analyse, je regrette juste que Numworks n'ait pas eu la place de mettre ça... :~o

Image
User avatar
cirekraft
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 68%
 
Posts: 29
Joined: 19 Nov 2018, 17:53
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: Schraf

Re: NuuM 2D : retour labyrinthes Halloween en 2D sur ta NumW

Unread postby critor » 22 Feb 2021, 21:35

Surprise, ça marche aussi sur TI-Nspire CX II ! :D
Image
archives_voir.php?id=2703200
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48%
 
Posts: 41981
Images: 15887
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: NuuM 2D : retour labyrinthes Halloween en 2D sur ta NumW

Unread postby DoOmnimaga » 22 Feb 2021, 21:51

Koman on alum une TI


Je voulais dire Sympa comme jeu. Par contre, je me demande ce que font les petit monstres ou trucs avec une bouche, parce que quand je passe dessus, rien de spécial ne se produit. :quest:
ImageImageImageImage
User avatar
DoOmnimagaPremium
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 21.4%
 
Posts: 696
Images: 51
Joined: 21 Feb 2012, 12:04
Location: Quebec, Canada
Gender: Male
Calculator(s):
MyCalcs profile
Class: 11eme annee scolaire termine
YouTube: DJOmnimaga
Facebook: dreamofomnimaga.page

Re: NuuM 2D : retour labyrinthes Halloween en 2D sur ta NumW

Unread postby critor » 22 Feb 2021, 21:53

Oui, ce sont des citrouilles d'Halloween.

Elles sont purement décoratives, en effet.
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48%
 
Posts: 41981
Images: 15887
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor


Return to News NumWorks

Who is online

Users browsing this forum: No registered users and 2 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
808 utilisateurs:
>796 invités
>6 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)