Os dejo mi primer proyecto en arduino, comentado para torpes porque al principio he necesitado escribir
todo para volver a coger el hilo. No seáis muy crueles,hacia casi 16 años que no escribía código en serio.
Para lcd de 128x64.
#include <glcd.h>
#include "fonts/Arial14.h" // proportional font
#include "fonts/SystemFont5x7.h" // system font
#include "bitmaps/jankenpon.h" // bitmap
#include "bitmaps/piedra.h" // bitmap
#include "bitmaps/papel.h" // bitmap
#include "bitmaps/tijera.h" // bitmap
#include "bitmaps/nada.h" // bitmap
#include "bitmaps/win.h" // bitmap
#include "bitmaps/lose.h" // bitmap
int jugador;
int marcadorJugador = 0 ; //declaro marcadores
int marcadorMaquina = 0 ;//declaro marcadores
int maquina; //declaro decision de la maquina 0 1 o 2 que definire mas adelante
int zumbador = 12; //declaro zumbador a la salida 12
void setup ()
{
GLCD.Init(NON_INVERTED); // initialise the library
GLCD.SelectFont(System5x7); // select fixed width system font
pinMode(zumbador, OUTPUT); //declaro el zumbador como salida
GLCD.DrawBitmap(jankenpon, 0,0, BLACK); // pinta en pantalla el logo del jan ken pon
delay(2000);
GLCD.ClearScreen();
digitalWrite (zumbador,LOW);// apago el zumbador
}
void loop(){
GLCD.CursorTo(0,0);
GLCD.Puts("PLAYER=");
GLCD.PrintNumber(marcadorJugador);
GLCD.CursorTo(11,0);
GLCD.Puts("ARDUINO=");
GLCD.PrintNumber(marcadorMaquina);
if (marcadorJugador==3){
GLCD.ClearScreen();
GLCD.DrawBitmap(win, 0,0, BLACK); //ganaste!
delay(1000);
return;
}
else if (marcadorMaquina==3){
GLCD.ClearScreen();
GLCD.DrawBitmap(lose, 0,0, BLACK); // perdiste!
delay(1000);
return;
}
else{
maquina=random(0, 3); //numero aleatorio del 0 al 2
jugador=40;
delay(1000);
comienzoJuego();
delay(1000);
deteccionBoton();
delay(1000);
comprobarEstados();
delay(1000);
}
}
void comienzoJuego(){// comienza ciclo de 3 pitidos de la cancion y las palabras en la pantalla
GLCD.CursorTo(0,7); // positon cursor
GLCD.Puts(" "); //escribir en la pantalla "JAN"
GLCD.DrawBitmap(nada, 10,10, BLACK);
GLCD.DrawBitmap(nada, 70,10, BLACK);
digitalWrite (zumbador,HIGH);
GLCD.CursorTo(8,7); // positon cursor
GLCD.Puts("JAN!"); //escribir en la pantalla "JAN"
digitalWrite (zumbador,LOW);// apago el zumbador
delay(1000);//espera segundos
digitalWrite (zumbador,HIGH);
GLCD.CursorTo(8,7); // positon cursor
GLCD.Puts("KEN!"); //escribir en la pantalla "KEN"
digitalWrite (zumbador,LOW);// apago el zumbador
delay(1000);//espera segundos
digitalWrite (zumbador,HIGH);
GLCD.CursorTo(8,7); // positon cursor
GLCD.Puts("PON!"); //escribir en la pantalla "PON"
digitalWrite (zumbador,LOW);// apago el zumbador
delay(1000);//espera segundos
GLCD.CursorTo(7,7); // positon cursor
GLCD.Puts("LET´S GO!"); //escribir en la pantalla "A JUGAR!!"
delay(1000);//espera segundos
}
void deteccionBoton(){ // comienza deteccion de entradas
if (digitalRead(2)==HIGH)
{
jugador = 0;
GLCD.DrawBitmap(piedra, 10,10, BLACK); // pinta en pantalla el logo del jan ken pon
}
else if (digitalRead(3)==HIGH)
{
jugador = 1;
GLCD.DrawBitmap(papel, 10,10, BLACK); // pinta en pantalla el logo del jan ken pon
}
else if (digitalRead(4)==HIGH)
{
jugador = 2;
GLCD.DrawBitmap(tijera, 10,10, BLACK); // pinta en pantalla el logo del jan ken pon
}
}
void comprobarEstados (){
GLCD.CursorTo(0,7); // positon cursor
GLCD.Puts(" "); //escribir en la pantalla "JAN"
if (jugador==40){
GLCD.CursorTo(0,7); // positon cursor
GLCD.Puts("PLEASE, PUSH A BUTTON"); //
}
else if (jugador==0 && maquina==0){ // si piedra es nulo y maquina
GLCD.DrawBitmap(piedra, 70,10, BLACK); // pinta en pantalla el logo del jan ken pon
delay (500);
GLCD.CursorTo(8,7); // positon cursor
GLCD.Puts("DRAW"); // imprime en pantalla "EMPATE!"
}
else if(jugador==0 && maquina==1){
GLCD.DrawBitmap(papel, 70,10, BLACK); // pinta en pantalla el logo del jan ken pon
delay (500);
GLCD.CursorTo(7,7); // positon cursor
GLCD.Puts("YOU LOSE"); // imprime en pantalla "PIERDES!"
marcadorMaquina= marcadorMaquina + 1;//actualizo marcadores
}
else if(jugador==0 && maquina==2){
GLCD.DrawBitmap(tijera, 70,10, BLACK); // pinta en pantalla el logo del jan ken pon
delay (500);
GLCD.CursorTo(7,7); // positon cursor
GLCD.Puts("YOU WIN"); // imprime en pantalla "GANAS!"
marcadorJugador= marcadorJugador + 1; //actualizo marcadores
}
else if(jugador==1 && maquina==0){
GLCD.DrawBitmap(piedra, 70,10, BLACK); // pinta en pantalla el logo del jan ken pon
delay (500);
GLCD.CursorTo(7,7); // positon cursor
GLCD.Puts("YOU WIN"); // imprime en pantalla "GANAS!"
marcadorJugador= marcadorJugador + 1; //actualizo marcadores
}
else if(jugador==1 && maquina==1){
GLCD.DrawBitmap(papel, 70,10, BLACK); // pinta en pantalla el logo del jan ken pon
delay (500);
GLCD.CursorTo(8,7); // positon cursor
GLCD.Puts("DRAW"); // imprime en pantalla "EMPATE!"
}
else if(jugador==1 && maquina==2){
GLCD.DrawBitmap(tijera, 70,10, BLACK); // pinta en pantalla el logo del jan ken pon
delay (500);
GLCD.CursorTo(7,7); // positon cursor
GLCD.Puts("YOU LOSE"); // imprime en pantalla "PIERDES!"
marcadorMaquina= marcadorMaquina + 1;//actualizo marcadores
}
else if(jugador==2 && maquina==0){
GLCD.DrawBitmap(piedra, 70,10, BLACK); // pinta en pantalla el logo del jan ken pon
delay (500);
GLCD.CursorTo(7,7); // positon cursor
GLCD.Puts("YOU LOSE"); // imprime en pantalla "PIERDES!"
marcadorMaquina= marcadorMaquina + 1;//actualizo marcadores
}
else if(jugador==2 && maquina==1){
GLCD.DrawBitmap(papel, 70,10, BLACK); // pinta en pantalla el logo del jan ken pon
delay (500);
GLCD.CursorTo(7,7); // positon cursor
GLCD.Puts("YOU WIN"); // imprime en pantalla "GANAS!"
marcadorJugador= marcadorJugador + 1; //actualizo marcadores
}
else if(jugador==2 && maquina==2){
GLCD.DrawBitmap(tijera, 70,10, BLACK); // pinta en pantalla el logo del jan ken pon
delay (500);
GLCD.CursorTo(8,7); // positon cursor
GLCD.Puts("DRAW"); // imprime en pantalla "EMPATE!"
}
}
Os dejo los archivos ".h" por si queréis compilarlo.
http://rapidshare.com/files/438352101/jan_ken_pon_103.zip