Vous pouviez gagner une TI-Nspire CX numérique, une TI-84 Plus C Silver Edition couleur et plein d'autres lots!
- 1 TI-Nspire CX numérique avec son logiciel et sa licence + 2 stickers TI-Planet1 TI-Nspire CX non-CAS with its software and licence + 2 TI-Planet stickers
- 1 TI-84 Plus C Silver Edition (nouveauté couleur rentrée 2013) avec son chargeur USB + 2 stickers TI-Planet1 TI-84 Plus C Silver Edition (new color calculator for back to school 2013) with its USB charger + 2 TI-Planet stickers
- 1 poster de calculatrice Texas Instruments (modèle au choix, dans la limite des disponibilités) + 2 stickers TI-Planet1 Texas Instruments calculator poster (model of your choice, if available) + 2 TI-Planet stickers
- 1 stylo USB Texas Instruments + 2 stickers TI-Planet1 Texas Instruments USB pen + 2 TI-Planet stickers
- 1 bloc-notes Texas Instruments + 2 stickers TI-Planet1 Texas Instruments notebook + 2 TI-Planet stickers
- 4 stickers TI-Planet4 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
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!
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!
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.
En 3ème place, David E. avec 4,3 boules de cristal qui aurait pu plus s'investir.
Et dernier, Matref, avec 3,1 boules de cristal, a malheureusement rendu un travail très incomplet.
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...
Merci à tous, et à bientôt!