Page 1 of 1

Résultats concours Dragon Ball Z 2013

Unread postPosted: 18 Jun 2013, 05:46
by critor
Dans une news précédente, nous vous proposions donc un concours de recherche/documentation à propos de l'extrait suivant provenant de l'épisode 168 de Dragon Ball Z:


Vous pouviez gagner une TI-Nspire CX numérique, une TI-84 Plus C Silver Edition couleur et plein d'autres lots! :bj:
  • 1 TI-Nspire CX numérique avec son logiciel et sa licence + 2 stickers TI-Planet :48tinscx:
    1 TI-Nspire CX non-CAS with its software and licence + 2 TI-Planet stickers :48tinscx:
  • 1 TI-84 Plus C Silver Edition (nouveauté couleur rentrée 2013) avec son chargeur USB + 2 stickers TI-Planet :48ti84pcse:
    1 TI-84 Plus C Silver Edition (new color calculator for back to school 2013) with its USB charger + 2 TI-Planet stickers :48ti84pcse:
  • 1 poster de calculatrice Texas Instruments (modèle au choix, dans la limite des disponibilités) + 2 stickers TI-Planet
    1 Texas Instruments calculator poster (model of your choice, if available) + 2 TI-Planet stickers
  • 1 stylo USB Texas Instruments + 2 stickers TI-Planet
    1 Texas Instruments USB pen + 2 TI-Planet stickers
  • 1 bloc-notes Texas Instruments + 2 stickers TI-Planet
    1 Texas Instruments notebook + 2 TI-Planet stickers
  • 4 stickers TI-Planet
    4 TI-Planet stickers

Deux extraits de code BASIC sont montrés dans cet épisode. Vous deviez donc répondre à 7 questions pour réunir les 7 boules de cristal afin de formuler votre voeu! ;)



1er extrait de code BASIC:

Voici donc une proposition de retranscription du 1er extrait de code BASIC présent dans cette vidéo:
Code: Select all
5140 '-=== object ROTATION   ======
5150 X1=X
5160 Y1=Y*cos(XAA)-Z*sin(XAA)
5170 Z1=Y*sin(XAA)+Z*cos(XAA)
5180 X2=X1*cos(YAA)+Z1*sin(YAA)
5190 Y2=Y1
5200 Z2=-x1*sin(YAA)+Z1*cos(YAA)
5210 X=X2*cos(ZAA)-Y2*sin(ZAA)
5220 Y=X2*sin(ZAA)+Y2*cos(ZAA)
5230 Z=Z2
5240 return
5250 '-=== world ROTATION ======
5260 X1=X
5270 Y1=Y*cos(XA)-Z*sin(XA)
5280 Z1=Y*sin(XA)+Z*cos(XA)
5290 X2=X1*cos(YA)+Z1*sin(YA)
5300 Y2=Y1
5310 Z2=-X1*sin(YA)+Z1*cos(YA)
5320 X=X2*cos(ZA)-Y2*sin(ZA)
5330 Y=X2*sin(ZA)+Y2*cos(ZA)
5340 Z=Z2
5350 return
5360 '-=== CONVERGENCE LEFT-EYE ===-
5370 C=5
5380 CONVX=X*cos(CA)+Z*sin(CA)
5390 CONVY=Y
5400 CONVZ=-X*sin(CA)+Z*cos(CA)
5410 X=CONVX
5420 Y=CONVY
5430 Z=CONVZ
5440 return
5450 '-=== CONVERGENCE RIGHT-EYE ===-
5460 C=3


Toute ambiguïté sur la lecture d'un caractère a bénéficié aux candidats.

Ce code était en fait déjà disponible sur Internet sur un forum d'animation japonaise, ToonZone, mais avec quelques erreurs de transcription: casse et notamment un oubli de la dernière ligne 5460:
http://www.toonzone.net/forums/toonami- ... Zpsk6LwmSo

