Advertisement
Guest User

Untitled

a guest
Apr 19th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. int comprobacionEspacioParaBarco(int *t, int filas, int col, int iniFila, int iniCol, int tamBarco, int orientacion){
  2. //Función comprobacionEspacioParaBarco
  3. //INPUTS:
  4. // - tablero de barcos
  5. // - filas
  6. // - columnas
  7. // - posición (fila)
  8. // - posición (columna)
  9. // - tamaño del barco (1, 2 ó 3)
  10. // - orientación (0 horizontal, 1 vertical)
  11. //OUTPUTS: 1 si cabe, 0 si no cabe
  12. //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í.
  13. int comprobar;
  14. int i,j;
  15. switch(tamBarco){
  16. case 1:
  17. if(iniFila<0 || iniCol<0 || iniFila>=filas || iniCol>=col){
  18. comprobar=0;
  19. }
  20. if(*(t+iniFila*col+iniCol)!=0 || *(t+iniFila*col+iniCol)==filas || *(t+iniFila*col+iniCol)==col){
  21. comprobar=0;
  22. }else{
  23. comprobar=1;
  24. }
  25. break;
  26.  
  27. //Comprobamos espacio basrcos tamanyo 2
  28. case 2:
  29. if(iniFila<0 || iniCol<0 || iniFila>=filas || iniCol>=col){
  30. comprobar=0;
  31. }
  32. if(orientacion==0){
  33. for(i=0; i<1; i++){
  34. for(j=0; j<2; j++){
  35. if((*(t+iniFila*col+(iniCol+j))!=0) || (*(t+iniFila*col+(iniCol+j))==col)){
  36. comprobar=0;
  37. }else{
  38. comprobar=1;
  39. }
  40. }
  41. }
  42. }else{
  43. if(orientacion==1){
  44. for(i=0; i<2; i++){
  45. for(j=0; j<1; j++){
  46. if(*(t+(iniFila+i)*col+iniCol)!=0 || (*(t+(iniFila+i)*col+iniCol)==filas)){
  47. comprobar=0;
  48. }else{
  49. comprobar=1;
  50. }
  51. }
  52. }
  53. }
  54. }
  55. break;
  56.  
  57. //Comprobamos espacio barcos tamanyo 3
  58. case 3:
  59. if(iniFila<0 || iniCol<0 || iniFila>=filas || iniCol>=col){
  60. comprobar=0;
  61. }
  62. if(orientacion==0){
  63. for(i=0; i<1; i++){
  64. for(j=0; j<3; j++){
  65. if(*(t+iniFila*col+(iniCol+j))!=0 || (*(t+iniFila*col+(iniCol+j))==col) || (*(t+iniFila*col+(iniCol+j))==col+1)){
  66. comprobar=0;
  67. }else{
  68. comprobar=1;
  69. }
  70. }
  71. }
  72. }else{
  73. if(orientacion==1){
  74. for(i=0; i<3; i++){
  75. for(j=0; j<1; j++){
  76. if(*(t+(iniFila+i)*col+iniCol)!=0 || (*(t+(iniFila+i)*col+iniCol)==filas) || (*(t+(iniFila+i)*col+iniCol)==filas+1)){
  77. comprobar=0;
  78. }else{
  79. comprobar=1;
  80. }
  81. }
  82. }
  83. }
  84. }
  85. break;
  86. }
  87. return comprobar;
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement