// Definimos constantes para el primer led RGB
#define led1Rojo 3
#define led1Verde 5
#define led1Azul 6
// Definimos constantes para el segundo led RGB
#define led2Rojo 9
#define led2Verde 10
#define led2Azul 11
// Almacena el valor de nuestra elección
char MiOpcion;
// Almacena el valor de la elección de Arduino
int respuestaArduino;
void setup(){ // Inicio setup()
// Estableciendo puertos como salida para el primer led RGB
pinMode(led1Rojo, OUTPUT);
pinMode(led1Verde, OUTPUT);
pinMode(led1Azul, OUTPUT);
// Estableciendo puertos como salida para el segundo led RGB
pinMode(led2Rojo, OUTPUT);
pinMode(led2Verde, OUTPUT);
pinMode(led2Azul, OUTPUT);
// Inicia la conexión serial a una velocidad de 9600 bits por segundo
Serial.begin(9600);
//Imprime en pantalla los siguientes mensajes
Serial.println("Arduino te da la bienvenida listo para jugar, empecemos!!");
Serial.println("Introduce 0 para elegir piedra, 1 para papel o 2 para tijera");
}// Fin setup()
void loop(){ // Inicio loop()
//Verifica si hay datos disponibles para leer
if(Serial.available() > 0){
// Lee el dato entrante y lo asigna a variable MiOpción
MiOpcion = Serial.read();
Serial.println("");
if(MiOpcion == '0'){ // Código para piedra
Serial.println("Has elegido piedra");
verMiOpcion(1, 0, 0);
respuestaArduino = opcionArduino();
// Realiza una espera de 1 segundos antes de mostrar al ganador
delay(2000);
Serial.println("");
if(respuestaArduino == 0) {
Serial.println("Has sido un empate ninguno gana!!");
}
if(respuestaArduino == 1) {
Serial.println("El papel cubre la piedra arduino gana!!");
verMiOpcion(0, 0, 0); // perdedor
verOpcionArduino(255, 255, 255); //ganador
}
if(respuestaArduino == 2) {
Serial.println("La piedra rompe las tijeras tu ganas!!");
verMiOpcion(1, 1, 1); // ganador
verOpcionArduino(0, 0, 0); // perdedor
}
} // Fin del Código piedra
// Espacio para el código papel
// Espacio para el código tijera
} // Fin de la verificación
} // Fin loop()
void verMiOpcion(int Rojo, int Verde, int Azul){
digitalWrite(led1Rojo, Rojo);
digitalWrite(led1Verde, Verde);
digitalWrite(led1Azul, Azul);
}
int opcionArduino(){
int aleatorio = random(0,2);
if(aleatorio == 0){
Serial.println("Arduino ha elegido piedra");
verOpcionArduino(255,0,0);
}
if(aleatorio == 1){
Serial.println("Arduino ha elegido papel");
verOpcionArduino(0,255,0);
}
if(aleatorio == 2){
Serial.println("Arduino ha elegido tijera");
verOpcionArduino(0,0,255);
}
// esta función devuelve la elección de arduino
// esta es asignada la variable respuestaArduino
return aleatorio;
}
void verOpcionArduino(int Rojo, int Verde, int Azul){
analogWrite(led2Rojo, Rojo);
analogWrite(led2Verde, Verde);
analogWrite(led2Azul, Azul);
}
Y este es el que he hecho yo (ESTE SÍ QUE LO PUEDES COPIAR) : EmojiEmojiEmojiEmoji
//Gracias a la página
http://www.cristalab.com/tutoriales/prog...-c114067l/
//Sirve bastante, pues solo te da el código para piedra y los otros los tienes que hacer tú, lo que te permite aprender.
//Hay que hacer algunos/bastantes ajustes a partir del código de la página.
//0=PIEDRA=ROJO
//1=PAPEL=VERDE
//2=TIJERAS=AZUL
// Definimos constantes para el primer led RGB
#define led1Rojo 3
#define led1Verde 5
#define led1Azul 6
// Definimos constantes para el segundo led RGB
#define led2Rojo 9
#define led2Verde 10
#define led2Azul 11
// Almacena el valor de nuestra elección
char MiOpcion;
// Almacena el valor de la elección de Arduino
int respuestaArduino;
void setup(){ // Inicio setup()
// Estableciendo puertos como salida para el primer led RGB
pinMode(led1Rojo, OUTPUT);
pinMode(led1Verde, OUTPUT);
pinMode(led1Azul, OUTPUT);
// Estableciendo puertos como salida para el segundo led RGB
pinMode(led2Rojo, OUTPUT);
pinMode(led2Verde, OUTPUT);
pinMode(led2Azul, OUTPUT);
// Inicia la conexión serial a una velocidad de 9600 bits por segundo
Serial.begin(9600);
//Imprime en pantalla los siguientes mensajes
Serial.println("Arduino te da la bienvenida listo para jugar, empecemos!!");
Serial.println("Introduce 0 para elegir piedra, 1 para papel o 2 para tijera");
}// Fin setup()
void loop(){ // Inicio loop()
//Verifica si hay datos disponibles para leer
if(Serial.available() > 0){
// Lee el dato entrante y lo asigna a variable MiOpción
MiOpcion = Serial.read();
Serial.println("");
if(MiOpcion == '0'){ // Código para piedra
Serial.println("Has elegido piedra");
verMiOpcion(255, 0, 0);
respuestaArduino = opcionArduino();
// Realiza una espera de 1 segundos antes de mostrar al ganador
delay(2000);
Serial.println("");
if(respuestaArduino == 0) {
Serial.println("Has sido un empate ninguno gana!!");
}
if(respuestaArduino == 1) {
Serial.println("El papel cubre la piedra arduino gana!!");
verMiOpcion(0, 0, 0); // perdedor
verOpcionArduino(255, 255, 255); //ganador
}
if(respuestaArduino == 2) {
Serial.println("La piedra rompe las tijeras tu ganas!!");
verMiOpcion(255,255,255); // ganador
verOpcionArduino(0, 0, 0); // perdedor
}
} // Fin del Código piedra
if(MiOpcion == '1'){// Espacio para el código papel
Serial.println("Has elegido papel");
verMiOpcion(0,255,0);
respuestaArduino=opcionArduino();
//Realiza una espera de 2s. antes de mostrar al ganador
delay(2000);
Serial.println("");
if(respuestaArduino == 0){
Serial.println("El papel cubre a la piedra.Tu ganas!");
verMiOpcion(255,255,255); //ganador
verOpcionArduino(0,0,0); //perdedor
}
if(respuestaArduino == 1){
Serial.println("Ha sido un empate.Ninguno gana!");
}
if(respuestaArduino == 2){
Serial.println("Las tijeras cortan papel.Arduino gana!");
verMiOpcion(0,0,0); //perdedor
verOpcionArduino(255,255,255); //ganador
}
} // Fin del Código para papel
if(MiOpcion == '2'){// Espacio para el código tijera
Serial.println("Has elegido tijeras");
verMiOpcion(0,0,255);
respuestaArduino=opcionArduino();
//Realiza una espera de 2s. antes de mostrar al ganador
delay(2000);
Serial.println("");
if(respuestaArduino == 0){
Serial.println("La piedra rompe las tijeras.Arduino gana!");
verMiOpcion(0,0,0); //perdedor
verOpcionArduino(255,255,255); //ganador
}
if(respuestaArduino == 1){
Serial.println("Las tijeras cortan el papel.Tu ganas!");
verMiOpcion(255,255,255); //ganador
verOpcionArduino(0,0,0); //perdedor
}
if(respuestaArduino == 2){
Serial.println("Ha sido un empate.Ninguno gana!");
}
} //Fin del código para papel
} // Fin de la verificación
} // Fin loop()
void verMiOpcion(int Rojo, int Verde, int Azul){
analogWrite(led1Rojo, 255-Rojo);
analogWrite(led1Verde, 255-Verde);
analogWrite(led1Azul, 255-Azul);
}
int opcionArduino(){
int aleatorio = random(0,3); //int aleatorio = random(min,max)
//int aleatorio = random(0,300)
//elegirá un número entre 0 y 300,
//es decir 0,1,2....297,298 y 299
//NO ELEGIRÁ EL 300
if(aleatorio == 0){
Serial.println("Arduino ha elegido piedra");
verOpcionArduino(255,0,0);
}
if(aleatorio == 1){
Serial.println("Arduino ha elegido papel");
verOpcionArduino(0,255,0);
}
if(aleatorio == 2){
Serial.println("Arduino ha elegido tijera");
verOpcionArduino(0,0,255);
}
// esta función devuelve la elección de arduino
// esta es asignada la variable respuestaArduino
return aleatorio;
}
void verOpcionArduino(int Rojo, int Verde, int Azul){
analogWrite(led2Rojo, 255-Rojo);
analogWrite(led2Verde, 255-Verde);
analogWrite(led2Azul, 255-Azul);
}