Et nous avons au moins une personne qui a copié ça sans corriger les fautes :P

Retranscription incluse, vous aviez donc 3 questions pour 3 boules de cristal sur ce 1er extrait. Mais ToonZone vous donnait en même temps des réponses aux deux autres questions sur ce code. Il vous expliquait qu'il s'agissait d'un algorithme de rotation 3D.

Le code était incomplet, et ToonZone vous proposait du code pour compléter ce qui manquait après la ligne 5460.

Voici une autre réponse possible parmi tant d'autres:
Code: Select all
5470 CONVX=X*cos(CA)+Z*sin(CA)
5480 CONVY=Y
5490 CONVZ=-X*sin(CA)+Z*cos(CA)
5500 X=CONVX
5510 Y=CONVY
5520 Z=CONVZ
5530 return




2ème extrait de code BASIC:
Cette partie pouvait vous apporter 4 boules de cristal.

Cette fois-ci, auncune trace de ce code sur Internet! Les diverses communautés de fans semblant ne jamais s'y être intéressé - et l'exclusivité est donc pour TI-Planet aujourd'hui! ;)

Ce code avait l'air énorme avec plus d'une centaine de lignes et nombre d'entre vous ont râlé et se sont découragés.
Cela faisait justement parti de l'épreuve! :P

En fait c'est un trucage de la production: le code n'est constitué que d'une 40aine de lignes: lignes 470 à 900 qui défilent en boucle 2 à 3 fois à l'écran, afin de donner l'illusion d'un truc bien long/compliqué.

Et comme les téléspectateurs non avertis de l'époque, certains parmi vous se sont donc faits à nouveau avoir ;)

Voici à simple titre de modèle une retranscription acceptable du code:
Code: Select all
470      C=RND*6+1:X=RND*639 : Y=RND*199
480      LINE(320,100)-(X,Y),PSET,C: LINE(320,100)-(X,Y),PSET,0
490      NEXT I
500     NEXT Z
510   FOR Z=1 TO 5
520 '#####<< BOX-2 >>#####
530      FOR I=0 TO 50
540      J=I*2:C=(C+1)MOD8
550      LINE(319-J,99-I)-(320+J,100+I),PSET,C,B
560      NEXT I
570      NEXT Z
580 '#####<< BOX-2 >>#####
590     FOR SS=1 TO 1000 STEP 10
600      FOR I=0 TO 319 STEP 15
610      J=I/3.3:C=(C+1)MOD7
620      LINE(319-I,99-J)-(320+I,100+J),PSET,C,B
630      NEXT I
640     NEXT SS
650 '#####<< BOX-2 >>#####
660      FOR I=0 TO 100
670      J=I/3.3
680      LINE(319-I,99-J)-(320+I,100+J),PSET,0,B
690      NEXT I
700 '#####<< FLASH-3 >>#####
710      FOR J=1 TO 100 : C=RND*6+1
720      CONNECT(320,90)-(318,99)-(300,100)-(318,101)-(320,110)-(322,101)-(340,100)-(322,99)-(320,90),C
730      NEXT J
740      FOR I=101 TO 319
750      J=I/3.3
760      LINE(319-I,99-J)-(320+I,100+J),PSET,0,B
770      NEXT I
780 '#####<< FLASH-3 >>#####
790      FOR J=1 TO 100 : C=RND*6+1
800      CONNECT(320,90)-(318,99)-(300,100)-(318,101)-(320,110)-(322,101)-(340,100)-(322,99)-(320,90),C
810      NEXT J
820 '#####<< STAR-3 >>#####
830      FOR J=1 TO 100
840      I=3.2*J
850      C=RND*6+1
860      X1=(320-I)+RND*I: X2=RND*I+319
870      Y1=(100-J)+RND*J:Y2=RND*J+99
880      PSET(X1,Y1,C):PSET(X2,Y2,C):PSET(X1,Y2,C):PSET(X2,Y1,C)
890      NEXT J
900     GOTO 400


