Arduino Piedra, papel o tijera
Comentarios
En la programación de computadoras, un comentario es una explicación o anotación legible por el programador en el código fuente de un programa de computadora. Se agregan con el propósito de hacer que el código fuente sea más fácil de entender para los humanos y, por lo general, los compiladores e intérpretes los ignoran. La sintaxis de los comentarios en varios lenguajes de programación varía considerablemente.
TODO
Las etiquetas TODO son un tipo especial de comentario, que contienen información acerca de funcionalidades y características aún no implementadas en un programa informático.
Según la disponibilidad de tiempo y de recursos será probable que aparezcan en versiones futuras del programa, o en revisiones del proyecto.
Su nombre viene del inglés por To do ("por hacer").
while
Un bucle while se repetirá continuamente, e infinitamente, hasta que la expresión dentro del paréntesis, () se vuelva falsa. Algo debe cambiar la variable probada, o el ciclo while nunca saldrá.
Esto podría estar en su código, como una variable incrementada o una condición externa, como probar un sensor.
do while
Este bucle funciona de la misma manera que el ciclo while, con la excepción de que la condición se prueba al final del ciclo. , por lo que este tipo de bucle siempre se ejecutará al menos una vez.
Piedra, papel o tijera
Piedra, papel o tijera(s), es un juego infantil, un juego de manos en el que existen tres elementos: la piedra que vence a la tijera rompiéndola, la tijera que vence al papel cortándolo y el papel que vence a la piedra envolviéndola, dando lugar a un círculo o ciclo cerrado (véase bucle extraño), que caracteriza al juego. Se utiliza con mucha frecuencia para decidir quién de dos personas hará algo, tal y como se hace a veces usando una moneda, o para dirimir algún asunto.
Circuito
piedra_papel_tijera.ino //
// variables //
String inputString = ""; // a String to hold incoming data // TODO:
//bool stringComplete = false; // whether the string is complete bool conEmpate = true; // modo de juego
int humano, arduino; // piedra papel tijera int retardo = 2500;
//
// setup //
void setup() {
Serial.begin(9600);
//TODO: inputString.reserve(200);
randomSeed(analogRead(0));
//TODO: mostrarMenu();
} //
// loop //
void loop() {
// put your main code here, to run repeatedly:
jugar_humano();
jugar_arduino();
delay(retardo);
} //
// jugar_humano //
void jugar_humano() { humano = random(3);
switch (humano){
case 0:
inputString = "*";
break;
case 1:
inputString = "-";
break;
case 2:
inputString = "+";
break;
} }/*
*/
//
// jugar_arduino //
void jugar_arduino() { int cantidad = -1;
do{
arduino = random(3);
cantidad++;
} while ((!conEmpate)&&(humano==arduino));
if(cantidad){
Serial.print("Empate");
if(cantidad>1) Serial.print("s");
Serial.print(" ");
Serial.print(cantidad);
Serial.print(" -> ");
}
if (inputString=="*"){
Serial.print("Piedra");
// TODO:
//humano=0;
}
if (inputString=="-"){
Serial.print("Papel");
// TODO:
//humano=1;
}
if (inputString=="+"){
Serial.print("Tijera");
// TODO:
//humano=2;
}
Serial.print(" vs. ");
switch (arduino){
case 0:
Serial.print("Piedra");
break;
case 1:
Serial.print("Papel");
break;
case 2:
Serial.print("Tijera");
break;
}
Serial.print(" -> ");
/*
*/
if(humano==arduino) Serial.println("Empate");
else if(((humano==0) && (arduino==1)) || ((humano==1) && (arduino==2)) || ((humano==2)
&& (arduino==0)))
Serial.println("Arduino gana");
else
Serial.println("Suerte de principiante");
Serial.println("\n");
} //
// preferencias //
/* TODO:
void preferencias() { conEmpate=!conEmpate;
Serial.println("\n");
}*/
//
// mostrarMenu //
/* TODO:
void mostrarMenu() {
Serial.print("Piedra, papel o tijera. Arduino\n\n/ -> ");
if (conEmpate) Serial.print("Co");
else
Serial.print("Si");
Serial.println("n empate\n* -> Piedra\n- -> Papel\n+ -> Tijera\n");
}*/
/*
SerialEvent occurs whenever a new data comes in the hardware serial RX. This routine is run between each time loop() runs, so using delay inside loop can delay response. Multiple bytes of data may be available.
*/
/* TODO:
void serialEvent() {
while (Serial.available()) {
char inChar = (char)Serial.read();
if (inChar != '\n') { inputString += inChar;
}else{
stringComplete = true;
} } }*/
Consigna
Subir a la página de la EIS, un documento con carátula y código fuente del programa dado como ejemplo pero; modificado de manera tal que el mismo sea interactivo, cuyo nombre sea el/los apellido/s completo/s seguido de la/s inicial/es de su/s nombre/s, en formato .pdf.
Cibergrafía Comentarios
https://en.wikipedia.org/wiki/Comment_(computer_programming) TODO
https://es.wikipedia.org/wiki/TODO while
https://www.arduino.cc/reference/en/language/structure/control-structure/while/
do while
https://www.arduino.cc/reference/en/language/structure/control-structure/dowhile/
Piedra, papel o tijera
https://en.wikipedia.org/wiki/Rock_paper_scissors Circuito
https://docs.arduino.cc/built-in-examples/communication/SerialEvent BlinkWithoutDelay
https://www.arduino.cc/en/Tutorial/BuiltInExamples/BlinkWithoutDelay