jueves, 15 de marzo de 2018

JUEGO AHORCADO

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