Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int comprobacionEspacioParaBarco(int *t, int filas, int col, int iniFila, int iniCol, int tamBarco, int orientacion){
- //Función comprobacionEspacioParaBarco
- //INPUTS:
- // - tablero de barcos
- // - filas
- // - columnas
- // - posición (fila)
- // - posición (columna)
- // - tamaño del barco (1, 2 ó 3)
- // - orientación (0 horizontal, 1 vertical)
- //OUTPUTS: 1 si cabe, 0 si no cabe
- //Comprueba si cabe un barco a partir de la posición indicada en la orientación indicada. Devuelve 0 si no cabe, 1 si sí.
- int comprobar;
- int i,j;
- switch(tamBarco){
- case 1:
- if(iniFila<0 || iniCol<0 || iniFila>=filas || iniCol>=col){
- comprobar=0;
- }
- if(*(t+iniFila*col+iniCol)!=0 || *(t+iniFila*col+iniCol)==filas || *(t+iniFila*col+iniCol)==col){
- comprobar=0;
- }else{
- comprobar=1;
- }
- break;
- //Comprobamos espacio basrcos tamanyo 2
- case 2:
- if(iniFila<0 || iniCol<0 || iniFila>=filas || iniCol>=col){
- comprobar=0;
- }
- if(orientacion==0){
- for(i=0; i<1; i++){
- for(j=0; j<2; j++){
- if((*(t+iniFila*col+(iniCol+j))!=0) || (*(t+iniFila*col+(iniCol+j))==col)){
- comprobar=0;
- }else{
- comprobar=1;
- }
- }
- }
- }else{
- if(orientacion==1){
- for(i=0; i<2; i++){
- for(j=0; j<1; j++){
- if(*(t+(iniFila+i)*col+iniCol)!=0 || (*(t+(iniFila+i)*col+iniCol)==filas)){
- comprobar=0;
- }else{
- comprobar=1;
- }
- }
- }
- }
- }
- break;
- //Comprobamos espacio barcos tamanyo 3
- case 3:
- if(iniFila<0 || iniCol<0 || iniFila>=filas || iniCol>=col){
- comprobar=0;
- }
- if(orientacion==0){
- for(i=0; i<1; i++){
- for(j=0; j<3; j++){
- if(*(t+iniFila*col+(iniCol+j))!=0 || (*(t+iniFila*col+(iniCol+j))==col) || (*(t+iniFila*col+(iniCol+j))==col+1)){
- comprobar=0;
- }else{
- comprobar=1;
- }
- }
- }
- }else{
- if(orientacion==1){
- for(i=0; i<3; i++){
- for(j=0; j<1; j++){
- if(*(t+(iniFila+i)*col+iniCol)!=0 || (*(t+(iniFila+i)*col+iniCol)==filas) || (*(t+(iniFila+i)*col+iniCol)==filas+1)){
- comprobar=0;
- }else{
- comprobar=1;
- }
- }
- }
- }
- }
- break;
- }
- return comprobar;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement