viernes, 12 de mayo de 2017

Proyecto snake

Aquí os dejo el proyecto que más tarde hemos realizado ya que es una programación mucho mas laboriosa y por ello hemos tenido que buscar más información. En este juego se usa todo tiempo de estructuras en lo cual se demuestra lo aprendido a lo largo del curso.

Snake
Aquí os dejo el código:

int angulo=0;
int largura=5;
int tiempo=0;
int[] cabezax= new int[2500];
int[] cabezay= new int[2500];
int comidax=(round(random(47))+1)*8;
int comiday=(round(random(47))+1)*8;
boolean rehacer=true;
boolean terminar=false;
void setup()
{
  reiniciar();
  size(400,400);
  textAlign(CENTER);
}
void draw()
{
  if (terminar)
  {
  }
  else
  {
 
  tiempo+=1;
  fill(255,0,0);
  stroke(0);
  rect(comidax,comiday,8,8);
  fill(0);
  stroke(0);
  rect(0,0,width,8);
  rect(0,height-8,width,8);
  rect(0,0,8,height);
  rect(width-8,0,8,height);
 
  if ((tiempo % 5)==0)
  {
    desplazamiento();
    ampliar();
    muerte();
  }
  }
}
void keyPressed()
{
  if (key == CODED)
  {
 
    if (keyCode == UP && angulo!=270 && (cabezay[1]-8)!=cabezay[2])
    {
      angulo=90;
    }
    if (keyCode == DOWN && angulo!=90 && (cabezay[1]+8)!=cabezay[2])
    {
      angulo=270;
    }if (keyCode == LEFT && angulo!=0 && (cabezax[1]-8)!=cabezax[2])
    {
      angulo=180;
    }if (keyCode == RIGHT && angulo!=180 && (cabezax[1]+8)!=cabezax[2])
    {
      angulo=0;
    }
    if (keyCode == SHIFT)
    {
      reiniciar();
    }
  }
}
void desplazamiento()
{
  for(int i=largura;i>0;i--)
  {
    if (i!=1)
    {
      cabezax[i]=cabezax[i-1];
      cabezay[i]=cabezay[i-1];
    }
    else
    {
      switch(angulo)
      {
        case 0:
        cabezax[1]+=8;
        break;
        case 90:
        cabezay[1]-=8;
        break;
        case 180:
        cabezax[1]-=8;
        break;
        case 270:
        cabezay[1]+=8;
        break;
      }
    }
  }
 
}
void ampliar()
{
  if (cabezax[1]==comidax && cabezay[1]==comiday)
  {
    largura+=round(random(3)+1);
    rehacer=true;
    while(rehacer)
    {
      comidax=(round(random(47))+1)*8;
      comiday=(round(random(47))+1)*8;
      for(int i=1;i<largura;i++)
      {
       
        if (comidax==cabezax[i] && comiday==cabezay[i])
        {
          rehacer=true;
        }
        else
        {
          rehacer=false;
          i=1000;
        }
      }
    }
  }
  stroke(destello(1),destello(0),destello(.5));
  fill(0);
  rect(cabezax[1],cabezay[1],8,8);
  fill(255);
  rect(cabezax[largura],cabezay[largura],8,8);
 
}
void muerte()
{
  for(int i=2;i<=largura;i++)
  {
    if (cabezax[1]==cabezax[i] && cabezay[1]==cabezay[i])
    {
      fill(255);
      rect(125,125,160,100);
      fill(0);
      text("Has perdido",200,150);
      text("Para volver a jugar presione Shift.",200,200);
      terminar=true;
    }
    if (cabezax[1]>=(width-8) || cabezay[1]>=(height-8) || cabezax[1]<=0 || cabezay[1]<=0)
    {
      fill(255);
      rect(125,125,160,100);
      fill(0);
      text("HAS PERDIDO",200,150);
      text("Para volver a jugar presione Shift.",200,200);
      terminar=true;
    }
  }
}
void reiniciar()
{
  background(255);
  cabezax[1]=200;
  cabezay[1]=200;
  for(int i=2;i<1000;i++)
  {
    cabezax[i]=0;
    cabezay[i]=0;
  }
  terminar=false;
  comidax=(round(random(47))+1)*8;
  comiday=(round(random(47))+1)*8;
  largura=5;
  tiempo=0;
  angulo=0;
  rehacer=true;
}
float destello(float percent)
{
  float slime=(sin(radians((((tiempo +(255*percent)) % 255)/255)*360)))*255;
  return slime;
}


Los comandos del juego son los siguientes:
-El movimiento de la serpiente se realiza con las flechas del teclado.
-El juego consiste en coger el máximo número de cuadraditos rojos(representan manzanas). Estos aumentan el tamaño de la serpiente.
-Se pierde al tocar los lados de la pantalla.
















Proyecto ping-pong individual

Aquí os dejo parte del proyecto. Este juego lo realizamos inicialmente, por lo tanto es el mas simple. Conseguimos realizarlo buscando información en internet e implementando técnicas adquiridas a lo largo del curso como puede ser el uso del random a la hora de cambiar el color de la bola y el desplazable pulsando el tabulador.

Ping-pong individual

Y aquí os dejo el código:


float a,b,c;
int grosor=30;
int x,y,puntuacion=0;
int cambiarX=-5;
int cambiarY=-5;
int perdido=0;
void setup()
{
  size(800, 700);
  x=(int)random(width);
  y=height-grosor;
}
void draw()
{
  if(perdido==0)
  {
  background(24,120,85);
  fill(a,b,c);
  if (keyPressed){
  a = random (0,255);
  b = random (0,255);
  c = random (0,255);
}
  text("Puntuación:"+puntuacion+"00",width/2,height/2);
  rect(mouseX,height-grosor,200,grosor);
  ellipse(x,y,10,10);
  x=x+cambiarX;
  y=y+cambiarY;
  if(x<0 | x>width)
  {
    cambiarX=-cambiarX;
  }
  if(y<0)
  {
    cambiarY=-cambiarY;
  }
  if(y>height-grosor)
  {
   
    if(x>mouseX && x<mouseX+200)
    {
      cambiarY=-cambiarY;
      puntuacion++;
    }
    else
    {
      finjuego();
    }
  }
  }
  else
  {
    background(100,100,200);
    text("¡Has perdido!",width/2,height/2);
    text("Haz click para volver a jugar",width/2,height/2+20);
  }
}
void finjuego()
{
  perdido=1;
}
void mouseClicked()
{
  cambiarY=-cambiarY;
  puntuacion=0;
  perdido=0;
}

Proyecto

Hoy es el último día de clase en el cual he acabado el proyecto del snake y el ping-pong sigue en desarrollo. Esperamos terminarlo a tiempo.

Proyecto

Estos últimos días no he subido diario debido a que acabábamos muy justos de tiempo y no teníamos tiempo a subir una entrada en el blog. Hemos realizado el juego de ping-pong individual y a partir de este estamos desarrollando uno para dos jugadores. Ademas de esto hemos buscado informacion poco a poco y hemos conseguido confeccionar el juego del snake.

jueves, 4 de mayo de 2017

Proyecto

Alvaro y yo estamos realizando juegos en processing, mas concretamente el Ping Pong. Primero realizaremos uno individual ya que es mas simple y a continuación realizaremos el de dos jugadores.El comienzo del proyecto de dos jugadores se puede observar en el blog de Alvaro. Actualmente estamos pensando si nos dará tiempo a realizar algún juego mas o no.