#include "LedControl.h"
LedControl lc=LedControl(12,10,11,2);
const int SW_pin = 2;
const int xpin = 0;
const int ypin = 1;
int filas=3, col=3;
int filaini = 0, colini = 0;
bool pintar = false;
bool check = 0;
bool barcos1[7][7];
bool barcos2[7][7];
bool tablero1[7][7];
bool tablero2[7][7];
void setup() {
pinMode(SW_pin, INPUT);
digitalWrite(SW_pin, HIGH);
Serial.begin(9600);
lc.shutdown(0,false);
lc.shutdown(1,false);
lc.setIntensity(0,8);
lc.setIntensity(1,8);
lc.clearDisplay(0);
lc.clearDisplay(1);
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
barcos1[i][j] = false;
barcos2[i][j] = false;
tablero1[i][j] = false;
tablero2[i][j] = false;
}
}
Serial.println("Jugador 1, coloca posición inicial de tu Portaaviones");
posicioninicial(barcos1);
orientacion(4,barcos1);
}
void loop(){
}
void orientacion(int longitud,bool jugador){
bool check = 0;
Serial.println("Elegir direccion con jostick");
while (check==0){
if (analogRead(xpin)>525){ //izquierda (aumentan las filas)
if ((filaini+longitud)<8){
for (int i=filaini+1,j=0; i<(filaini+longitud+1) && j==0,j=0;i++)//i es la fila, j es un check
{
bool isOn = jugador[colini][i];
if (isOn) {j=1;
check = 1; //Barco en esa posición, que se termine el codigo y diga que fallo
}
}
if (check = 0){
for (int i=filaini+1,j=0; i<(filaini+longitud+1) && j=0,j=0;i++)//i es la fila, j es un check
{
bool isOn = jugador[colini][i];
if (isOn) {j=1;
check = 1; //Barco en esa posición, que se termine el codigo y diga que fallo
}
}
Serial.print("Barco colocado");
check = 1; //izquierda
}
else{
Serial.print("Invalido");
check = 0;
}
}
else{
Serial.println("Invalido");
check=0;
}
}
else if (analogRead(xpin)>525){ //izquierda (aumentan las filas)
if ((filaini+longitud)<8){
for (int i=filaini+1,j=0; i<(filaini+longitud+1) && j=0,j=0;i++)//i es la fila, j es un check
{
bool isOn = jugador[colini][i];
if (isOn) {j=1;
check = 1; //Barco en esa posición, que se termine el codigo y diga que fallo
}
}
if (check = 0){
for (int i=filaini+1,j=0; i<(filaini+longitud+1) && j=0,j=0;i++)//i es la fila, j es un check
{
bool isOn = jugador[colini][i];
if (isOn) {j=1;
check = 1; //Barco en esa posición, que se termine el codigo y diga que fallo
}
}
Serial.print("Barco colocado");
check = 1; //izquierda
}
else{
Serial.print("Invalido");
check = 0;
}
}
else{
Serial.println("Invalido");
check=0;
}
}
}
}
void posicioninicial(bool jugador) {
int check = 0;
while (check==0){
if(digitalRead(SW_pin) == 0){
bool isOn = jugador[col][filas];
if (isOn) {
Serial.println("Ya hay un barco ahi");
check=0;
}
else{
filaini=filas;
colini=col;
check=1;}
}
else if(analogRead(xpin)>525 && filas<7){
lc.setLed(1,col,filas,false);
filas++;
lc.setLed(1,col,filas,true);
}
else if(analogRead(xpin)<510 && filas > 0){
lc.setLed(1,col,filas,false);
filas--;
lc.setLed(1,col,filas,true);
}
else if(analogRead(ypin)>520 && col > 0){
lc.setLed(1,col,filas,false);
col--;
lc.setLed(1,col,filas,true);
}
else if(analogRead(ypin)<500 && col < 7){
lc.setLed(1,col,filas,false);
col++;
lc.setLed(1,col,filas,true);
}
delay(100);
}
}