Il y avait des ambiguïtés qui ont profité au candidat , mais la plupart étaient levables pour qui se donnait la peine de comprendre ce qu'il recopiait et de se documenter un minimum sur le langage BASIC.

Par exemple, l'instruction LINE permet aussi bien de tracer une ligne reliant deux points qu'un rectangle de sommets opposés ces deux points. Dans ce dernier cas, on rajoute un dernier paramètre ",B" (pour BOX) en fin de ligne.
Ce n'était pas un ",D", et certains d'entre vous semblent avoir bâclé le travail demandé malgré sa facilité: ce paramètre constitue pourtant les bases du langages BASIC.

Il a existé nombre de langages BASIC, et vous deviez ici déterminer de quelle famille il s'agissait et à quel modèle d'ordinateur elle était apparentée. Il s'agissait donc en gros de déterminer ce que la Toei Animation a pu avoir sous la main dans les années 90 lors de la production du dessin animé.

Deux choses devaient attirer votre attention au niveau des instructions graphiques:
  • l'utilisation d'une instruction CONNECT pour tracer un polygone
  • l'utilisation d'un paramétrage peu conventionnel pour l'instruction LINE - par exemple LINE(319-I,99-J)-(320+I,100+J),PSET,0,B

Quelques essais sur les ordinateurs 8-bits/16-bits des années 80/90 comme le Thomson MO5 ou le TI-99 disponibles en émulateurs auraient du vous convaincre que l'instruction CONNECT n'existait pas dans nos langages BASIC occidentaux. C'est donc un ajout bien spécifique.

L'instruction LINE y est habituellement sous la forme LINE(X1,Y1)-(X2,Y2),C[,B], où C est le code couleur et où le paramètre B est optionnel.

Mais ici, l'instruction LINE a une syntaxe bien spéciale et facilement identifiable avec un paramètre supplémentaire, PSET, qui est en fait l'instruction de tracé de points répétée ici lors d'une boucle interne.
La syntaxe spéciale ici est donc LINE(X1,Y1)-(X2,Y2),fonction,C[,B].

Quelques recherches Google sur ces particulatrités vous aurait orientés vers le langage F-Basic, pour Fujitsu-Basic.

C'est un Basic Microsoft modifié par le constructeur japonais Fujitsu pour ses ordinateurs de la série FM: FM-8/FM-7 (8-bits), FM-11 (16-bits), FM-Towns (32 bits)... Tout ordinateur de la gamme était accepté.

Voici la doc du F-Basic:
http://fullmotionvideo.free.fr/phpBB3/d ... e.php?id=4

Ainsi qu'une petite page sur le Fujitsu FM-7 et son langage de programmation F-Basic:
http://www.nausicaa.net/~lgreenf/fm7page.htm

Voilà donc le genre d'ordinateur qui traînait probablement dans un coin chez la Toei Animation lors de la production de Dragon Ball Z, et qui a fourni l'extrait de code en question.



Le code n'a bien évidemment rien à voir avec des données sur Sangoku contrairement à ce que dit Bulma ci-dessus, et ne dessine pas les images montrées à l'écran.

Voici ce qu'il dessine vraiment sur émulateur:


Voici l'émulateur et la ROM.



Nous avons donc reçu brillamment 4 participations pour ce concours très simple avant vos examens.

Nous avons donc l'honneur de féliciter Stefan Bauwens qui arrive premier en récoltant 6,5 boules de cristal, avec un travail de qualité encyclopédique où il a quasiment tout trouvé - travail que nous espérons bientôt voir compléter les différents Wiki Dragon Ball Z du net! :bj:
ImageImageImageImageImageImage


Il est suivi en 2ème place de zero44, qui réunit 5,6 boules de cristal. La transcription était notamment de meilleur qualité et il y a eu des efforts, mais la partie Google/recherche sur le F-Basic est totalement absente/fausse - c'est dommage car c'était bien parti.
ImageImageImageImageImage


