Author Topic: Evoke 2010  (Read 7230 times)

0 Members and 1 Guest are viewing this topic.

Offline xtrium

  • Base
    • Pouet.net
    • Coup de coeur
    • Slengpung
    • View Profile
    • Homepage Frequency
  • Ancienneté: 2007
  • Groupe: Frequency
  • Rôle: Coder, musicien
  • Ville: Lille
Re : Evoke 2010
« Reply #15 on: 30 August 2010 à 21:44:13 »
L'Evoke c'est fini.

Un grand bravo aux Ctrl-Alt-Test qui ont sorti B, un voyage acidulé dans le monde des cubes:
http://www.pouet.net/prod.php?which=55737

Et à FRequency pour l'invitro de la MAIN 2010, avec un style liberé des contraintes de taille ;)
http://www.pouet.net/prod.php?which=55740
Des précisions sur comment marchent ces rubiks cube ?

C'est un "vrai" algo de résolution. Je dis vrai entre guillemets, parce qu'il y a deux choses : ici, seule une face est colorée, le reste on s'en fiche, et l'algo ne fonctionne pas si aucun des coins n'est orange.

Je peux pas trop en dire plus car l'algo c'est du Rouquemoute :) Faudrait qu'il vienne apporter qques précisions. :)

Offline wullon

  • Base
    • Pouet.net
    • Coup de coeur
    • Slengpung
    • View Profile
    • wullon homepage
  • Ancienneté: 2006
  • Groupe: Adinpsz
  • Rôle: orga/zik/design
  • Ville: Paris
Re : Evoke 2010
« Reply #16 on: 30 August 2010 à 22:50:41 »
J'ai regardé en détail c'est assez génial, surtout que c'est bien fini, avec un bon timing, et les points colorés qui viennent devant puis rotation quand il y a des espaces dans le second jet de greets !

Good job. ²

Offline Rouquemoute

Re : Evoke 2010
« Reply #17 on: 03 September 2010 à 15:41:02 »
Des précisions sur comment marchent ces rubiks cube ?

C'est assez simple en fait. Déjà comme l'a dit xtrium il n'y a que la face avant qui a des cubes jaunes, tous les autres sont noirs. On commence par faire le centre en envoyant colonne par colonne tous les cubes qui doivent passer au noir sur la face du haut avec une suite de 3 rotations. Par exemple pour la deuxième colonne du "E" ça donne : Rz(Pi/2, {1, 3}), Rx(Pi/2, {3}) puis Rz(-Pi/2, {1, 3}), où Rz(Pi/2, {1, 3}) est une rotation directe de Pi/2 autour de l'axe des x des tranches 1 et 3 du Rubik's cube (comptées selon la direction de l'axe).

Avec une astuce similaire on peut faire les arêtes puis terminer par les sommets. Par contre petit problème, moi qui voulait avoir un algorithme général indépendant de la lettre à afficher c'est raté puisque je ne peux pas faire les lettres qui ont 4 coins noirs (le O, le I et l'espace) par le même procédé. Pour ces 3 là je fais donc au cas par cas, ce qui est heureusement ridiculement facile :)

Le truc avec ce procédé c'est qu'il est linéaire avec la taille du cube. On pourrait très bien afficher un Rubik's cube 100x100x100 sans trop de problèmes, mais ça ne serait pas je pense un bon calcul parce que la méthode de résolution deviendrait alors trop apparente et un peu monotone.

Pour passer d'une lettre à une autre je défait juste les rotations précédentes pour revenir à l'état de départ (tout jaune) avant d'enchaîner sur la séquence suivante. Ça ne se voit pas trop au final parce que la fonction qui concatène les rotations détecte celles qui s'annulent mutuellement, ce qui fait que bien souvent on ne passe pas par l'état "tout jaune".