mercredi 16 mai 2012

Micro Simon complété

J'ai finalement complété le projet Micro Simon. tous les fichiers sont ici.

Caractéristiques

Il y a 3 modes jeux:

  1. Simon mode 1 (bouton rouge), lorsque le joueur réussi à répéter la séquence de notes, celle-ci est allongée d'une note supplémentaire tirée au hasard. Un échec termine la partie.
  2. Simon mode 2 (bouton vert), lorsque le joueur réussi à répéter la séquence de notes, une nouvelle séquence complète est générée au hasard. La séquence s'allonge de 1 à chaque succès du joueur, un échec termine la partie.
  3. mode 2 joueurs (bouton jaune), le premier joueur cré une séquence que l'autre doit répété. Chaque succès donne un point au joueur. Avant de commencer la partie les joueurs doivent choisir la longueur de la séquence et celle-ci ne varie pas durant la partie. bouton rouge pour 6 notes, vert 8 notes, jaune 10 notes et bleu 12 notes. le score maximal pour les joueurs 1 et 2 sont enregistrés dans l'EEPROM et peuvent être visualisé avec le bouton bleu hors partie.

opération

A la mise sous tension ou après que le bouton réinitalisation a été enfoncé, la routine POST est exécutée. Cette routine consiste à allumer séquenetiellement les 4 DEL en faisant ententre la note associée à chacune d'elle. L'ordre est rouge,vert,jaune,bleu.
Après le POST la routine t'attente de sélection du jeux est exécutée. Durant cette routine les DEL clignotent en séquence dans le même ordre que durant le POST mais il n'y a pas de son. Le joueur doit sélectionner le jeux en pesant sur le bouton correspondant.
Dans les modes 1 et 2 une musique de félicitation est jouée à tous les multiples de 6 notes et après la musique la longueur de la séquence est affichée selon le code lummineux indiqué plus bas.
Le bouton BLEU en dehors de tout jeux sert à afficher le pointage maximal obtenu par chacun des joueurs pour les parties à 2 joueurs. 1 beep se fait entendre avant l'affichage du pointage du joueur rouge et 2 beep avant celui du joueur vert.

code d'affichage

Les valeurs numériques sont affichées selon le code de couleur suivant:

  • La DEL rouge indique les unitées et clignote de 1 à 4 fois.
  • La DEL verte indique les multiples de 5 et ne clignote jamais plus d'une fois.
  • La DEL jaune indique les multiples de 10 et clignote de 1 à 4 fois.
  • La DEL bleu indique les multiple de 50 et clignote de 1 à 5 fois.
Le compte maximal qui peut être affiché est 255 ce qui donne bleu clignote 5 fois suivi de vert 1 fois, 5*50+5.

Mode à 2 joueurs

Le fonctionnement du mode à 2 joueurs est le suivant. Au départ les joueurs s'entendent sur la longueur de la séquence à jouer et doivent peser sur le bouton avant le délais de 3 secondes sinon la longueur par défaut de 6 notes est sélectionnée.
Au début de chaque manche 2 beep se font entendre avec 1 clignotement de la DEL rouge. Le joueur rouge doit alors entrer une séquence. Lorsqu'il a saisi toutes les notes de sa séquence, 3 beep se font entendre et la DEL verte clignote 1 fois. Le joueur vert doit alors répété la séquence. S'il réussi la musique de félicitation est entendu et son pointage augmente de 1. Ce pointage est affiché après la musique selon le code d'affichage mentionné au paragraphe précédent. Ensuite s'est son tour d'entrer une séquence (2 beep avec sa lumière qui allume). Après quoi 3 beep avec la lumière rouge indique à ce joueur de répéter la séquence.
Pour sortir de ce jeux il faut enfoncer le bouton de réinitialisation.

code assembleur

Ce qui distingue principalement le code de Micro Simon par rapport à Pocket Simon est l'utilisation des interruptions. On dispose aussi sur le PIC12F675 de plus de mémoire RAM 64 octets au lieu de 24 je n'ai donc pas eu besoin de compacter la séquence, chaque note occupe 1 octet au lieu de 2bits dans Pocket Simon. J'ai aussi utilisé l'EEPROM pour sauvegarder la mélodie au lieu d'une table dans l'espace programme. Le code assembleur montre donc comment lire et comment écrire dans l'EEPROM.

Aucun commentaire:

Publier un commentaire

Remarque : Seuls les membres de ce blogue sont autorisés à publier des commentaires.