Redstone Snake complet et rapide ! [un déplacement toutes les 1,2 secondes]

[GISED] Link

Torches, poudre et repeaters. What else ?
4 Mars 2012
341
76
140
29
VNSA, 2740 Moutier
vnsa.ch
Très beau travail, félicitation ! Maintenant, tout le monde à tendance à utiliser des command blocks, c'est plus simple, et plus rapide à créer, mais je trouve ça génial qu'il y a encore des puristes de la redstone, c'est avec des systèmes tels que le votre que l'on peut se rendre compte des possibilités inimaginables de cette dernière !

Merci beaucoup ! Je suis ravis que des gens apprécient et s'expriment ainsi sur notre travail.

J'ai pas envie de lancer de débat sur la redstone et les CB. Mais je pense qu'il faut réfléchir de manière différente lorsqu'on travail avec un ou avec l'autre. Je me précise :
  • Pour stocker une valeur, en CB on utilisera facilement un scoreboard tandis qu'en redstone il faudra créer un registre, lui assigner une adresse et assumer de travailler en binaire
  • La synchronisation en CB est peu importante comparé à la redstone. En effet, en redstone, les éléments combinatoires ont des temps de réaction notables et il faut les prendre en compte. Surtout quand le temps de réaction de la sortie diffère selon l'état de l'entrée (en gros, que la sortie ne met pas toujours le même temps à devenir stable en fonction de l'état de l'entrée)
  • Je ne connais pas l’influence d'un nombre élevé de CB sur la machine virtuel Java. En tout cas, en redstone, son impact en terme de ressource est très élevé. Vous pourrez utilement vous en rendre compte en testant les différente vitesse d'horloge de notre snake (une fois sorti, en janvier 2016). Des méthodes simples existent pour limiter l'impact de la redstone sur votre JVM : limiter le nombre d'inversion nécessaire au minimum. Désactiver les parties non utilisées (par exemple, si vous adresser 256 octets de RAM, vous ne travailler qu'avec 16 octet à la fois en forçant l'état du bus d'adresse des 15*16 autres octets à 1 (compliqué à expliqué, simple à faire). Vous pouvez aussi utilisez le code GRAY pour l'adressage. Ainsi, il n'y aura qu'une seul ligne du bus (un bit) qui changera d'état à chaque coup d'horloge (en binaire on a une moyenne de 2 bits qui changent d'état par coup d'horloge tandis qu'en GRAY on en a qu'un)
  • En CB, je ne pense pas qu'il est possible de créer les différentes structures de mémoire que nous disposons, à savoir :
  1. Les registres à décalage
  2. Les EEPROMs (mémoire rémanente qui ne perdent pas leur valeur lorsqu'on quitte un serveur ou une partie solo)
  3. Les accès aux flags (ou accès à un seul bit (état booléen) d'une valeur/variable)
  4. L'interfaçage rapide entre attributs (valeur éditable via CB) et élément physique (redstone lampe). En gros, est-ce que c'est facile de récupérer une coordonnée x et une coordonnée y et de créer un point ou le retiré d'un écran.
Si qqun veut parler de CB, il peut reprendre les points plus haut dans un nouveau sujet.
 
Dernière édition:
  • J'aime
Reactions: Oromis

Oromis

Command-blocker slimesque
Staff
Modérateur
Support
11 Février 2014
3 345
2
1 053
297
24
Bretagne
Je te remercie de ta réponse détaillée. Bon, je n'avais pas l'attention de lancer un débat sur la redstone et le command block, je suis moi même plus penché vers ce dernier, mais je reconnais que avec une bonne base en redstone, en binaire/électronique, les possibilités sont immenses ! Bref, je m'arrête là, ce n'est pas le sujet de ce post, en tout cas, j'ai hâte d'essayer ce snake !
 

Zilack3

Binary Power !
13 Mars 2013
118
54
140
26
Explication module par module de l'écran AUXILIAIRE du SNAKE

TABLES DES MATIÈRES
  1. Le score
    1. La gestion du score
    2. Le système de record
  2. Le curseur et ses applications
    1. Le limiteur de coordonnées du curseur par menu et par ligne
    2. Le transformateur de coordonnées cartésiennes en une valeur décimale qui représente une position possible du curseur en fonction du niveau choisi
    3. L'appel des fonctions
  3. Le créateur de niveau
    1. Le créateur de niveau
  4. L'affichage à l'écran
    1. La gestion de l'affichage des menus
    2. L'affichage du curseur
    3. La gestion de l'affichage des digits
    4. L'affichage des menus
    5. L'affichage des digits
  5. Autre circuit
    1. Fonction de réinitialisation générale et écran de démarrage
PRÉSENTATION

1.1. La gestion du score

2015-12-31_10.02.25.png


-> C'est un système de combo
- A la 1ère nourriture prise, on a 15s pour prendre la 2ème, de plus on gagne 1 pts.
- A la 2ème nourriture prise, on a 13s pour prendre la 3ème, de plus on gagne 10 pts.
- A la 3ème nourriture prise, on a 11s pour prendre la 4ème, de plus on gagne 20 pts.
- A la 4ème nourriture prise, on a 9s pour prendre la 5ème, de plus on gagne 40 pts.
- A la 5ème nourriture prise, on a 7s pour prendre la 6ème, de plus on gagne 80 pts.
- A la 6ème nourriture prise, on a 5s pour prendre la 7ème, de plus on gagne 160pts.
- A la 7ème nourriture prise, on gagne 320pts.

COMPOSITION DU MODULE

- 3 additionneur BCD (= 3 DIGITS)
- 1 mémoire FIFO
- 1 décodeur 3 vers 8
- 2 compteur module 7


1.2. Le système de record

2015-12-31_10.00.49.png


-> Cela permet d'enregistrer votre meilleur score de chaque niveau de chaque mode. Il y a 16 emplacements:
Mode EASY : 1 LVL
Mode HARD : 14 LVL
Mode EDIT : 1 LVL

COMPOSITON DU MODULE

- 1 RAM 16 x 12 = 192 bits ou 192 / 8 = 24 octets
- 1 comparateur BCD 3 digits
- 1 décodeur 4 vers 16


2.1. Le limiteur de coordonnée du curseur par menu et par ligne

2015-12-31_10.00.28.png


-> Ce module permet d'empêcher que l'utilisateur puisse sortir de l'écran lorsqu'il est dans un menu à une ligne désigné.

COMPOSITION DU MODULE

- 1 compteur module 3
- 1 compteur module 8


2.2. Le transformateur de coordonnées cartésiennes en une valeur décimale qui représente une position possible du curseur en fonction du niveau choisi

2015-12-31_10.00.12.png


-> Pour faciliter les circuits en AVAL on passe d'un format (x;y) à un format (z) où:
- x appartient à [0;7]
- y appartient à [0;2]
- z appartient à [0;11]

COMPOSITION DU MODULE

- 12 portes AND


2.3. Le gestionnaire d'appel des fonctions

2015-12-31_10.02.02.png


-> C'est le cœur de l'écran AUX, si on l'enlève, on ne pourra que bouger le curseur ! Une fonction est appelé si et seulement si le curseur est à la bonne position et si l'utilisateur appuie sur le bouton validé.

COMPOSITION DU MODULE

- 19 portes AND


3.1. Créateur de niveau

2015-12-31_10.01.06.png


-> Vous avez la possibilité de créer vos propres niveaux grâce à un menu dédié !

COMPOSITION DU MODULE

- 64 bascules T
- 2 matrices 8 x 8
- 1 compteur module 10 (0 - 9)


4.1. La gestion de l'affichage des menus

2015-12-31_10.14.15.png


-> Quand un niveau est sélectionné, cela réinitialise tout les niveaux puis set le niveau concerné

COMPOSITION DU MODULE

- 5 bascules RS


4.2. L'affichage du curseur

2015-12-31_12.01.17.png


-> Ce module permet de limiter le nombre de câble en faisant quelque chose plus propre que de simplement relier directement un la position d'un curseur directement à l'écran

COMPOSITION DU MODULE

- 23 portes AND


4.3. La gestion de l'affichage des digits

-> C'est un démultiplexeur qui permet d'afficher à l'écran les digits du niveau sélectionné.

COMPOSITION DU MODULE

- 1 démultiplexeur 3 vers 3 (on travaille tout le temps en base 10 ici)


4.4. L'affichages des menus à l'écran

2015-12-31_10.13.47.png


-> C'est une énorme ROM qui permet d'afficher les 5 niveaux.

COMPOSITION DU MODULE

- 1 ROM de 5 barrettes


4.5. L'affichage des digits à l'écran

2015-12-31_12.00.02.png


-> Il y a plusieurs sorties de compteur/décompteur BCD qui arrivent au niveau de l'écran. L'affichage se fait grâce à 3 décodeurs BCD->7Segments.

COMPOSITION DU MODULE

- 3 décodeurs BCD->7Segments
- 1 compteur/décompteur modulo 10 (0-9)
- 1 compteur/décompteur modulo 14 (0-13)


5.1. Fonction de réinitialisation générale et écran de démarrage

-> Cela réinitialise tout sauf les records. De plus l'écran de démarrage apparaît pendant un court instant.

COMPOSITION DU MODULE

- 1 ROM de 2 barrette

PS: Tout les Screenshots ne sont pas représentatif de l'ensemble du module, souvent, ce n'est que l'une des facettes du module qui sont visibles.
 
Dernière édition:

[GISED] Link

Torches, poudre et repeaters. What else ?
4 Mars 2012
341
76
140
29
VNSA, 2740 Moutier
vnsa.ch
Heeeeeello les petits loups !

Nous avons malheureusement encore quelques petits bug lors de la génération de la nourriture. En effet, lorsque la nourriture est générée dans un mur, celle-ci peut ensuite être régénérée 2 fois. Je travaille à fond en ce moment dessus (la solution est en cours d'implémentation). Mais je pense qu'après ce problème réglé, on sortira définitivement la map !

A très bientôt !
 

Paraplégique

Retardo Milos
Ancien
13 Avril 2015
2 625
1 173
298
AOP
quand j'ai vue le système mon cerveau à eu un avc complet.
Mon moteur de recherche aussi,
Ma souris,
Mon clavier,
Mon chien,
David pujadas
Bref le système à l'air rudement bien foutu.
J'ai pas regardé dans le détail mais tu as bien organisé la chose apparemment.
Un gros gg alors !
 

[GISED] Link

Torches, poudre et repeaters. What else ?
4 Mars 2012
341
76
140
29
VNSA, 2740 Moutier
vnsa.ch
Heeeello !

Tout d'abord merci pour les commentaires positifs, ça fait plaisir. Même si... c'est pas toujours claire.
Alors j'ai enfin plus ou moins vacances, donc je vais pouvoir finir d'écrire le thread officiel en anglais avec la map, évidemment. Je pense faire, comme pour le pong (← Clic !), une zone additionnel à côté du snake pour extraire tous les principaux circuits que nous avons utilisés afin que vous puissiez les utiliser séparément et apprendre à les faire aller. C'est toujours cool.

De toute façon, on bosse toujours sur des projets super cool (comme vous avez vu avec Zilack3 qui a sorti son microcontrôleur), c'est pour ça que les choses ont toujours tendance à traîner un peu. Si vous voulez vous joindre à nous, rien de plus simple :
http://minecraft.fr/forum/threads/serveur-redstone-free-access-thundered.123218/

Amusez-vous bien jusque-là !