VIDAS, GANASTE Y PERDISTE
UNIDAD EDUCATIVA PARTICULAR “POLITÉCNICO”
2do AÑO
- 2° AÑO DE BACHILLERATO “A”
TAREA # 1 –
VIDAS, GANASTE Y PERDISTE
VIDAS, GANASTE Y PERDISTE
Nombre: Geanela Gliser Borbor Espinales Fecha: 01/10/17
VIDAS, GANASTE Y PERDISTE
Publicación
en el blog de Informática con una completa redacción de la actividad
realizada durante la clase, conclusiones, aprendizajes, imágenes,
videos, código, etc.
durante las demas clases, luego de hacer la practica de puntos de dos digitos tuvimos que hacer que un led se encienda luego de comletar el numero asignado de puntos que son 20, de este modo hacer se prenda un led de un color que se le designe para ganar por ende se tuvo que hacer una configuración para que el led se prenda y tambien se le tuvo que asignar un pin en el arduino, los materiales que se usaron fueron un led, una resistencia de 220 ohmios, cables macho macho, luego de hacer la coneccion se hace la programacion, y lo que se debio agregar en la progracion anterir es lo que a continuacion esta pintado en negrita:
boolean comido = false;
long comidaX;
long comidaY;
int ladoy = A0;
int ladox = A1;
int valor1;
int valor2;
int posX = 5;
int posY = 13;
int direccion = 0;
int punto = 20;
int vidas=3;
long time;
void setup() {
//PINES DEL 2 AL 19 COMO SALIDA
for (int j = 2; j <= 17; j++)
pinMode(j, OUTPUT);
//APAGO LOS PINES LOS POSITIVOS LES MANDO LOW Y LOS NEGATIVOS LES MANDO HIGH
for (int j = 10; j <= 17; j++) {
pinMode(j, OUTPUT);
digitalWrite(j, HIGH);
}
/*display 1 */
pinMode(18, OUTPUT); //5
pinMode(19, OUTPUT);//6
pinMode(22, OUTPUT);//7
pinMode(25, OUTPUT);//8
pinMode(24, OUTPUT);//9
pinMode(20, OUTPUT);//10
pinMode(21, OUTPUT);//11
for (int i = 18; i <= 25; i++) {
digitalWrite(i,1);
}
/*display 2 */
pinMode(26, OUTPUT); //5
pinMode(27, OUTPUT);//6
pinMode(28, OUTPUT);//7
pinMode(29, OUTPUT);//8
pinMode(30, OUTPUT);//9
pinMode(31, OUTPUT);//10
pinMode(32, OUTPUT);//11
for (int i = 26; i <= 32; i++) {
digitalWrite(i,1);
}
//digitalWrite(posX, HIGH);
//digitalWrite(posY, LOW);
randomSeed(analogRead(A3));
direccion = 0;
posX = 5;
posY = 13;
time = 0;
generarComida();
}
void display (int a, int b, int c, int d, int e, int f, int g) {
digitalWrite(18,a); //5
digitalWrite(19,b); //6
digitalWrite(20,c); //7
digitalWrite(21,d);//8
digitalWrite(22,e);//9
digitalWrite(24,f);//10
digitalWrite(25,g);//11
}
void displayDos (int a, int b, int c, int d, int e, int f, int g) {
digitalWrite(28,a); //5
digitalWrite(32,b); //6
digitalWrite(26,c); //7
digitalWrite(27,d);//8
digitalWrite(30,e);//9
digitalWrite(31,f);//10
digitalWrite(29,g);//11
}
void loop() {
digitalWrite(34, LOW);
if(punto>=20)
{
digitalWrite(34, HIGH);
}
digitalWrite(posX, HIGH);
digitalWrite(posY, LOW);
digitalWrite(posX, LOW);
digitalWrite(posY, HIGH);
digitalWrite(comidaX, HIGH);
digitalWrite(comidaY, LOW);
digitalWrite(comidaX, LOW);
digitalWrite(comidaY, HIGH);
if(millis() >= time+150){
valor1 = analogRead(ladox);
valor2 = analogRead(ladoy);
time = millis();
if (valor1 > 700) {
direccion = 0;
} else {
if (valor1 < 400)
direccion = 1;
}
if (valor2 > 700) {
direccion = 2;
} else {
if (valor2 < 400)
direccion = 3;
}
if (direccion == 0) {
if (posX == 9)
posX = 2;
else
posX++;//posX = posX + 1;
} else {
if (direccion == 1) {
if (posX == 2)
posX = 9;
else
posX--;//posX = posX - 1;
}
}
if (direccion == 2) {
if (posY == 17)
posY = 10;
else
posY++;
} else {
if (direccion == 3) {
if (posY == 10)
posY = 17;
else
posY--;
}
}
if (comido == true) {
punto++;
generarComida();
}
//prendo el led comida
//digitalWrite(comidaX, HIGH);
//digitalWrite(comidaY, LOW);
switch (punto) {
case 0:
display (1,1,1,1,1,1,0);//0
displayDos (0,0,0,0,0,0,0);//0
break;
case 1:
display (0,1,1,0,0,0,0);//1
displayDos (0,0,0,0,0,0,0);//0
break;
case 2:
display (1,1,0,1,1,0,1);//2
displayDos (0,0,0,0,0,0,0);//0
break;
case 3:
display (1,1,1,1,0,0,1);//3
displayDos (0,0,0,0,0,0,0);//0
break;
case 4:
display (0,1,1,0,0,1,1);//4
displayDos (0,0,0,0,0,0,0);//0
break;
case 5:
display (1,0,1,1,0,1,1);//5
displayDos (0,0,0,0,0,0,0);//0
break;
case 6:
display (1,0,1,1,1,1,1);//6
displayDos (0,0,0,0,0,0,0);//0
break;
case 7:
display (1,1,1,0,0,0,0);//7
displayDos (0,0,0,0,0,0,0);//0
break;
case 8:
display (1,1,1,1,1,1,1);//8
displayDos (0,0,0,0,0,0,0);//0
break;
case 9:
display (1,1,1,1,0,1,1);//9
displayDos (0,0,0,0,0,0,0);//0
break;
case 10:
display (0,1,1,0,0,0,0);//1
displayDos (1,1,1,1,1,1,0);//0
break;
case 11:
display (0,1,1,0,0,0,0);//1
displayDos (1,1,0,0,0,0,0);//1
case 12:
display (0,1,1,0,0,0,0);//1
displayDos (0,1,1,1,1,0,1);//2
break;
case 13:
display (0,1,1,0,0,0,0);//1
displayDos (1,1,0,1,1,0,1);//3
break;
case 14:
display (0,1,1,0,0,0,0);//1
displayDos (1,1,0,0,0,1,1);//4
break;
case 15:
display (0,1,1,0,0,0,0);//1
displayDos (1,0,0,1,1,1,1);//5
break;
case 16:
display (0,1,1,0,0,0,0);//1
displayDos (1,0,1,1,1,1,1);//6
break;
case 17:
display (0,1,1,0,0,0,0);//1
displayDos (1,1,0,0,1,0,0);//7
break;
case 18:
display (0,1,1,0,0,0,0);//1
displayDos (1,1,1,1,1,1,1);//8
break;
case 19:
display (0,1,1,0,0,0,0);//1
displayDos (1,1,0,1,1,1,1);//9
break;
case 20:
display (1,1,0,1,1,0,1);//2
displayDos (1,1,1,1,1,1,0);//0
break;
}
if (posX == comidaX && posY == comidaY) {
comido = true;
}
}
}
void generarComida() {
do {
comidaX = random(2, 9);
} while (comidaX == posX);
do {
comidaY = random(10, 17);
} while (comidaY == posY);
comido = false;
}
long comidaX;
long comidaY;
int ladoy = A0;
int ladox = A1;
int valor1;
int valor2;
int posX = 5;
int posY = 13;
int direccion = 0;
int punto = 20;
int vidas=3;
long time;
void setup() {
//PINES DEL 2 AL 19 COMO SALIDA
for (int j = 2; j <= 17; j++)
pinMode(j, OUTPUT);
//APAGO LOS PINES LOS POSITIVOS LES MANDO LOW Y LOS NEGATIVOS LES MANDO HIGH
for (int j = 10; j <= 17; j++) {
pinMode(j, OUTPUT);
digitalWrite(j, HIGH);
}
/*display 1 */
pinMode(18, OUTPUT); //5
pinMode(19, OUTPUT);//6
pinMode(22, OUTPUT);//7
pinMode(25, OUTPUT);//8
pinMode(24, OUTPUT);//9
pinMode(20, OUTPUT);//10
pinMode(21, OUTPUT);//11
for (int i = 18; i <= 25; i++) {
digitalWrite(i,1);
}
/*display 2 */
pinMode(26, OUTPUT); //5
pinMode(27, OUTPUT);//6
pinMode(28, OUTPUT);//7
pinMode(29, OUTPUT);//8
pinMode(30, OUTPUT);//9
pinMode(31, OUTPUT);//10
pinMode(32, OUTPUT);//11
for (int i = 26; i <= 32; i++) {
digitalWrite(i,1);
}
//digitalWrite(posX, HIGH);
//digitalWrite(posY, LOW);
randomSeed(analogRead(A3));
direccion = 0;
posX = 5;
posY = 13;
time = 0;
generarComida();
}
void display (int a, int b, int c, int d, int e, int f, int g) {
digitalWrite(18,a); //5
digitalWrite(19,b); //6
digitalWrite(20,c); //7
digitalWrite(21,d);//8
digitalWrite(22,e);//9
digitalWrite(24,f);//10
digitalWrite(25,g);//11
}
void displayDos (int a, int b, int c, int d, int e, int f, int g) {
digitalWrite(28,a); //5
digitalWrite(32,b); //6
digitalWrite(26,c); //7
digitalWrite(27,d);//8
digitalWrite(30,e);//9
digitalWrite(31,f);//10
digitalWrite(29,g);//11
}
void loop() {
digitalWrite(34, LOW);
if(punto>=20)
{
digitalWrite(34, HIGH);
}
digitalWrite(posX, HIGH);
digitalWrite(posY, LOW);
digitalWrite(posX, LOW);
digitalWrite(posY, HIGH);
digitalWrite(comidaX, HIGH);
digitalWrite(comidaY, LOW);
digitalWrite(comidaX, LOW);
digitalWrite(comidaY, HIGH);
if(millis() >= time+150){
valor1 = analogRead(ladox);
valor2 = analogRead(ladoy);
time = millis();
if (valor1 > 700) {
direccion = 0;
} else {
if (valor1 < 400)
direccion = 1;
}
if (valor2 > 700) {
direccion = 2;
} else {
if (valor2 < 400)
direccion = 3;
}
if (direccion == 0) {
if (posX == 9)
posX = 2;
else
posX++;//posX = posX + 1;
} else {
if (direccion == 1) {
if (posX == 2)
posX = 9;
else
posX--;//posX = posX - 1;
}
}
if (direccion == 2) {
if (posY == 17)
posY = 10;
else
posY++;
} else {
if (direccion == 3) {
if (posY == 10)
posY = 17;
else
posY--;
}
}
if (comido == true) {
punto++;
generarComida();
}
//prendo el led comida
//digitalWrite(comidaX, HIGH);
//digitalWrite(comidaY, LOW);
switch (punto) {
case 0:
display (1,1,1,1,1,1,0);//0
displayDos (0,0,0,0,0,0,0);//0
break;
case 1:
display (0,1,1,0,0,0,0);//1
displayDos (0,0,0,0,0,0,0);//0
break;
case 2:
display (1,1,0,1,1,0,1);//2
displayDos (0,0,0,0,0,0,0);//0
break;
case 3:
display (1,1,1,1,0,0,1);//3
displayDos (0,0,0,0,0,0,0);//0
break;
case 4:
display (0,1,1,0,0,1,1);//4
displayDos (0,0,0,0,0,0,0);//0
break;
case 5:
display (1,0,1,1,0,1,1);//5
displayDos (0,0,0,0,0,0,0);//0
break;
case 6:
display (1,0,1,1,1,1,1);//6
displayDos (0,0,0,0,0,0,0);//0
break;
case 7:
display (1,1,1,0,0,0,0);//7
displayDos (0,0,0,0,0,0,0);//0
break;
case 8:
display (1,1,1,1,1,1,1);//8
displayDos (0,0,0,0,0,0,0);//0
break;
case 9:
display (1,1,1,1,0,1,1);//9
displayDos (0,0,0,0,0,0,0);//0
break;
case 10:
display (0,1,1,0,0,0,0);//1
displayDos (1,1,1,1,1,1,0);//0
break;
case 11:
display (0,1,1,0,0,0,0);//1
displayDos (1,1,0,0,0,0,0);//1
case 12:
display (0,1,1,0,0,0,0);//1
displayDos (0,1,1,1,1,0,1);//2
break;
case 13:
display (0,1,1,0,0,0,0);//1
displayDos (1,1,0,1,1,0,1);//3
break;
case 14:
display (0,1,1,0,0,0,0);//1
displayDos (1,1,0,0,0,1,1);//4
break;
case 15:
display (0,1,1,0,0,0,0);//1
displayDos (1,0,0,1,1,1,1);//5
break;
case 16:
display (0,1,1,0,0,0,0);//1
displayDos (1,0,1,1,1,1,1);//6
break;
case 17:
display (0,1,1,0,0,0,0);//1
displayDos (1,1,0,0,1,0,0);//7
break;
case 18:
display (0,1,1,0,0,0,0);//1
displayDos (1,1,1,1,1,1,1);//8
break;
case 19:
display (0,1,1,0,0,0,0);//1
displayDos (1,1,0,1,1,1,1);//9
break;
case 20:
display (1,1,0,1,1,0,1);//2
displayDos (1,1,1,1,1,1,0);//0
break;
}
if (posX == comidaX && posY == comidaY) {
comido = true;
}
}
}
void generarComida() {
do {
comidaX = random(2, 9);
} while (comidaX == posX);
do {
comidaY = random(10, 17);
} while (comidaY == posY);
comido = false;
}

En conclusión, para reañizar este tipo de programacion se debe asignar en un punto en especifico a un ganador ya que no se a a mantener todo un siempre a un ganador por ende se debe asignar hasta cuantos puntos, en este caso hasta 20 puntos donde se prendera un led, se nos hizo un pco complicado porque nos habiamos olvidado como conectar un led y la miss nos volvio a recordar de que manera y que patita correspondia a positivo o negativo. ademas de que para saber programar debemos tener bien en claro a cuales pines esta coenctado tal dispositivo para no tener confusion al poner la programacion y luego tenemos que cambiar de nuevo todo.
Comentarios
Publicar un comentario