import ddf.minim.*;
import processing.serial.*;
import cc.arduino.*;
import org.firmata.*;
Arduino placa;
String puerto = "COM4";
boolean ahorcado = false, cabeza = false, cuerpo = false;
boolean brazo1 = false, brazo2 = false, pierna1 = false, pierna2 = false;
boolean ganador = false, perdedor = false, contError = false, contBuenas;
int cont = 0, cont2=0, contled = 0, contOpor = 6;
String caracter;
String cadena = "";
String cadena2;
char[] palabra;
char[] recolect;
Minim soundengine;
AudioSample sonido;
void setup(){
size(1070,450);
soundengine = new Minim(this);
sonido = soundengine.loadSample("1234.mp3",1024);
printArray(Arduino.list());
placa = new Arduino(this, puerto, 57600);
placa.pinMode(1, Arduino.OUTPUT);
placa.pinMode(2, Arduino.OUTPUT);
placa.pinMode(3, Arduino.OUTPUT);
placa.pinMode(4, Arduino.OUTPUT);
placa.pinMode(5, Arduino.OUTPUT);
placa.pinMode(6, Arduino.OUTPUT);
placa.pinMode(7, Arduino.OUTPUT);
placa.pinMode(8, Arduino.OUTPUT);
placa.pinMode(9, Arduino.OUTPUT);
placa.pinMode(10, Arduino.OUTPUT);
placa.pinMode(11, Arduino.OUTPUT);
placa.pinMode(12, Arduino.OUTPUT);
String[] words = {"Computador", "Ingenieria", "Memoriaram", "Processing" ,"Protoboard", "Arduinouno","Compuertas","Procesador","Analogicos","Servomotor"};
int index = int (random (words.length ));
caracter = words[index];
palabra = new char[caracter.length()];
recolect = new char[caracter.length()];
for ( int j = 0 ; j < caracter.length() ; j++ ){
palabra[j] = caracter.charAt(j);
}
}
void draw(){
fill(125,12,33);
noStroke();
rect(0,0,height*5,height);
fill(12,22,34);
rect(100,30,20,250);
rect(100,30,230,20);
rect(50,260,120,20);
fill(12,22,34);
rect(0,340,height*5,width);
fill(200,12,89);
rect(300,50,1,50);
/*1*/rect(45,400,80,5);
/*2*/rect(145,400,80,5);
/*3*/rect(245,400,80,5);
/*4*/rect(345,400,80,5);
/*5*/rect(445,400,80,5);
/*6*/rect(545,400,80,5);
/*7*/rect(645,400,80,5);
/*8*/rect(745,400,80,5);
/*9*/rect(845,400,80,5);
/*10*/rect(945,400,80,5);
// Palabras
textSize(50);
text(palabra[0],65,400);
text(recolect[1],165,400);
text(recolect[2],265,400);
text(recolect[3],365,400);
text(recolect[4],465,400);
text(recolect[5],565,400);
text(recolect[6],665,400);
text(recolect[7],765,400);
text(recolect[8],865,400);
text(recolect[9],965,400);
// ahorcado
if (cabeza){
fill(#ffffff);
ellipse(300,130,70,70);
stroke(0);
strokeWeight(3);
line(285,118,295,123);
line(295,118,285,123);
line(305,118,315,123);
line(315,118,305,123);
line(285,140,315,140);
noStroke();
}
if (cuerpo){
stroke(#ffffff);
strokeWeight(30);
line(300,180,300,210);
noStroke();
}
if (brazo1){
stroke(#ffffff);
strokeWeight(10);
line(280,180,276,200);
noStroke();
}
if (brazo2){
stroke(#ffffff);
strokeWeight(10);
line(320,180,324,200);
noStroke();
}
if (pierna1){
stroke(#ffffff);
strokeWeight(10);
line(295,230,293,260);
noStroke();
}
if (pierna2){
stroke(#ffffff);
strokeWeight(10);
line(305,230,307,260);
textSize(70);
noStroke();
}
if (ganador){
textSize(70);
fill(166,50,125);
text("Has ganado",500,200);
sonido.trigger();
}
if (perdedor){
text("Ahorcado",500,200);
}
if (contError){
textSize(20);
text("Errores : " + cont,500,50);
}
if (contBuenas){
textSize(20);
text("Aciertos : " + contled,703,70);
}
textSize(20);
text("Oportunidades : " + contOpor,500,70);
stroke(#7C4728);
strokeWeight(20);
line(113,218,155,268);
line(108,218,65,268);
line(113,103,185,43);
noStroke();
}
void keyPressed(){
if (perdedor){
key= ' ';
}
else{
if ((key+"").matches("[A-z]*")){
cadena = cadena + key;
letras();
}
else{
println("Caracter incorrecto");
contOpor = contOpor -1;
}
}
}
public void letras(){
recolect[0] = palabra[0];
if (cadena.length() < 10){
for (int i = 0; i <= cadena.length() - 1; i++){
recolect[i+1] = cadena.charAt(i);
if (cadena.length() == 9){
ganador = true;
}
}
cadena2 = palabra[0] + cadena;
for (int h = 0; h <= cadena.length(); h++){
if (palabra[h] == recolect [h]){
ahorcado = false;
}
else{
ahorcado = true;
}
}
partesDelCuerpo();
}
}
void partesDelCuerpo(){
if (ahorcado){
recolect[cadena.length()] = ' ';
cadena = cadena.substring(0,cadena.length()-1);
cont++;
contOpor = contOpor -1;
contError = true;
if (cont >= 1){
cabeza = true;
println("Dibujando la cabeza");
placa.analogWrite(11,58);
}
if (cont >= 2){
cuerpo = true;
println("Dibujando cuerpo");
placa.analogWrite(11,84);
}
if (cont >= 3){
brazo1 = true;
println("Dibujando el brazo 1");
placa.analogWrite(11,112);
}
if (cont >= 4){
brazo2 = true;
println("Dibujando el brazo 2");
placa.analogWrite(11,140);
}
if (cont >= 5){
pierna1 = true;
println("Dibujando la pierna 1");
placa.analogWrite(11,224);
}
if (cont >= 6){
pierna2 = true;
perdedor = true;
println("Dibujando la pierna 2");
placa.analogWrite(11,255);
}
}
else{
contled++;
contBuenas = true;
placa.digitalWrite(1,Arduino.HIGH);
if (contled >= 1){
placa.digitalWrite(2,Arduino.HIGH);
placa.digitalWrite(3,Arduino.HIGH);
}
if (contled >= 2){
placa.digitalWrite(4,Arduino.HIGH);
}
if (contled >= 3){
placa.digitalWrite(5,Arduino.HIGH);
}
if (contled >= 4){
placa.digitalWrite(6,Arduino.HIGH);
}
if (contled >= 5){
placa.digitalWrite(7,Arduino.HIGH);
}
if (contled >= 6){
placa.digitalWrite(8,Arduino.HIGH);
}
if (contled >= 7){
placa.digitalWrite(9,Arduino.HIGH);
}
if (contled >= 8){
placa.digitalWrite(10,Arduino.HIGH);
}
if (contled >= 9){
placa.digitalWrite(12,Arduino.HIGH);
}
}
}


No hay comentarios:
Publicar un comentario