En 3ème place, David E. avec 4,3 boules de cristal qui aurait pu plus s'investir.
ImageImageImageImage


Et dernier, Matref, avec 3,1 boules de cristal, a malheureusement rendu un travail très incomplet.
ImageImageImage



Comme prévu dès le départ, ils vont être contactés dans l'ordre de mérite pour choisir leur lot parmi ce qui était annoncé.

Les lots non distribués seront au choix conservés pour un concours ultérieur ou rendus aux sponsors/fournisseurs, conformément au règlement.

Dommage, car ne vous attendez pas à pouvoir gagner une TI-Nspire CX ou TI-84 Plus C aussi facilement la prochaine fois... :P

Merci à tous, et à bientôt!

Re: Résultats concours Dragon Ball Z 2013

Unread postPosted: 18 Jun 2013, 08:19
by stefan bauwens
Wow! Thank you very much!
It's funny that I got so far since I never watched Dragon Ball Z before. xD

Now when seeing these answers I notice some silly mistakes which I could have avoided(like writing 310 instead of 319), and writing(by accident) a + instead of a= in the first code I edited. I should have double-checked a bit more..

But I'm so happy! This is the first time I get first on a calculator competition or win such a great prize. :)

Thanks for all the effort TI-Planet team. :)

Re: Résultats concours Dragon Ball Z 2013

Unread postPosted: 18 Jun 2013, 08:31
by nikitouzz
RAaaaaahhhhh j'avais presque tout finis et j'ai oublié, remarque je ne pense pas etre premier ^^

Re: Résultats concours Dragon Ball Z 2013

Unread postPosted: 18 Jun 2013, 14:26
by matref
Mais pourquoi Google a rien voulu me donner sur le F-Basic ? ;_; sérieusement fallait chercher quoi ? J'ai cherché ça (me dit mon historique) :
  • basic line(x-y)
  • basic connect
  • basic pset
  • basic line pset
  • basic line(x-y,pset)
J'ai lu exactement 19 pages Wikipédia sur 19 langages Basic différents, j'en ai conclu que ça ressemblai le plus au Basic d'Amiga .__. J'apprends l'existence du F-Basic juste maintenant !

Re: Résultats concours Dragon Ball Z 2013

Unread postPosted: 18 Jun 2013, 17:48
by stefan bauwens
Well, searching google for: "line (x1 y1)-(x2 y2),pset,0" gives me only 2 results. And trough that I discovered it was F-Basic.

Re: Résultats concours Dragon Ball Z 2013

Unread postPosted: 19 Jun 2013, 20:27
by zero44
*content*

Oué, j'ai enfin un 'gros lot' à un concours TI-Planet ;)

Stefan Bauwens, please tell me : do you want the CX CAS or the 84+CSE ? Because I'll obviously take the other one ^^

Re: Résultats concours Dragon Ball Z 2013

Unread postPosted: 19 Jun 2013, 21:25
by stefan bauwens
I have chosen for the TI-84 Plus C Silver Edition. :)
Hope you enjoy the CX! :D

Re: Résultats concours Dragon Ball Z 2013

Unread postPosted: 19 Jun 2013, 21:26
by critor
He told me he wanted the 84+CSE.

So, what do you want?

Re: Résultats concours Dragon Ball Z 2013

Unread postPosted: 21 Jun 2013, 08:59
by zero44
What a question... CX CAS of course.

Bah la CX évidemment ^^
Quelqu'un veut acheter une CAS Clickpad ou une CASIO Prizm ? Ou vendre une 84+ C SE ?

Re: Résultats concours Dragon Ball Z 2013

Unread postPosted: 22 Jun 2013, 09:00
by Persalteas
Je veux bien acheter ta Prizm. Mais ça dépend de ton prix.