Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * jogo_10.c
- *
- * Created on: 26/01/2014
- * Author: rodrigo
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <ctype.h>
- #include <time.h>
- void jogo_10() {
- int i; int j; int numTiro;int verificacao; int tipoDeBarco; char matrizU1[12][12]; int coluna; char matrizU2[12][12]; char matrizC1[12][12]; char matrizC2[12][12];time_t t;int blocosUtilizador; int blocosComputador;int xAnteriorComp; int yAnteriorComp; int barcoAfundado;
- blocosUtilizador=25;
- blocosComputador=25;
- srand((unsigned) time(&t));
- for(i=0;i<13;i++){
- for(j=0;j<13;j++){
- matrizU1[i][j] = '~';
- }
- }
- for(i=0;i<13;i++){
- for(j=0;j<13;j++){
- matrizU2[i][j] = '~';
- }
- }
- for(i=0;i<13;i++){
- for(j=0;j<13;j++){
- matrizC1[i][j] = '~';
- }
- }
- for(i=0;i<13;i++){
- for(j=0;j<13;j++){
- matrizC2[i][j] = '~';
- }
- }
- printf("grelha do humano\n");
- // numeração da coluna
- for(i=-1;i<10;i++){
- if(i == -1){
- printf("@ ");
- }else if(i < 9){
- printf("0 ");
- }else{
- printf("1 ");
- }
- }
- printf("\n");
- for(coluna=0;coluna<=10;coluna++){
- if(coluna == 0){
- printf("@");
- }else if(coluna<10){
- printf(" %d",coluna);
- }else{
- printf(" %d", coluna-10);
- }
- }
- printf("\n");
- char linha = 'A';
- for(i=1;i<11;i++){
- for(j=0;j<11;j++){
- if(j == 0){
- printf("%c", linha);
- linha++;
- }else{
- printf(" %c", matrizU1[i][j]);
- }
- }
- printf("\n");
- }
- printf("\n");
- printf("grelha inimiga\n");
- // numeração da coluna
- for(i=-1;i<10;i++){
- if(i == -1){
- printf("@ ");
- }else if(i < 9){
- printf("0 ");
- }else{
- printf("1 ");
- }
- }
- printf("\n");
- for(coluna=0;coluna<=10;coluna++){
- if(coluna == 0){
- printf("@");
- }else if(coluna<10){
- printf(" %d",coluna);
- }else{
- printf(" %d", coluna-10);
- }
- }
- printf("\n");
- linha = 'A';
- for(i=1;i<11;i++){
- for(j=0;j<11;j++){
- if(j == 0){
- printf("%c", linha);
- linha++;
- }else{
- printf(" %c", matrizU2[i][j]);
- }
- }
- printf("\n");
- }
- //inicio do jogo
- printf("vamos dar inicio ao jogo colocando os barcos\n\n");
- // introdução do porta aviões por parte do utilizador
- int contadorInterno; int x; int y; int posicao; char coord1;
- int nPortaAvioes;
- nPortaAvioes = 1;
- contadorInterno = 0;
- x=0;
- y=0;
- do {
- printf("introduza a coordenada do elemento principal do porta aviões\n");
- printf("x=");
- scanf("%s", &coord1);
- printf("y=");
- scanf("%d", &y);
- coord1=toupper(coord1);
- x=coord1-64;
- printf("Pretende virar o barco? Introduza 1 para direita, 2 para cima, 3 para esquerda ou 4 para baixo.\n");
- printf("%d %d %d", x, y, posicao);
- scanf("%d", &posicao);
- switch (posicao){ //////INICIO DO SWITCH DA POSIÇÃO
- case 1:{
- if (matrizU1[x][y] == '~' && matrizU1[x-1][y] == '~' && matrizU1[x+1][y] == '~' && matrizU1[x][y-1] == '~' && matrizU1[x][y+3] == '~' && matrizU1[x-1][y-1] == '~' && matrizU1[x-1][y+1] == '~' && matrizU1[x+1][y-1] == '~' && matrizU1[x+1][y+1] == '~' && matrizU1[x+1][y+2] == '~' && matrizU1[x-1][y+2] == '~' && matrizU1[x-1][y+3] == '~' && matrizU1[x+1][y+3] == '~' && matrizU1[x][y+1] == '~' && matrizU1[x][y+2] == '~' && matrizU1[x-2][y+1] == '~' && matrizU1[x-2][y] == '~' && matrizU1[x-2][y-1] == '~' && matrizU1[x+2][y-1] == '~' && matrizU1[x+2][y] == '~' && matrizU1[x+2][y+1] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1 && y+2 < 10 && x-1 >= 0 && x+1 <= 10 ){
- matrizU1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizU1[x][y+1] = 'O'; //cria o segundo componente do barco, virado para direita
- matrizU1[x][y+2] = 'O'; //cria o terceiro componente do barco, virado para direita
- matrizU1[x-1][y] = 'O'; //cria o quarto componente do barco, virado para direita
- matrizU1[x+1][y] = 'O'; //cria o quinto componente do barco, virado para direita
- contadorInterno = contadorInterno + 1;
- }else{
- printf("Coordenada inválida. Volte a introduzir.");
- }
- }
- break;
- case 2: {
- if (matrizU1[x][y] == '~' && matrizU1[x-3][y] == '~' && matrizU1[x+1][y] == '~' && matrizU1[x][y-1] == '~' && matrizU1[x][y+1] == '~' && matrizU1[x-1][y-1] == '~' && matrizU1[x-1][y+1] == '~' && matrizU1[x+1][y-1] == '~' && matrizU1[x+1][y+1] == '~' && matrizU1[x-2][y+1] == '~' && matrizU1[x-2][y-1] == '~' && matrizU1[x-3][y-1] == '~' && matrizU1[x-3][y+1] == '~' && matrizU1[x-1][y] == '~' && matrizU1[x-2][y] == '~' && matrizU1[x][y-2] == '~' && matrizU1[x][y+2] == '~' && matrizU1[x-1][y-2] == '~' && matrizU1[x-1][y+2] == '~' && matrizU1[x+1][y-2] == '~' && matrizU1[x+1][y+2] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1 && x-2 >= 1 && y-1 >= 1 && y+1 <= 10) {
- matrizU1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizU1[x-1][y] = 'O'; //cria o segundo componente do barco, virado para cima
- matrizU1[x-2][y] = 'O'; //cria o terceiro componente do barco, virado para cima
- matrizU1[x][y-1] = 'O'; //cria o quarto componente do barco, virado para cima
- matrizU1[x][y+1] = 'O'; //cria o quinto componente do barco, virado para cima
- contadorInterno = contadorInterno + 1;
- }else{
- printf("Coordenada inválida. Volte a introduzir.");
- }
- }
- break;
- case 3: {
- if (matrizU1[x][y] == '~' && matrizU1[x-1][y] == '~' && matrizU1[x+1][y] == '~' && matrizU1[x][y-3] == '~' && matrizU1[x][y+1] == '~' && matrizU1[x-1][y-1] == '~' && matrizU1[x-1][y+1] == '~' && matrizU1[x+1][y-1] == '~' && matrizU1[x+1][y+1] == '~' && matrizU1[x-1][y-2] == '~' && matrizU1[x+1][y-2] == '~' && matrizU1[x+1][y-3] == '~' && matrizU1[x-1][y-3] == '~' && matrizU1[x][y-1] == '~' && matrizU1[x][y-2] == '~' && matrizU1[x+2][y] == '~' && matrizU1[x+2][y-1] == '~' && matrizU1[x+2][y-1] == '~' && matrizU1[x-2][y-1] == '~' && matrizU1[x-2][y] == '~' && matrizU1[x-2][y+1] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1 && y-2 >= 1 && x-1 >= 1 && x+1 <= 10) {
- matrizU1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizU1[x][y-1] = 'O'; //cria o segundo componente do barco, virado para esquerda
- matrizU1[x][y-2] = 'O'; //cria o terceiro componente do barco, virado para esquerda
- matrizU1[x-1][y] = 'O'; //cria o quarto componente do barco, virado para esquerda
- matrizU1[x+1][y] = 'O'; //cria o quinto componente do barco, virado para esquerda
- contadorInterno = contadorInterno + 1;
- }else {
- printf("Coordenada inválida. Volte a introduzir.");
- }
- }
- break;
- case 4: {
- if (matrizU1[x][y] == '~' && matrizU1[x-1][y] == '~' && matrizU1[x+3][y] == '~' && matrizU1[x][y-1] == '~' && matrizU1[x][y+1] == '~' && matrizU1[x-1][y-1] == '~' && matrizU1[x-1][y+1] == '~' && matrizU1[x+1][y-1] == '~' && matrizU1[x+1][y+1] == '~' && matrizU1[x+2][y-1] == '~' && matrizU1[x+2][y+1] == '~' && matrizU1[x+3][y-1] == '~' && matrizU1[x+3][y+1] == '~' && matrizU1[x+1][y] == '~' && matrizU1[x+2][y] == '~' && matrizU1[x][y-2] == '~' && matrizU1[x-1][y-1] == '~' && matrizU1[x+1][y-2] == '~' && matrizU1[x][y+2] == '~' && matrizU1[x-1][y+2] == '~' && matrizU1[x+1][y+2] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1 && x+2 <= 10 && y-1 >= 1 && y+1 <= 10 ) {
- matrizU1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizU1[x+1][y] = 'O'; //cria o segundo componente do barco, virado para baixo
- matrizU1[x+2][y] = 'O'; //cria o terceiro componente do barco, virado para baixo
- matrizU1[x][y-1] = 'O'; //cria o quarto componente do barco, virado para baixo
- matrizU1[x][y+1] = 'O'; //cria o quinto componente do barco, virado para baixo
- contadorInterno = contadorInterno + 1;
- }else {
- printf("Coordenada inválida. Volte a introduzir.");
- }
- }
- break;
- default :
- printf("posição inválida\n");
- }
- } while (contadorInterno < nPortaAvioes); ///// FIM DO CRIADOR DO BARCO PORTA AVIOES
- printf("grelha do humano\n");
- // numeração da coluna
- for(i=-1;i<10;i++){
- if(i == -1){
- printf("@ ");
- }else if(i < 9){
- printf("0 ");
- }else{
- printf("1 ");
- }
- }
- printf("\n");
- for(coluna=0;coluna<=10;coluna++){
- if(coluna == 0){
- printf("@");
- }else if(coluna<10){
- printf(" %d",coluna);
- }else{
- printf(" %d", coluna-10);
- }
- }
- printf("\n");
- linha = 'A';
- for(i=1;i<11;i++){
- for(j=0;j<11;j++){
- if(j == 0){
- printf("%c", linha);
- linha++;
- }else{
- printf(" %c", matrizU1[i][j]);
- }
- }
- printf("\n");
- }
- printf("\n");
- //colocação dos quatro canos por parte do utilizador
- contadorInterno = 0;
- do {
- printf("Introduza a cordenada do quatro canos %d de 1\n", contadorInterno+1);
- printf("introduza a coordenada do elemento principal do quatro canos\n");
- printf("x=");
- scanf("%s", &coord1);
- printf("y=");
- scanf("%d", &y);
- coord1=toupper(coord1);
- x=coord1-64;
- printf("Pretende virar o barco? Introduza 1 para direita, 2 para cima, 3 para esquerda ou 4 para baixo.\n");
- scanf("%d",&posicao);
- switch (posicao){ //////INICIO DO SWITCH DA POSIÇÃO
- case 1: {
- if (matrizU1[x][y] == '~' && matrizU1[x-1][y] == '~' && matrizU1[x+1][y] == '~' && matrizU1[x][y-1] == '~' && matrizU1[x][y+4] == '~' && matrizU1[x-1][y-1] == '~' && matrizU1[x-1][y+1] == '~' && matrizU1[x+1][y-1] == '~' && matrizU1[x+1][y+1] == '~' && matrizU1[x+1][y+2] == '~' && matrizU1[x-1][y+2] == '~' && matrizU1[x-1][y+3] == '~' && matrizU1[x+1][y+3] == '~' && matrizU1[x][y+1] == '~' && matrizU1[x][y+2] == '~' && matrizU1[x][y+3] == '~' && matrizU1[x-1][y+4] == '~' && matrizU1[x+1][y+4] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1 && y+3 <= 10) {
- matrizU1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizU1[x][y+1] = 'O'; //cria o segundo componente do barco, virado para direita
- matrizU1[x][y+2] = 'O'; //cria o terceiro componente do barco, virado para direita
- matrizU1[x][y+3] = 'O'; //cria o quarto componente do barco, virado para direita
- contadorInterno = contadorInterno + 1;
- }else{
- printf("Coordenada inválida. Volte a introduzir.");
- }
- }
- break;
- case 2: {
- if (matrizU1[x][y] == '~' && matrizU1[x-4][y] == '~' && matrizU1[x+1][y] == '~' && matrizU1[x][y-1] == '~' && matrizU1[x][y+1] == '~' && matrizU1[x-1][y-1] == '~' && matrizU1[x-1][y+1] == '~' && matrizU1[x+1][y-1] == '~' && matrizU1[x+1][y+1] == '~' && matrizU1[x-2][y+1] == '~' && matrizU1[x-2][y-1] == '~' && matrizU1[x-3][y-1] == '~' && matrizU1[x-3][y+1] == '~' && matrizU1[x-1][y] == '~' && matrizU1[x-2][y] == '~' && matrizU1[x-3][y] == '~' && matrizU1[x-4][y-1] == '~' && matrizU1[x-4][y+1] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1 && x-3 >= 1) {
- matrizU1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizU1[x-1][y] = 'O'; //cria o segundo componente do barco, virado para cima
- matrizU1[x-2][y] = 'O'; //cria o terceiro componente do barco, virado para cima
- matrizU1[x-3][y] = 'O'; //cria o quarto componente do barco, virado para cima
- contadorInterno = contadorInterno + 1;
- }else {
- printf("Coordenada inválida. Volte a introduzir.");
- }
- }
- break;
- case 3: {
- if (matrizU1[x][y] == '~' && matrizU1[x-1][y] == '~' && matrizU1[x+1][y] == '~' && matrizU1[x][y-4] == '~' && matrizU1[x][y+1] == '~' && matrizU1[x-1][y-1] == '~' && matrizU1[x-1][y+1] == '~' && matrizU1[x+1][y-1] == '~' && matrizU1[x+1][y+1] == '~' && matrizU1[x-1][y-2] == '~' && matrizU1[x+1][y-2] == '~' && matrizU1[x+1][y-3] == '~' && matrizU1[x-1][y-3] == '~' && matrizU1[x][y-1] == '~' && matrizU1[x][y-2] == '~' && matrizU1[x][y-3] == '~' && matrizU1[x-1][y-4] == '~' && matrizU1[x+1][y-4] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1 && y-3 >= 1) {
- matrizU1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizU1[x][y-1] = 'O'; //cria o segundo componente do barco, virado para esquerda
- matrizU1[x][y-2] = 'O'; //cria o terceiro componente do barco, virado para esquerda
- matrizU1[x][y-3] = 'O'; //cria o quarto componente do barco, virado para esquerda
- contadorInterno = contadorInterno + 1;
- }else {
- printf("Coordenada inválida. Volte a introduzir.");
- }
- }
- break;
- case 4: {
- if (matrizU1[x][y] == '~' && matrizU1[x-1][y] == '~' && matrizU1[x+4][y] == '~' && matrizU1[x][y-1] == '~' && matrizU1[x][y+1] == '~' && matrizU1[x-1][y-1] == '~' && matrizU1[x-1][y+1] == '~' && matrizU1[x+1][y-1] == '~' && matrizU1[x+1][y+1] == '~' && matrizU1[x+2][y-1] == '~' && matrizU1[x+2][y+1] == '~' && matrizU1[x+3][y-1] == '~' && matrizU1[x+3][y+1] == '~' && matrizU1[x+1][y] == '~' && matrizU1[x+2][y] == '~' && matrizU1[x+3][y] == '~' && matrizU1[x+4][y+1] == '~' && matrizU1[x+4][y-1] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1 && x+3 <= 10 ) {
- matrizU1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizU1[x+1][y] = 'O'; //cria o segundo componente do barco, virado para baixo
- matrizU1[x+2][y] = 'O'; //cria o terceiro componente do barco, virado para baixo
- matrizU1[x+3][y] = 'O'; //cria o quarto componente do barco, virado para baixo
- contadorInterno = contadorInterno + 1;
- }else {
- printf("Coordenada inválida. Volte a introduzir.");
- }
- }
- break;
- default:
- printf("posição inválida");
- }
- } while (contadorInterno < 1);
- printf("grelha do humano\n");
- // numeração da coluna
- for(i=-1;i<10;i++){
- if(i == -1){
- printf("@ ");
- }else if(i < 9){
- printf("0 ");
- }else{
- printf("1 ");
- }
- }
- printf("\n");
- for(coluna=0;coluna<=10;coluna++){
- if(coluna == 0){
- printf("@");
- }else if(coluna<10){
- printf(" %d",coluna);
- }else{
- printf(" %d", coluna-10);
- }
- }
- printf("\n");
- linha = 'A';
- for(i=1;i<11;i++){
- for(j=0;j<11;j++){
- if(j == 0){
- printf("%c", linha);
- linha++;
- }else{
- printf(" %c", matrizU1[i][j]);
- }
- }
- printf("\n");
- }
- printf("\n");
- //colocação dos tres canos no campo do utilizador
- contadorInterno = 0;
- do {
- printf("Introduza a cordenada do tres canos %d de 2\n", contadorInterno+1);
- printf("introduza a coordenada do elemento principal do tres canos\n");
- printf("x=");
- scanf("%s", &coord1);
- printf("y=");
- scanf("%d", &y);
- coord1=toupper(coord1);
- x=coord1-64;
- printf("Pretende virar o barco? Introduza 1 para direita, 2 para cima, 3 para esquerda ou 4 para baixo.");
- scanf("%d",&posicao);
- switch (posicao){ //////INICIO DO SWITCH DA POSIÇÃO
- case 1 :{
- if (matrizU1[x][y] == '~' && matrizU1[x-1][y] == '~' && matrizU1[x+1][y] == '~' && matrizU1[x][y-1] == '~' && matrizU1[x][y+3] == '~' && matrizU1[x-1][y-1] == '~' && matrizU1[x-1][y+1] == '~' && matrizU1[x+1][y-1] == '~' && matrizU1[x+1][y+1] == '~' && matrizU1[x+1][y+2] == '~' && matrizU1[x-1][y+2] == '~' && matrizU1[x-1][y+3] == '~' && matrizU1[x+1][y+3] == '~' && matrizU1[x][y+1] == '~' && matrizU1[x][y+2] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1 && y+2 <= 10) {
- matrizU1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizU1[x][y+1] = 'O'; //cria o segundo componente do barco, virado para direita
- matrizU1[x][y+2] = 'O'; //cria o terceiro componente do barco, virado para direita
- contadorInterno = contadorInterno + 1;
- }else{
- printf("Coordenada inválida. Volte a introduzir.");
- }
- }
- break;
- case 2: {
- if (matrizU1[x][y] == '~' && matrizU1[x-3][y] == '~' && matrizU1[x+1][y] == '~' && matrizU1[x][y-1] == '~' && matrizU1[x][y+1] == '~' && matrizU1[x-1][y-1] == '~' && matrizU1[x-1][y+1] == '~' && matrizU1[x+1][y-1] == '~' && matrizU1[x+1][y+1] == '~' && matrizU1[x-2][y+1] == '~' && matrizU1[x-2][y-1] == '~' && matrizU1[x-3][y-1] == '~' && matrizU1[x-3][y+1] == '~' && matrizU1[x-1][y] == '~' && matrizU1[x-2][y] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1 && x-2 >= 1) {
- matrizU1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizU1[x-1][y] = 'O'; //cria o segundo componente do barco, virado para cima
- matrizU1[x-2][y] = 'O'; //cria o terceiro componente do barco, virado para cima
- contadorInterno = contadorInterno + 1;
- }else {
- printf("Coordenada inválida. Volte a introduzir.");
- }
- }
- break;
- case 3: {
- if (matrizU1[x][y] == '~' && matrizU1[x-1][y] == '~' && matrizU1[x+1][y] == '~' && matrizU1[x][y-3] == '~' && matrizU1[x][y+1] == '~' && matrizU1[x-1][y-1] == '~' && matrizU1[x-1][y+1] == '~' && matrizU1[x+1][y-1] == '~' && matrizU1[x+1][y+1] == '~' && matrizU1[x-1][y-2] == '~' && matrizU1[x+1][y-2] == '~' && matrizU1[x+1][y-3] == '~' && matrizU1[x-1][y-3] == '~' && matrizU1[x][y-1] == '~' && matrizU1[x][y+2] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1 && y-2 >= 1) {
- matrizU1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizU1[x][y-1] = 'O'; //cria o segundo componente do barco, virado para esquerda
- matrizU1[x][y-2] = 'O'; //cria o terceiro componente do barco, virado para esquerda
- contadorInterno = contadorInterno + 1;
- }else {
- printf("Coordenada inválida. Volte a introduzir.");
- }
- }
- break;
- case 4: {
- if (matrizU1[x][y] == '~' && matrizU1[x-1][y] == '~' && matrizU1[x+3][y] == '~' && matrizU1[x][y-1] == '~' && matrizU1[x][y+1] == '~' && matrizU1[x-1][y-1] == '~' && matrizU1[x-1][y+1] == '~' && matrizU1[x+1][y-1] == '~' && matrizU1[x+1][y+1] == '~' && matrizU1[x+2][y-1] == '~' && matrizU1[x+2][y+1] == '~' && matrizU1[x+3][y-1] == '~' && matrizU1[x+3][y+1] == '~' && matrizU1[x+1][y] == '~' && matrizU1[x+2][y] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1 && x+2 <= 10 ) {
- matrizU1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizU1[x+1][y] = 'O'; //cria o segundo componente do barco, virado para baixo
- matrizU1[x+2][y] = 'O'; //cria o terceiro componente do barco, virado para baixo
- contadorInterno = contadorInterno + 1;
- }else {
- printf("Coordenada inválida. Volte a introduzir.");
- }
- }
- break;
- }
- printf("grelha do humano\n");
- // numeração da coluna
- for(i=-1;i<10;i++){
- if(i == -1){
- printf("@ ");
- }else if(i < 9){
- printf("0 ");
- }else{
- printf("1 ");
- }
- }
- printf("\n");
- for(coluna=0;coluna<=10;coluna++){
- if(coluna == 0){
- printf("@");
- }else if(coluna<10){
- printf(" %d",coluna);
- }else{
- printf(" %d", coluna-10);
- }
- }
- printf("\n");
- linha = 'A';
- for(i=1;i<11;i++){
- for(j=0;j<11;j++){
- if(j == 0){
- printf("%c", linha);
- linha++;
- }else{
- printf(" %c", matrizU1[i][j]);
- }
- }
- printf("\n");
- }
- printf("\n");
- } while (contadorInterno < 2);
- //colocação do dois canos na matriz do utilizador
- contadorInterno = 0;
- do {
- printf("Introduza a cordenada do dois canos %d de 3\n", contadorInterno+1);
- printf("introduza a coordenada do elemento principal do dois canos\n");
- printf("x=");
- scanf("%s", &coord1);
- printf("\ny=");
- scanf("%d", &y);
- coord1=toupper(coord1);
- x=coord1-64;
- printf("Pretende virar o barco? Introduza 1 para direita, 2 para cima, 3 para esquerda ou 4 para baixo.");
- scanf("%d",&posicao);
- switch (posicao){ //////INICIO DO SWITCH DA POSIÇÃO
- case 1:{
- if (matrizU1[x][y] == '~' && matrizU1[x-1][y] == '~' && matrizU1[x+1][y] == '~' && matrizU1[x][y-1] == '~' && matrizU1[x][y+2] == '~' && matrizU1[x-1][y-1] == '~' && matrizU1[x-1][y+1] == '~' && matrizU1[x+1][y-1] == '~' && matrizU1[x+1][y+1] == '~' && matrizU1[x][y+1] == '~' && matrizU1[x+1][y+2] == '~' && matrizU1[x-1][y+2] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1 && y+1 <= 10) {
- matrizU1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizU1[x][y+1] = 'O'; //cria o segundo componente do barco, virado para direita
- contadorInterno = contadorInterno + 1;
- }else {
- printf("Coordenada inválida. Volte a introduzir.");
- }
- }
- break;
- case 2 :{
- if (matrizU1[x][y] == '~' && matrizU1[x][y] == '~' && matrizU1[x-2][y] == '~' && matrizU1[x+1][y] == '~' && matrizU1[x][y-1] == '~' && matrizU1[x][y+1] == '~' && matrizU1[x-1][y-1] == '~' && matrizU1[x-1][y+1] == '~' && matrizU1[x+1][y-1] == '~' && matrizU1[x+1][y+1] == '~' && matrizU1[x-2][y+1] == '~' && matrizU1[x-2][y-1] == '~' && matrizU1[x-1][y] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1 && x-1 >= 1) {
- matrizU1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizU1[x-1][y] = 'O'; //cria o segundo componente do barco, virado para cima
- contadorInterno = contadorInterno + 1;
- }else {
- printf("Coordenada inválida. Volte a introduzir.");
- }
- }
- break;
- case 3: {
- if (matrizU1[x][y] == '~' && matrizU1[x-1][y] == '~' && matrizU1[x+1][y] == '~' && matrizU1[x][y-2] == '~' && matrizU1[x][y+1] == '~' && matrizU1[x-1][y-1] == '~' && matrizU1[x-1][y+1] == '~' && matrizU1[x+1][y-1] == '~' && matrizU1[x+1][y+1] == '~' && matrizU1[x-1][y-2] == '~' && matrizU1[x+1][y-2] == '~' && matrizU1[x][y-1] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1 && y-1 >= 1) {
- matrizU1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizU1[x][y-1] = 'O'; //cria o segundo componente do barco, virado para esquerda
- contadorInterno = contadorInterno + 1;
- }else {
- printf("Coordenada inválida. Volte a introduzir.");
- }
- }
- break;
- case 4: {
- if (matrizU1[x][y] == '~' && matrizU1[x-1][y] == '~' && matrizU1[x+2][y] == '~' && matrizU1[x][y-1] == '~' && matrizU1[x][y+1] == '~' && matrizU1[x-1][y-1] == '~' && matrizU1[x-1][y+1] == '~' && matrizU1[x+1][y-1] == '~' && matrizU1[x+1][y+1] == '~' && matrizU1[x+2][y-1] == '~' && matrizU1[x+2][y+1] == '~' && matrizU1[x+1][y] == '~' && x <= 10 && y <= 10 && x >= 0 && y >= 0 && x+1 < 10) {
- matrizU1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizU1[x+1][y] = 'O'; //cria o segundo componente do barco, virado para baixo
- contadorInterno = contadorInterno + 1;
- }else {
- printf("Coordenada inválida. Volte a introduzir.");
- }
- }
- break;
- }
- printf("grelha do humano\n");
- // numeração da coluna
- for(i=-1;i<10;i++){
- if(i == -1){
- printf("@ ");
- }else if(i < 9){
- printf("0 ");
- }else{
- printf("1 ");
- }
- }
- printf("\n");
- for(coluna=0;coluna<=10;coluna++){
- if(coluna == 0){
- printf("@");
- }else if(coluna<10){
- printf(" %d",coluna);
- }else{
- printf(" %d", coluna-10);
- }
- }
- printf("\n");
- linha = 'A';
- for(i=1;i<11;i++){
- for(j=0;j<11;j++){
- if(j == 0){
- printf("%c", linha);
- linha++;
- }else{
- printf(" %c", matrizU1[i][j]);
- }
- }
- printf("\n");
- }
- printf("\n");
- } while (contadorInterno < 3);///// FIM DO CRIADOR DO BARCO DE DOIS CANOS
- contadorInterno = 0;
- do {
- printf("Introduza a cordenada do submarino %d de 4\n", contadorInterno+1);
- printf("introduza a coordenada do elemento principal do submarino\n");
- printf("x=");
- scanf("%s", &coord1);
- printf("y=");
- scanf("%d", &y);
- coord1=toupper(coord1);
- x=coord1-64;
- if (matrizU1[x][y] == '~' && matrizU1[x-1][y] == '~' && matrizU1[x+1][y] == '~' && matrizU1[x][y-1] == '~' && matrizU1[x][y+1] == '~' && matrizU1[x-1][y-1] == '~' && matrizU1[x-1][y+1] == '~' && matrizU1[x+1][y-1] == '~' && matrizU1[x+1][y+1] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1) {
- matrizU1[x][y] = 'O'; //cria o submarino, que é composto por um só bloco (O)
- contadorInterno = contadorInterno + 1;
- }else {
- printf("Coordenada inválida. Volte a introduzir.");
- }
- printf("grelha do humano\n");
- // numeração da coluna
- for(i=-1;i<10;i++){
- if(i == -1){
- printf("@ ");
- }else if(i < 9){
- printf("0 ");
- }else{
- printf("1 ");
- }
- }
- printf("\n");
- for(coluna=0;coluna<=10;coluna++){
- if(coluna == 0){
- printf("@");
- }else if(coluna<10){
- printf(" %d",coluna);
- }else{
- printf(" %d", coluna-10);
- }
- }
- printf("\n");
- linha = 'A';
- for(i=1;i<11;i++){
- for(j=0;j<11;j++){
- if(j == 0){
- printf("%c", linha);
- linha++;
- }else{
- printf(" %c", matrizU1[i][j]);
- }
- }
- printf("\n");
- }
- printf("\n");
- } while (contadorInterno < 4);
- printf("aguarde enquanto o computador coloca os barcos...");
- //colocação dos barcos na matrizC1 (computador)
- //colocar porta avioes
- contadorInterno = 0;
- do {
- x = rand() %10;
- y = rand() %10;
- posicao = rand() %4;
- switch (posicao){ //////INICIO DO SWITCH DA POSIÇÃO
- case 1: {
- if (matrizC1[x][y] == '~' && matrizC1[x-1][y] == '~' && matrizC1[x+1][y] == '~' && matrizC1[x][y-1] == '~' && matrizC1[x][y+3] == '~' && matrizC1[x-1][y-1] == '~' && matrizC1[x-1][y+1] == '~' && matrizC1[x+1][y-1] == '~' && matrizC1[x+1][y+1] == '~' && matrizC1[x+1][y+2] == '~' && matrizC1[x-1][y+2] == '~' && matrizC1[x-1][y+3] == '~' && matrizC1[x+1][y+3] == '~' && matrizC1[x][y+1] == '~' && matrizC1[x][y+2] == '~' && matrizC1[x-2][y+1] == '~' && matrizC1[x-2][y] == '~' && matrizC1[x-2][y-1] == '~' && matrizC1[x+2][y-1] == '~' && matrizC1[x+2][y] == '~' && matrizC1[x+2][y+1] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1 && y+2 <= 10 && x-1 >= 1 && x+1 <= 10 ){
- matrizC1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizC1[x][y+1] = 'O'; //cria o segundo componente do barco, virado para direita
- matrizC1[x][y+2] = 'O'; //cria o terceiro componente do barco, virado para direita
- matrizC1[x-1][y] = 'O'; //cria o quarto componente do barco, virado para direita
- matrizC1[x+1][y] = 'O'; //cria o quinto componente do barco, virado para direita
- contadorInterno = contadorInterno + 1;
- }else {
- continue;
- }
- }
- break;
- case 2: {
- if (matrizC1[x][y] == '~' && matrizC1[x-3][y] == '~' && matrizC1[x+1][y] == '~' && matrizC1[x][y-1] == '~' && matrizC1[x][y+1] == '~' && matrizC1[x-1][y-1] == '~' && matrizC1[x-1][y+1] == '~' && matrizC1[x+1][y-1] == '~' && matrizC1[x+1][y+1] == '~' && matrizC1[x-2][y+1] == '~' && matrizC1[x-2][y-1] == '~' && matrizC1[x-3][y-1] == '~' && matrizC1[x-3][y+1] == '~' && matrizC1[x-1][y] == '~' && matrizC1[x-2][y] == '~' && matrizC1[x][y-2] == '~' && matrizC1[x][y+2] == '~' && matrizC1[x-1][y-2] == '~' && matrizC1[x-1][y+2] == '~' && matrizC1[x+1][y-2] == '~' && matrizC1[x+1][y+2] == '~' && x <= 9 && y <= 9 && x >= 0 && y >= 0 && x-2 >= 0 && y-1 >= 0 && y+1 < 10) {
- matrizC1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizC1[x-1][y] = 'O'; //cria o segundo componente do barco, virado para cima
- matrizC1[x-2][y] = 'O'; //cria o terceiro componente do barco, virado para cima
- matrizC1[x][y-1] = 'O'; //cria o quarto componente do barco, virado para cima
- matrizC1[x][y+1] = 'O'; //cria o quinto componente do barco, virado para cima
- contadorInterno = contadorInterno + 1;
- }
- }
- break;
- case 3: {
- if (matrizC1[x][y] == '~' && matrizC1[x-1][y] == '~' && matrizC1[x+1][y] == '~' && matrizC1[x][y-3] == '~' && matrizC1[x][y+1] == '~' && matrizC1[x-1][y-1] == '~' && matrizC1[x-1][y+1] == '~' && matrizC1[x+1][y-1] == '~' && matrizC1[x+1][y+1] == '~' && matrizC1[x-1][y-2] == '~' && matrizC1[x+1][y-2] == '~' && matrizC1[x+1][y-3] == '~' && matrizC1[x-1][y-3] == '~' && matrizC1[x][y-1] == '~' && matrizC1[x][y-2] == '~' && matrizC1[x+2][y] == '~' && matrizC1[x+2][y-1] == '~' && matrizC1[x+2][y-1] == '~' && matrizC1[x-2][y-1] == '~' && matrizC1[x-2][y] == '~' && matrizC1[x-2][y+1] == '~' && x <= 9 && y <= 9 && x >= 0 && y >= 0 && y-2 >= 0 && x-1 >= 0 && x+1 < 10) {
- matrizC1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizC1[x][y-1] = 'O'; //cria o segundo componente do barco, virado para esquerda
- matrizC1[x][y-2] = 'O'; //cria o terceiro componente do barco, virado para esquerda
- matrizC1[x-1][y] = 'O'; //cria o quarto componente do barco, virado para esquerda
- matrizC1[x+1][y] = 'O'; //cria o quinto componente do barco, virado para esquerda
- contadorInterno = contadorInterno + 1;
- }else {
- continue;
- }
- }
- break;
- case 4: {
- if (matrizC1[x][y] == '~' && matrizC1[x-1][y] == '~' && matrizC1[x+3][y] == '~' && matrizC1[x][y-1] == '~' && matrizC1[x][y+1] == '~' && matrizC1[x-1][y-1] == '~' && matrizC1[x-1][y+1] == '~' && matrizC1[x+1][y-1] == '~' && matrizC1[x+1][y+1] == '~' && matrizC1[x+2][y-1] == '~' && matrizC1[x+2][y+1] == '~' && matrizC1[x+3][y-1] =='~' && matrizC1[x+3][y+1] == '~' && matrizC1[x+1][y] == '~' && matrizC1[x+2][y] == '~' && matrizC1[x][y-2] == '~' && matrizC1[x-1][y-1] == '~' && matrizC1[x+1][y-2] == '~' && matrizC1[x][y+2] == '~' && matrizC1[x-1][y+2] == '~' && matrizC1[x+1][y+2] == '~' && x <= 9 && y <= 9 && x >= 0 && y >= 0 && x+2 < 10 && y-1 >= 0 && y+1 <10 ) {
- matrizC1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizC1[x+1][y] = 'O'; //cria o segundo componente do barco, virado para baixo
- matrizC1[x+2][y] = 'O'; //cria o terceiro componente do barco, virado para baixo
- matrizC1[x][y-1] = 'O'; //cria o quarto componente do barco, virado para baixo
- matrizC1[x][y+1] = 'O'; //cria o quinto componente do barco, virado para baixo
- contadorInterno = contadorInterno + 1;
- }else {
- continue;
- }
- }
- break;
- }
- } while (contadorInterno < 1);
- //colocar barcos de 4 canos
- contadorInterno = 0;
- do {
- x = rand() %10;
- y = rand() %10;
- posicao = rand() %4;
- switch (posicao){ //////INICIO DO SWITCH DA POSIÇÃO
- case 1: {
- if (matrizC1[x][y] == '~' && matrizC1[x-1][y] == '~' && matrizC1[x+1][y] == '~' && matrizC1[x][y-1] == '~' && matrizC1[x][y+4] == '~' && matrizC1[x-1][y-1] == '~' && matrizC1[x-1][y+1] == '~' && matrizC1[x+1][y-1] == '~' && matrizC1[x+1][y+1] == '~' && matrizC1[x+1][y+2] == '~' && matrizC1[x-1][y+2] == '~' && matrizC1[x-1][y+3] == '~' && matrizC1[x+1][y+3] == '~' && matrizC1[x][y+1] == '~' && matrizC1[x][y+2] == '~' && matrizC1[x][y+3] == '~' && matrizC1[x-1][y+4] == '~' && matrizC1[x+1][y+4] == '~' && x <= 9 && y <= 9 && x >= 0 && y >= 0 && y+3 < 10) {
- matrizC1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizC1[x][y+1] = 'O'; //cria o segundo componente do barco, virado para direita
- matrizC1[x][y+2] = 'O'; //cria o terceiro componente do barco, virado para direita
- matrizC1[x][y+3] = 'O'; //cria o quarto componente do barco, virado para direita
- contadorInterno = contadorInterno + 1;
- }else {
- continue;
- }
- }
- break;
- case 2: {
- if (matrizC1[x][y] == '~' && matrizC1[x-4][y] == '~' && matrizC1[x+1][y] == '~' && matrizC1[x][y-1] == '~' && matrizC1[x][y+1] == '~' && matrizC1[x-1][y-1] == '~' && matrizC1[x-1][y+1] == '~' && matrizC1[x+1][y-1] == '~' && matrizC1[x+1][y+1] == '~' && matrizC1[x-2][y+1] == '~' && matrizC1[x-2][y-1] == '~' && matrizC1[x-3][y-1] == '~' && matrizC1[x-3][y+1] == '~' && matrizC1[x-1][y] == '~' && matrizC1[x-2][y] == '~' && matrizC1[x-3][y] == '~' && matrizC1[x-4][y-1] == '~' && matrizC1[x-4][y+1] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1 && x-3 >= 1) {
- matrizC1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizC1[x-1][y] = 'O'; //cria o segundo componente do barco, virado para cima
- matrizC1[x-2][y] = 'O'; //cria o terceiro componente do barco, virado para cima
- matrizC1[x-3][y] = 'O'; //cria o quarto componente do barco, virado para cima
- contadorInterno = contadorInterno + 1;
- }else {
- continue;
- }
- }
- break;
- case 3: {
- if (matrizC1[x][y] == '~' && matrizC1[x-1][y] == '~' && matrizC1[x+1][y] == '~' && matrizC1[x][y-4] == '~' && matrizC1[x][y+1] == '~' && matrizC1[x-1][y-1] == '~' && matrizC1[x-1][y+1] == '~' && matrizC1[x+1][y-1] == '~' && matrizC1[x+1][y+1] == '~' && matrizC1[x-1][y-2] == '~' && matrizC1[x+1][y-2] == '~' && matrizC1[x+1][y-3] == '~' && matrizC1[x-1][y-3] == '~' && matrizC1[x][y-1] == '~' && matrizC1[x][y-2] == '~' && matrizC1[x][y-3] == '~' && matrizC1[x-1][y-4] == '~' && matrizC1[x+1][y-4] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1 && y-3 >= 1) {
- matrizC1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizC1[x][y-1] = 'O'; //cria o segundo componente do barco, virado para esquerda
- matrizC1[x][y-2] = 'O'; //cria o terceiro componente do barco, virado para esquerda
- matrizC1[x][y-3] = 'O'; //cria o quarto componente do barco, virado para esquerda
- contadorInterno = contadorInterno + 1;
- }else {
- continue;
- }
- }
- break;
- case 4: {
- if (matrizC1[x][y] == '~' && matrizC1[x-1][y] == '~' && matrizC1[x+4][y] == '~' && matrizC1[x][y-1] == '~' && matrizC1[x][y+1] == '~' && matrizC1[x-1][y-1] == '~' && matrizC1[x-1][y+1] == '~' && matrizC1[x+1][y-1] == '~' && matrizC1[x+1][y+1] == '~' && matrizC1[x+2][y-1] == '~' && matrizC1[x+2][y+1] == '~' && matrizC1[x+3][y-1] == '~' && matrizC1[x+3][y+1] == '~' && matrizC1[x+1][y] == '~' && matrizC1[x+2][y] == '~' && matrizC1[x+3][y] == '~' && matrizC1[x+4][y+1] == '~' && matrizC1[x+4][y-1] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1 && x+3 <= 10 ) {
- matrizC1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizC1[x+1][y] = 'O'; //cria o segundo componente do barco, virado para baixo
- matrizC1[x+2][y] = 'O'; //cria o terceiro componente do barco, virado para baixo
- matrizC1[x+3][y] = 'O'; //cria o quarto componente do barco, virado para baixo
- contadorInterno = contadorInterno + 1;
- }else {
- continue;
- }
- }
- break;
- }
- } while (contadorInterno < 1);
- //colocar barcos de tres canos
- contadorInterno = 0;
- do {
- x = rand() %10;
- y = rand() %10;
- posicao = rand() %4;
- switch (posicao){ //////INICIO DO SWITCH DA POSIÇÃO
- case 1: {
- if (matrizC1[x][y] == '~' && matrizC1[x-1][y] == '~' && matrizC1[x+1][y] == '~' && matrizC1[x][y-1] == '~' && matrizC1[x][y+3] == '~' && matrizC1[x-1][y-1] == '~' && matrizC1[x-1][y+1] == '~' && matrizC1[x+1][y-1] == '~' && matrizC1[x+1][y+1] == '~' && matrizC1[x+1][y+2] == '~' && matrizC1[x-1][y+2] == '~' && matrizC1[x-1][y+3] == '~' && matrizC1[x+1][y+3] == '~' && matrizC1[x][y+1] == '~' && matrizC1[x][y+2] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1 && y+2 <= 10) {
- matrizC1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizC1[x][y+1] = 'O'; //cria o segundo componente do barco, virado para direita
- matrizC1[x][y+2] = 'O'; //cria o terceiro componente do barco, virado para direita
- contadorInterno = contadorInterno + 1;
- }else {
- continue;
- }
- }
- break;
- case 2: {
- if (matrizC1[x][y] == '~' && matrizC1[x-3][y] == '~' && matrizC1[x+1][y] == '~' && matrizC1[x][y-1] == '~' && matrizC1[x][y+1] == '~' && matrizC1[x-1][y-1] == '~' && matrizC1[x-1][y+1] == '~' && matrizC1[x+1][y-1] == '~' && matrizC1[x+1][y+1] == '~' && matrizC1[x-2][y+1] == '~' && matrizC1[x-2][y-1] == '~' && matrizC1[x-3][y-1] == '~' && matrizC1[x-3][y+1] == '~' && matrizC1[x-1][y] == '~' && matrizC1[x-2][y] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1 && x-2 >= 1) {
- matrizC1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizC1[x-1][y] = 'O'; //cria o segundo componente do barco, virado para cima
- matrizC1[x-2][y] = 'O'; //cria o terceiro componente do barco, virado para cima
- contadorInterno = contadorInterno + 1;
- }else {
- continue;
- }
- }
- break;
- case 3: {
- if (matrizC1[x][y] == '~' && matrizC1[x-1][y] == '~' && matrizC1[x+1][y] == '~' && matrizC1[x][y-3] == '~' && matrizC1[x][y+1] == '~' && matrizC1[x-1][y-1] == '~' && matrizC1[x-1][y+1] == '~' && matrizC1[x+1][y-1] == '~' && matrizC1[x+1][y+1] == '~' && matrizC1[x-1][y-2] == '~' && matrizC1[x+1][y-2] == '~' && matrizC1[x+1][y-3] == '~' && matrizC1[x-1][y-3] == '~' && matrizC1[x][y-1] == '~' && matrizC1[x][y+2] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1 && y-2 >= 1) {
- matrizC1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizC1[x][y-1] = 'O'; //cria o segundo componente do barco, virado para esquerda
- matrizC1[x][y-2] = 'O'; //cria o terceiro componente do barco, virado para esquerda
- contadorInterno = contadorInterno + 1;
- }else {
- continue;
- }
- }
- break;
- case 4: {
- if (matrizC1[x][y] == '~' && matrizC1[x-1][y] == '~' && matrizC1[x+3][y] == '~' && matrizC1[x][y-1] == '~' && matrizC1[x][y+1] == '~' && matrizC1[x-1][y-1] == '~' && matrizC1[x-1][y+1] == '~' && matrizC1[x+1][y-1] == '~' && matrizC1[x+1][y+1] == '~' && matrizC1[x+2][y-1] == '~' && matrizC1[x+2][y+1] == '~' && matrizC1[x+3][y-1] == '~' && matrizC1[x+3][y+1] == '~' && matrizC1[x+1][y] == '~' && matrizC1[x+2][y] =='~' && x <= 10 && y <= 10 && x >= 1 && y >= 1 && x+2 <= 10 ) {
- matrizC1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizC1[x+1][y] = 'O'; //cria o segundo componente do barco, virado para baixo
- matrizC1[x+2][y] = 'O'; //cria o terceiro componente do barco, virado para baixo
- contadorInterno = contadorInterno + 1;
- }else {
- continue;
- }
- }
- break;
- }
- } while (contadorInterno < 2);
- //colocação barcos de dois canos
- contadorInterno = 0;
- do {
- x = rand() %10;
- y = rand() %10;
- posicao = rand() %4;
- switch (posicao){ //////INICIO DO SWITCH DA POSIÇÃO
- case 1: {
- if(matrizC1[x][y] == '~' && matrizC1[x-1][y] == '~' && matrizC1[x+1][y] == '~' && matrizC1[x][y-1] == '~' && matrizC1[x][y+2] == '~' && matrizC1[x-1][y-1] == '~' && matrizC1[x-1][y+1] == '~' && matrizC1[x+1][y-1] == '~' && matrizC1[x+1][y+1] == '~' && matrizC1[x][y+1] == '~' && matrizC1[x+1][y+2] == '~' && matrizC1[x-1][y+2] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1 && y+1 <= 10){
- matrizC1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizC1[x][y+1] = 'O'; //cria o segundo componente do barco, virado para direita
- contadorInterno = contadorInterno + 1;
- }else{
- continue;
- }
- }
- break;
- case 2:{
- if (matrizC1[x][y] == '~' && matrizC1[x][y] == '~' && matrizC1[x-2][y] == '~' && matrizC1[x+1][y] == '~' && matrizC1[x][y-1] == '~' && matrizC1[x][y+1] == '~' && matrizC1[x-1][y-1] == '~' && matrizC1[x-1][y+1] == '~' && matrizC1[x+1][y-1] == '~' && matrizC1[x+1][y+1] == '~' && matrizC1[x-2][y+1] == '~' && matrizC1[x-2][y-1] == '~' && matrizC1[x-1][y] == '~' && x <= 9 && y <= 9 && x >= 0 && y >= 0 && x-1 >= 0) {
- matrizC1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizC1[x-1][y] = 'O'; //cria o segundo componente do barco, virado para cima
- contadorInterno = contadorInterno + 1;
- }else {
- continue;
- }
- }
- break;
- case 3 :{
- if (matrizC1[x][y] == '~' && matrizC1[x-1][y] == '~' && matrizC1[x+1][y] == '~' && matrizC1[x][y-2] == '~' && matrizC1[x][y+1] == '~' && matrizC1[x-1][y-1] == '~' && matrizC1[x-1][y+1] == '~' && matrizC1[x+1][y-1] == '~' && matrizC1[x+1][y+1] == '~' && matrizC1[x-1][y-2] == '~' && matrizC1[x+1][y-2] == '~' && matrizC1[x][y-1] == '~' && x <= 9 && y <= 9 && x >= 0 && y >= 0 && y-1 >= 0) {
- matrizC1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizC1[x][y-1] = 'O'; //cria o segundo componente do barco, virado para esquerda
- contadorInterno = contadorInterno + 1;
- }else {
- continue;
- }
- }
- break;
- case 4: {
- if (matrizC1[x][y] == '~' && matrizC1[x-1][y] == '~' && matrizC1[x+2][y] == '~' && matrizC1[x][y-1] == '~' && matrizC1[x][y+1] == '~' && matrizC1[x-1][y-1] == '~' && matrizC1[x-1][y+1] == '~' && matrizC1[x+1][y-1] == '~' && matrizC1[x+1][y+1] == '~' && matrizC1[x+2][y-1] == '~' && matrizC1[x+2][y+1] == '~' && matrizC1[x+1][y] == '~' && x <= 9 && y <= 9 && x >= 0 && y >= 0 && x+1 < 10) {
- matrizC1[x][y] = 'O'; //Cria o primeiro componente do barco
- matrizC1[x+1][y] = 'O'; //cria o segundo componente do barco, virado para baixo
- contadorInterno = contadorInterno + 1;
- }else {
- continue;
- }
- }
- break;
- }
- } while (contadorInterno < 3);
- //colocação dos submarinos
- contadorInterno = 0;
- do {
- x = rand() %10;
- y = rand() %10 ;
- if (matrizC1[x][y] == '~' && matrizC1[x-1][y] == '~' && matrizC1[x+1][y] == '~' && matrizC1[x][y-1] == '~' && matrizC1[x][y+1] == '~' && matrizC1[x-1][y-1] == '~' && matrizC1[x-1][y+1] == '~' && matrizC1[x+1][y-1] == '~' && matrizC1[x+1][y+1] == '~' && x <= 10 && y <= 10 && x >= 1 && y >= 1) {
- matrizC1[x][y] = 'O'; //cria o submarino, que é composto por um só bloco (O)
- contadorInterno = contadorInterno + 1;
- }else {
- continue;
- }
- } while (contadorInterno < 4);
- xAnteriorComp = 0;
- yAnteriorComp = 0;
- do{
- numTiro = 0;
- //jogada do utilizador
- do{
- if (blocosComputador == 0 || blocosUtilizador == 0){
- numTiro = 3;
- }else{
- printf("grelha do jogador\n");
- // numeração da coluna
- for(i=-1;i<10;i++){
- if(i == -1){
- printf("@ ");
- }else if(i < 9){
- printf("0 ");
- }else{
- printf("1 ");
- }
- }
- printf("\n");
- for(coluna=0;coluna<=10;coluna++){
- if(coluna == 0){
- printf("@");
- }else if(coluna<10){
- printf(" %d",coluna);
- }else{
- printf(" %d", coluna-10);
- }
- }
- printf("\n");
- linha = 'A';
- for(i=1;i<11;i++){
- for(j=0;j<11;j++){
- if(j == 0){
- printf("%c", linha);
- linha++;
- }else{
- printf(" %c", matrizU1[i][j]);
- }
- }
- printf("\n");
- }
- printf("\n");
- printf("grelha do inimigo\n");
- // numeração da coluna
- for(i=-1;i<10;i++){
- if(i == -1){
- printf("@ ");
- }else if(i < 9){
- printf("0 ");
- }else{
- printf("1 ");
- }
- }
- printf("\n");
- for(coluna=0;coluna<=10;coluna++){
- if(coluna == 0){
- printf("@");
- }else if(coluna<10){
- printf(" %d",coluna);
- }else{
- printf(" %d", coluna-10);
- }
- }
- printf("\n");
- linha = 'A';
- for(i=1;i<11;i++){
- for(j=0;j<11;j++){
- if(j == 0){
- printf("%c", linha);
- linha++;
- }else{
- printf(" %c", matrizU2[i][j]);
- }
- }
- printf("\n");
- }
- printf("\n");
- printf("Introduza a coordenada a disparar\n");
- printf("x=");
- scanf("%s", &coord1);
- printf("y=");
- scanf("%d", &y);
- coord1=toupper(coord1);
- x=coord1-64;
- if (y<=10 && y>=1 && x<=10 && x>=1 && matrizU2[x][y] == '~'){
- numTiro = numTiro+1;
- if (matrizC1[x][y] == '~'){
- matrizC1[x][y] = 'X';
- matrizU2[x][y] = 'X';
- printf("tiro na água\n");
- }else{
- matrizC1[x][y] = 'B';
- matrizU2[x][y] = 'B';
- if (matrizC1[x-1][y] == 'O' || matrizC1[x+1][y] == 'O' || matrizC1[x-1][y] == 'B' || matrizC1[x+1][y] == 'B'){
- verificacao = 0;
- if ((matrizC1[x-1][y] == 'O' || matrizC1[x-1][y] == 'B') && (matrizC1[x-2][y] == 'O' || matrizC1[x-2][y] == 'B') && ((matrizC1[x-2][y-1] == 'O' || matrizC1[x-2][y-1] == 'B') || (matrizC1[x][y-1] == 'O' || matrizC1[x][y-1] == 'B')) && ((matrizC1[x-2][y+1] == 'O' || matrizC1[x-2][y+1] == 'B') || (matrizC1[x][y+1] == 'O' || matrizC1[x][y+1] == 'B'))){
- printf("tiro num porta aviões\n");
- verificacao = 1;
- tipoDeBarco = 5;
- }else if ((matrizC1[x+1][y] == 'O' || matrizC1[x+1][y] == 'B') && (matrizC1[x+2][y] == 'O' || matrizC1[x+2][y] == 'B') && ((matrizC1[x+2][y-1] == 'O' || matrizC1[x+2][y-1] == 'B') || (matrizC1[x][y-1] == 'O' || matrizC1[x][y-1] == 'B')) && ((matrizC1[x+2][y+1] == 'O' || matrizC1[x+2][y+1] == 'B') || (matrizC1[x][y+1] == 'O' || matrizC1[x][y+1] == 'B'))){
- printf("tiro num porta aviões\n");
- verificacao = 1;
- tipoDeBarco = 5;
- }else if ((matrizC1[x+1][y] == 'O' || matrizC1[x+1][y] == 'B') && (matrizC1[x-1][y] == 'O' || matrizC1[x-1][y] == 'B') && ((matrizC1[x-1][y-1] == 'O' || matrizC1[x-1][y-1] == 'B') || (matrizC1[x+1][y-1] == 'O' || matrizC1[x+1][y-1] == 'B')) && ((matrizC1[x-1][y+1] == 'O' || matrizC1[x-1][y+1] == 'B') || (matrizC1[x+1][y+1] == 'O' || matrizC1[x+1][y+1] == 'B'))){
- printf("tiro num porta aviões\n");
- verificacao = 1;
- tipoDeBarco = 5;
- }else if ((matrizC1[x][y+1] == 'O' || matrizC1[x][y+1] == 'B') && (matrizC1[x][y+2] == 'O' || matrizC1[x][y+2] == 'B') && ((matrizC1[x-1][y] == 'O' || matrizC1[x-1][y] == 'B') || (matrizC1[x-1][y+2] == 'O' || matrizC1[x-1][y+2] == 'B')) && ((matrizC1[x+1][y+2] == 'O' || matrizC1[x+1][y+2] == 'B') || (matrizC1[x+1][y] == 'O' || matrizC1[x+1][y] == 'B'))){
- printf("tiro num porta aviões\n");
- verificacao = 1;
- tipoDeBarco = 5;
- }else if ((matrizC1[x+2][y] == 'O' || matrizC1[x+2][y] == 'B') && (matrizC1[x+1][y] == 'O' || matrizC1[x+1][y] == 'B') && ((matrizC1[x+1][y+1] == 'O' || matrizC1[x+1][y+1] == 'B') || (matrizC1[x+1][y-1] == 'O' || matrizC1[x+1][y-1] == 'B')) && (((matrizC1[x+1][y-2] == 'O' || matrizC1[x+1][y-2] == 'B')) || (matrizC1[x+1][y+2] == 'O' || matrizC1[x+1][y+2] =='B'))){
- printf("tiro num porta aviões\n");
- verificacao = 1;
- tipoDeBarco = 5;
- }else if ((matrizC1[x][y+1] == 'O' || matrizC1[x][y+1] == 'B') && (matrizC1[x][y+2] == 'O' || matrizC1[x][y+2] == 'B') && ((matrizC1[x+1][y+1] == 'O' || matrizC1[x+1][y+1] == 'B') || (matrizC1[x-1][y+1] == 'O' || matrizC1[x-1][y+1] == 'B')) && ((matrizC1[x+2][y+1] == 'O' || matrizC1[x+2][y+1] == 'B') || (matrizC1[x-2][y+1] == 'O' || matrizC1[x-2][y+1] == 'B'))){
- printf("tiro num porta aviões\n");
- verificacao = 1;
- tipoDeBarco = 5;
- }else if ((matrizC1[x][y-1] == 'O' || matrizC1[x][y-1] == 'B') && (matrizC1[x][y-2] == 'O' || matrizC1[x][y-2] == 'B') && ((matrizC1[x+1][y-1] == 'O' || matrizC1[x+1][y-1] == 'B') || (matrizC1[x-1][y-1] == 'O' || matrizC1[x-1][y-1] == 'B')) && ((matrizC1[x+2][y-1] == 'O' || matrizC1[x+2][y-1] == 'B') || (matrizC1[x-2][y-1] == 'O' || matrizC1[x-2][y-1] == 'B'))){
- printf("tiro num porta aviões\n");
- verificacao = 1;
- tipoDeBarco = 5;
- }else if ((matrizC1[x-2][y] == 'O' || matrizC1[x-2][y] == 'B') && (matrizC1[x-2][y] == 'O' || matrizC1[x-2][y] == 'B') && ((matrizC1[x-1][y+1] == 'O' || matrizC1[x-1][y+1] == 'B') || (matrizC1[x-1][y-1] == 'O' || matrizC1[x-1][y-1] == 'B')) && ((matrizC1[x-1][y-2] == 'O' || matrizC1[x-1][y-2] == 'B') || (matrizC1[x-1][y+2] == 'O' || matrizC1[x-1][y+2] == 'B'))){
- printf("tiro num porta aviões\n");
- verificacao = 1;
- tipoDeBarco = 5;
- }else if ((matrizC1[x][y-1] == 'O' || matrizC1[x][y-1] == 'B') && (matrizC1[x][y+1] == 'O' || matrizC1[x][y+1] == 'B') && ((matrizC1[x-1][y+1] == 'O' || matrizC1[x-1][y+1] == 'B') || (matrizC1[x-1][y-1] == 'O' || matrizC1[x-1][y-1] == 'B')) && ((matrizC1[x+1][y+1] == 'O' || matrizC1[x+1][y+1] == 'B') || (matrizC1[x+1][y-1] == 'O' || matrizC1[x+1][y-1] == 'B'))){
- printf("tiro num porta aviões\n");
- verificacao = 1;
- tipoDeBarco = 5;
- }else if ((matrizC1[x][y-1] == 'O' || matrizC1[x][y-1] == 'B') && (matrizC1[x][y-2] == 'O' || matrizC1[x][y-2] == 'B') && ((matrizC1[x-1][y-2] == 'O' || matrizC1[x-1][y-2] == 'B') || (matrizC1[x-1][y] == 'O' || matrizC1[x-1][y] == 'B')) && ((matrizC1[x+1][y-2] == 'O' || matrizC1[x+1][y-2] == 'B') || (matrizC1[x+1][y] == 'O' || matrizC1[x+1][y] == 'B'))){
- printf("tiro num porta aviões\n");
- verificacao = 1;
- tipoDeBarco = 5;
- }else{
- verificacao = 0;
- }
- //verificar se e quatro canos usando todas as combinações possiveis para vertical
- if(verificacao == 0){
- if((matrizC1[x-3][y] == 'O' || matrizC1[x-3][y] == 'B') && (matrizC1[x-2][y] == 'O' || matrizC1[x-2][y] =='B') && (matrizC1[x-1][y] == 'O' || matrizC1[x-1][y] == 'B')){
- printf("tiro num quatro canos\n");
- verificacao = 1;
- tipoDeBarco = 4;
- }else{
- verificacao = 0;
- }
- if((matrizC1[x-2][y] == 'O' || matrizC1[x-2][y] == 'B') && (matrizC1[x-1][y] == 'O' || matrizC1[x-1][y] == 'B') && (matrizC1[x+1][y] == 'O' || matrizC1[x+1][y] == 'B')){
- printf("tiro num quatro canos\n");
- verificacao = 1;
- tipoDeBarco = 4;
- }else{
- verificacao = 0;
- }
- if((matrizC1[x-1][y] == 'O' || matrizC1[x-1][y] == 'B') && (matrizC1[x+1][y] == 'O' || matrizC1[x+1][y] == 'B') && (matrizC1[x+2][y] == 'O' || matrizC1[x+2][y] == 'B')){
- printf("tiro num quatro canos\n");
- verificacao = 1;
- tipoDeBarco = 4;
- }else{
- verificacao = 0;
- }
- if((matrizC1[x+1][y] == 'O' || matrizC1[x+1][y] == 'B') && (matrizC1[x+2][y] == 'O' || matrizC1[x+2][y] == 'B') && (matrizC1[x+3][y] == 'O' || matrizC1[x+3][y] == 'B')){
- printf("tiro num quatro canos\n");
- verificacao = 1;
- tipoDeBarco = 4;
- }else{
- verificacao = 0;
- }
- }
- // verificar se e tres canos usando todas as combinacoes possiveis para vertical
- if(verificacao == 0){
- if((matrizC1[x-2][y] == 'O' || matrizC1[x-2][y] == 'B') && (matrizC1[x-1][y] == 'O' || matrizC1[x-1][y] == 'B')){
- printf("tiro num tres canos\n");
- verificacao = 1;
- tipoDeBarco = 3;
- }else{
- verificacao = 0;
- }
- if((matrizC1[x-1][y] == 'O' || matrizC1[x-1][y] == 'B') && (matrizC1[x+1][y] == 'O' || matrizC1[x+1][y] == 'B')){
- printf("tiro num tres canos\n");
- verificacao = 1;
- tipoDeBarco = 3;
- }else{
- verificacao = 0;
- }
- if((matrizC1[x+1][y] == 'O' || matrizC1[x+1][y] == 'B') && (matrizC1[x+2][y] == 'O' || matrizC1[x+2][y] == 'B')){
- printf("tiro num tres canos\n");
- verificacao = 1;
- tipoDeBarco = 3;
- }else{
- verificacao = 0;
- }
- }
- //veririficar se e dois canos usando todas as combinações possiveis verticais
- if(verificacao == 0){
- if(matrizC1[x-1][y] == 'O' || matrizC1[x-1][y] == 'B'){
- printf("tiro num dois canos\n");
- verificacao = 1;
- tipoDeBarco = 2;
- }else{
- verificacao = 0;
- }
- if((matrizC1[x+1][y] == 'O' || matrizC1[x+1][y] == 'B')){
- printf("tiro num dois canos\n");
- verificacao = 1;
- tipoDeBarco = 2;
- }else{
- printf("Pedimos desculpa mas devido a um erro não previsto não foi possivel detectar o barco atingido. no entanto a jogada foi validada.\n");
- }
- }
- if(tipoDeBarco == 4){
- if(matrizC1[x-3][y] == 'B' && matrizC1[x-2][y] == 'B' && matrizC1[x-1][y] == 'B'){
- printf("quatro canos afundado");
- verificacao = 1;
- barcoAfundado = 1;
- }else{
- verificacao = 0;
- }
- if(matrizC1[x-2][y] == 'B' && matrizC1[x-1][y] == 'B' && matrizC1[x+1][y] == 'B'){
- printf("quatro canos afundado");
- verificacao = 1;
- barcoAfundado = 1;
- }else{
- verificacao = 0;
- }
- if(matrizC1[x-1][y] == 'B' && matrizC1[x+1][y] == 'B' && matrizC1[x+2][y] == 'B'){
- printf("quatro canos afundado");
- verificacao = 1;
- barcoAfundado = 1;
- }else{
- verificacao = 0;
- }
- if(matrizC1[x+1][y] == 'B' && matrizC1[x+2][y] == 'B' && matrizC1[x+3][y] == 'B'){
- printf("quatro canos afundado");
- verificacao = 1;
- barcoAfundado = 1;
- }else{
- verificacao = 0;
- barcoAfundado = 0;
- }
- }else if(tipoDeBarco == 3){
- if(matrizC1[x-2][y] == 'B' && matrizC1[x-1][y] == 'B'){
- printf("tres canos afundados");
- verificacao = 1;
- barcoAfundado = 1;
- }else{
- verificacao = 0;
- }
- if(matrizC1[x-1][y] == 'B' && matrizC1[x+1][y] == 'B'){
- printf("tres canos afundados");
- verificacao = 1;
- barcoAfundado = 1;
- }else{
- verificacao = 0;
- }
- if(matrizC1[x+1][y] == 'B' && matrizC1[x+2][y] == 'B'){
- printf("tres canos afundados");
- verificacao = 1;
- barcoAfundado = 1;
- }else{
- verificacao = 0;
- barcoAfundado = 0;
- }
- }else if(tipoDeBarco == 2){
- if(matrizC1[x-1][y] == 'B'){
- printf("dois canos afundado");
- verificacao = 1;
- barcoAfundado = 1;
- }else{
- verificacao = 0;
- }
- if(matrizC1[x+1][y] == 'B'){
- printf("dois canos afundado");
- verificacao = 1;
- barcoAfundado = 1;
- }
- }
- }else if(matrizC1[x][y-1] == 'O' || matrizC1[x][y+1] == 'O' || matrizC1[x][y-1] == 'B' || matrizC1[x][y+1] == 'B'){
- if(verificacao == 0){
- if((matrizC1[x][y-3] == 'O' || matrizC1[x][y-3] == 'B') && (matrizC1[x][y-2] == 'O' || matrizC1[x][y-2] == 'B') && (matrizC1[x][y-1] == 'O' || matrizC1[x][y-1] == 'B')){
- printf("tiro num quatro canos\n");
- verificacao = 1;
- tipoDeBarco = 4;
- }else{
- verificacao = 0;
- }
- if((matrizC1[x][y-2] == 'O' || matrizC1[x][y-2] == 'B') && (matrizC1[x][y-1] == 'O' || matrizC1[x][y-1] == 'B') && (matrizC1[x][y+1] == 'O' || matrizC1[x][y+1] == 'B')){
- printf("tiro num quatro canos\n");
- verificacao = 1;
- tipoDeBarco = 4;
- }else{
- verificacao = 0;
- }
- if((matrizC1[x][y-1] == 'O' || matrizC1[x][y-1] == 'B') && (matrizC1[x][y+1] == 'O' || matrizC1[x][y+1] == 'B') && (matrizC1[x][y+2] == 'O' || matrizC1[x][y+2] == 'B')){
- printf("tiro num quatro canos\n");
- verificacao = 1;
- tipoDeBarco = 4;
- }else{
- verificacao = 0;
- }
- if((matrizC1[x][y+1] == 'O' || matrizC1[x][y+1] == 'B') && (matrizC1[x][y+2] == 'O' || matrizC1[x][y+2] == 'B') && (matrizC1[x][y+3] == 'O' || matrizC1[x][y+3] == 'B')){
- printf("tiro num quatro canos\n");
- verificacao = 1;
- tipoDeBarco = 4;
- }else{
- verificacao = 0;
- }
- }else{
- continue;
- }
- // verificar se e tres canos usando todas as combinacoes possiveis para horizontal
- if(verificacao == 0){
- if((matrizC1[x][y-2] == 'O' || matrizC1[x][y-2] == 'B') && (matrizC1[x][y-1] == 'O' || matrizC1[x][y-1] == 'B')){
- printf("tiro num tres canos\n");
- verificacao = 1;
- tipoDeBarco = 3;
- }else{
- verificacao = 0;
- }
- if((matrizC1[x][y-1] == 'O' || matrizC1[x][y-1] == 'B') && (matrizC1[x][y+1] == 'O' || matrizC1[x][y+1] == 'B')){
- printf("tiro num tres canos\n");
- verificacao = 1;
- tipoDeBarco = 3;
- }else{
- verificacao = 0;
- }
- if((matrizC1[x][y+1] == 'O' || matrizC1[x][y+1] == 'B') && (matrizC1[x][y+2] == 'O' || matrizC1[x][y+2] == 'B')){
- printf("tiro num tres canos\n");
- verificacao = 1;
- tipoDeBarco = 3;
- }else{
- verificacao = 0;
- }
- }else{
- continue;
- }
- //veririficar se e dois canos usando todas as combinações possiveis para horizontal
- if(verificacao == 0){
- if((matrizC1[x][y-1] == 'O' || matrizC1[x][y-1] == 'B')){
- printf("tiro num dois canos\n");
- verificacao = 1;
- tipoDeBarco = 2;
- }else{
- verificacao = 0;
- }
- if((matrizC1[x][y+1] == 'O' || matrizC1[x][y+1] == 'B')){
- printf("tiro num dois canos\n");
- verificacao = 1;
- tipoDeBarco = 2;
- }else{
- printf("devido a um erro não foi possível determinar qual barco foi atingido. no entanto o tiro foi registado\n");
- }
- }
- // verificarHorizontal(x, y, matrizComputador)
- }else if(matrizC1[x-1][y] == 'X' || matrizC1[x+1][y] == 'X' || matrizC1[x-1][y] == '~' || matrizC1[x+1][y] == '~' || matrizC1[x][y-1] == 'X' || matrizC1[x][y+1] == 'X' || matrizC1[x][y-1] == '~' || matrizC1[x][y+1] == '~'){
- printf("afundou um submarino\n");
- }
- if(tipoDeBarco == 5){
- if (matrizC1[x-1][y] == 'B' && matrizC1[x-2][y] == 'B' && (matrizC1[x-2][y-1] == 'B' || matrizC1[x][y-1] == 'B') && (matrizC1[x-2][y+1] == 'B' || matrizC1[x][y+1] == 'B' )){
- printf("porta avioes afundado\n");
- verificacao = 1; //condicao verificada logo nao deixa os proximos if's comecarem
- barcoAfundado = 1;
- }else if (matrizC1[x+1][y] == 'B' && matrizC1[x+2][y] == 'B' && (matrizC1[x+2][y-1] == 'B' || matrizC1[x][y-1] == 'B') && (matrizC1[x+2][y+1] == 'B' || matrizC1[x][y+1] == 'B' )){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else if (matrizC1[x+1][y] == 'B' && matrizC1[x-1][y] == 'B' && (matrizC1[x-1][y-1] == 'B' || matrizC1[x+1][y-1] == 'B') && (matrizC1[x-1][y+1] == 'B' || matrizC1[x+1][y+1] == 'B')){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else if (matrizC1[x][y+1] == 'B' && matrizC1[x][y+2] == 'B' && (matrizC1[x-1][y] == 'B' || matrizC1[x-1][y+2] == 'B') && (matrizC1[x+1][y+2] == 'B' || matrizC1[x+1][y] == 'B')){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else if (matrizC1[x+2][y] == 'B' && matrizC1[x+1][y] == 'B' && (matrizC1[x+1][y+1] == 'B' || matrizC1[x+1][y-1] == 'B') && (matrizC1[x+1][y-2] == 'B' || matrizC1[x+1][y+2] == 'B')){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else if (matrizC1[x][y+1] == 'B' && matrizC1[x][y+2] == 'B' && (matrizC1[x+1][y+1] == 'B' || matrizC1[x-1][y+1] == 'B') && (matrizC1[x+2][y+1] == 'B' || matrizC1[x-2][y+1] == 'B')){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else if (matrizC1[x][y-1] == 'B' && matrizC1[x][y-2] == 'B' && (matrizC1[x+1][y-1] == 'B' || matrizC1[x-1][y-1] == 'B') && (matrizC1[x+2][y-1] == 'B' || matrizC1[x-2][y-1] == 'B')){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else if (matrizC1[x-2][y] == 'B' && matrizC1[x-1][y] == 'B' && (matrizC1[x-1][y+1] == 'B' || matrizC1[x-1][y-1] == 'B') && (matrizC1[x-1][y-2] == 'B' || matrizC1[x-1][y+2] == 'B')){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else if (matrizC1[x][y-1] == 'B' && matrizC1[x][y+1] == 'B' && (matrizC1[x-1][y+1] == 'B' || matrizC1[x-1][y-1] == 'B') && (matrizC1[x+1][y+1] == 'B' || matrizC1[x+1][y-1] == 'B')){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else if (matrizC1[x][y-1] == 'B' && matrizC1[x][y-2] == 'B' && (matrizC1[x-1][y-2] == 'B' || matrizC1[x-1][y] == 'B') && (matrizC1[x+1][y-2] == 'B' || matrizC1[x+1][y] == 'B')){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else{
- verificacao = 0;
- barcoAfundado = 0;
- }
- }
- }
- blocosComputador = blocosComputador-1;
- }else{
- printf("coordenada inválida. Reintroduza a coordenada sobre a qual disparar\n");
- }
- }
- } while(numTiro<3);
- numTiro = 0;
- x = 0;
- y = 0;
- // AI - Tiros do computador
- do{
- x = xAnteriorComp;
- y = yAnteriorComp;
- if (blocosUtilizador == 0 || blocosComputador == 0){
- numTiro = 3;
- }else if(matrizC2[x][y] == 'B' && barcoAfundado == '0'){ //variavel barcoAfundado 0 para nao, 1 para sim
- //numTiro = numTiro+1;
- switch(tipoDeBarco){
- case 2:
- if (matrizC2[x][y-1] == '~'){
- y=y-1;
- }else if (matrizC2[x][y+1] == '~'){
- y=y+1;
- }else if (matrizC2[x-1][y] == '~'){
- x=x-1;
- }else if (matrizC2[x+1][y] == '~'){
- x=x+1;
- }else{
- x=rand() %10;
- y=rand() %10;
- }
- break;
- case 3:
- if (matrizC2[x][y-1] == 'B' && matrizC2[x][y-2] == '~'){
- y=y-2;
- }else if (matrizC2[x][y+1] == 'B' && matrizC2[x][y+2] == '~'){
- y=y+2;
- }else if (matrizC2[x-1][y] == 'B' && matrizC2[x-2][y] == '~'){
- x=x-2;
- }else if (matrizC2[x+1][y] == 'B' && matrizC2[x+1][y] == '~'){
- x=x+2;
- }else if (matrizC2[x][y-1] == '~'){
- y=y-1;
- }else if (matrizC2[x][y+1] == '~'){
- y=y+1;
- }else if (matrizC2[x-1][y] == '~'){
- x=x-1;
- }else if (matrizC2[x+1][y] == '~'){
- x=x+1;
- }else{
- x=rand() %10;
- y=rand() %10;
- }
- break;
- case 4:
- if (matrizC2[x][y-1] == 'B' && matrizC2[x][y-2] == 'B' && matrizC2[x][y-3] == '~'){
- y=y-3;
- }else if (matrizC2[x][y+1] == 'B' && matrizC2[x][y+2] == 'B' && matrizC2[x][y+3] == '~'){
- y=y+3;
- }else if (matrizC2[x-1][y] == 'B' && matrizC2[x-2][y] == 'B' && matrizC2[x-3][y] == '~'){
- x=x-3;
- }else if (matrizC2[x+1][y] == 'B' && matrizC2[x+1][y] == 'B' && matrizC2[x+3][y] == '~'){
- x=x+3;
- }else if (matrizC2[x][y-1] == 'B' && matrizC2[x][y-2] == '~'){
- y=y-2;
- }else if (matrizC2[x][y+1] == 'B' && matrizC2[x][y+2] == '~'){
- y=y+2;
- }else if (matrizC2[x-1][y] == 'B' && matrizC2[x-2][y] == '~'){
- x=x-2;
- }else if (matrizC2[x+1][y] == 'B' && matrizC2[x+1][y] == '~'){
- x=x+2;
- }else if (matrizC2[x][y-1] == '~'){
- y=y-1;
- }else if (matrizC2[x][y+1] == '~'){
- y=y+1;
- }else if (matrizC2[x-1][y] == '~'){
- x=x-1;
- }else if (matrizC2[x+1][y] == '~'){
- x=x+1;
- }else{
- x=rand() %10;
- y=rand() %10;
- }
- break;
- case 5:
- if (matrizC2[x-1][y] == 'B' && matrizC2[x-2][y] == 'B' && matrizC2[x][y+1] == '~'){
- y=y+1;
- }else if (matrizC2[x-1][y] == 'B' && matrizC2[x-2][y] == 'B' && matrizC2[x][y-1] == '~'){
- y=y-1;
- }else if (matrizC2[x-1][y] == 'B' && matrizC2[x-2][y] == 'B' && matrizC2[x][y+1] == 'B' && matrizC2[x][y-1] == '~'){
- y=y-1;
- }else if (matrizC2[x-1][y] == 'B' && matrizC2[x-2][y] == 'B' && matrizC2[x][y-1] == 'B' && matrizC2[x][y+1] == '~'){
- y=y+1;
- }else if (matrizC2[x-1][y] == 'B' && matrizC2[x-2][y] == 'B' && matrizC2[x][y-1] == '~'){
- y=y-1;
- }else if (matrizC2[x-1][y] == 'B' && matrizC2[x-2][y] == 'B' && matrizC2[x+1][y-1] == 'B' && matrizC2[x][y+1] == '~'){
- y=y+1;
- }else if (matrizC2[x-1][y] == 'B' && matrizC2[x-2][y] == 'B' && matrizC2[x-1][y+1] == '~'){
- x=x-1;
- y=y+1;
- }else if (matrizC2[x-1][y] == 'B' && matrizC2[x-2][y] == 'B' && matrizC2[x-1][y+1] == 'B' && matrizC2[x-1][y+2] == '~'){
- x=x-1;
- y=y+2;
- }else if (matrizC2[x-1][y] == 'B' && matrizC2[x-2][y] == 'B' && matrizC2[x-1][y-1] == '~'){
- x=x-1;
- y=y-1;
- }else if (matrizC2[x-1][y] == 'B' && matrizC2[x-2][y] == 'B' && matrizC2[x-1][y-1] == 'B' && matrizC2[x-1][y-2] == '~'){
- x=x-1;
- y=y-2;
- }else if (matrizC2[x-1][y] == 'B' && matrizC2[x+1][y] == 'B' && matrizC2[x-1][y+1] == '~'){
- x=x-1;
- y=y+1;
- }else if (matrizC2[x-1][y] == 'B' && matrizC2[x+1][y] == 'B' && matrizC2[x-1][y+1] == 'B' && matrizC2[x-1][y-1] == '~'){
- x=x-1;
- y=y-1;
- }else if (matrizC2[x-1][y] == 'B' && matrizC2[x+1][y] == 'B' && matrizC2[x+1][y-1] == '~'){
- x=x+1;
- y=y-1;
- }else if (matrizC2[x-1][y] == 'B' && matrizC2[x+1][y] == 'B' && matrizC2[x+1][y-1] == 'B' && matrizC2[x+1][y+1] == '~'){
- x=x+1;
- y=y+1;
- }else if (matrizC2[x-1][y] == 'B' && matrizC2[x+1][y] == 'B' && matrizC2[x][y+1] == '~'){
- y=y+1;
- }else if (matrizC2[x-1][y] == 'B' && matrizC2[x+1][y] == 'B' && matrizC2[x][y+1] == 'B' && matrizC2[x][y+2] == '~'){
- y=y+2;
- }else if (matrizC2[x-1][y] == 'B' && matrizC2[x+1][y] == 'B' && matrizC2[x][y-1] == '~'){
- y=y-1;
- }else if (matrizC2[x-1][y] == 'B' && matrizC2[x+1][y] == 'B' && matrizC2[x][y-1] == 'B' && matrizC2[x][y-2] == '~'){
- y=y-2;
- }else if (matrizC2[x+1][y] == 'B' && matrizC2[x+2][y] == 'B' && matrizC2[x][y+1] == '~'){
- y=y+1;
- }else if (matrizC2[x+1][y] == 'B' && matrizC2[x+2][y] == 'B' && matrizC2[x][y+1] == 'B' && matrizC2[x][y-1] == '~'){
- y=y-1;
- }else if (matrizC2[x+1][y] == 'B' && matrizC2[x+2][y] == 'B' && matrizC2[x+2][y-1] == '~'){
- x=x+2;
- y=y-1;
- }else if (matrizC2[x+1][y] == 'B' && matrizC2[x+2][y] == 'B' && matrizC2[x+2][y-1] == 'B' && matrizC2[x+2][y+1] == '~'){
- x=x+1;
- y=y+1;
- }else if (matrizC2[x+1][y] == 'B' && matrizC2[x+2][y] == 'B' && matrizC2[x+1][y+1] == '~'){
- x=x+1;
- y=y+1;
- }else if (matrizC2[x+1][y] == 'B' && matrizC2[x+2][y] == 'B' && matrizC2[x+1][y+1] == 'B' && matrizC2[x+1][y+2] == '~'){
- x=x+1;
- y=y+2;
- }else if (matrizC2[x+1][y] == 'B' && matrizC2[x+2][y] == 'B' && matrizC2[x+1][y-1] == '~'){
- x=x+1;
- y=y-1;
- }else if (matrizC2[x+1][y] == 'B' && matrizC2[x+2][y] == 'B' && matrizC2[x+1][y-1] == 'B' && matrizC2[x+1][y+1] == '~'){
- x=x+1;
- y=y+1;
- }else if (matrizC2[x][y+1] == 'B' && matrizC2[x][y+2] == 'B' && matrizC2[x+1][y] == '~'){
- x=x+1;
- }else if (matrizC2[x][y+1] == 'B' && matrizC2[x][y+2] == 'B' && matrizC2[x-1][y] == '~'){
- x=x-1;
- }else if (matrizC2[x][y+1] == 'B' && matrizC2[x][y+2] == 'B' && matrizC2[x+1][y+2] == '~'){
- x=x+1;
- y=y+2;
- }else if (matrizC2[x][y+1] == 'B' && matrizC2[x][y+2] == 'B' && matrizC2[x-1][y+2] == '~'){
- x=x-1;
- y=y+2;
- }else if (matrizC2[x][y+1] == 'B' && matrizC2[x][y+2] == 'B' && matrizC2[x+1][y] == 'B' && matrizC2[x-1][y] == '~'){
- x=x-1;
- }else if (matrizC2[x][y+1] == 'B' && matrizC2[x][y+2] == 'B' && matrizC2[x+1][y+2] == 'B' && matrizC2[x-1][y+2] == '~'){
- x=x-1;
- y=y+2;
- }else if (matrizC2[x][y+1] == 'B' && matrizC2[x][y+2] == 'B' && matrizC2[x-1][y+1] == '~'){
- x=x-1;
- y=y+1;
- }else if (matrizC2[x][y+1] == 'B' && matrizC2[x][y+2] == 'B' && matrizC2[x+1][y+1] == '~'){
- x=x+1;
- y=y+1;
- }else if (matrizC2[x][y+1] == 'B' && matrizC2[x][y+2] == 'B' && matrizC2[x-1][y+1] == 'B' && matrizC2[x-2][y+1] == '~'){
- x=x-2;
- y=y+1;
- }else if (matrizC2[x][y+1] == 'B' && matrizC2[x][y+2] == 'B' && matrizC2[x+1][y+1] == 'B' && matrizC2[x+2][y+1] == '~'){
- x=x+2;
- y=y+1;
- }else if (matrizC2[x][y-1] == 'B' && matrizC2[x][y+1] == 'B' && matrizC2[x+1][y-1] == '~'){
- x=x+1;
- y=y-1;
- }else if (matrizC2[x][y-1] == 'B' && matrizC2[x][y+1] == 'B' && matrizC2[x-1][y-1] == '~'){
- x=x-1;
- y=y-1;
- }else if (matrizC2[x][y-1] == 'B' && matrizC2[x][y+1] == 'B' && matrizC2[x-1][y+1] == '~' && matrizC2[x+1][y+1] == 'B' ){
- x=x-1;
- y=y+1;
- }else if (matrizC2[x][y-1] == 'B' && matrizC2[x][y+1] == 'B' && matrizC2[x+1][y+1] == '~' && matrizC2[x-1][y+1] == 'B'){
- x=x+1;
- y=y+1;
- }else if (matrizC2[x][y-1] == 'B' && matrizC2[x][y+1] == 'B' && matrizC2[x+1][y] == '~'){
- x=x+1;
- }else if (matrizC2[x][y-1] == 'B' && matrizC2[x][y+1] == 'B' && matrizC2[x-1][y] == '~'){
- x=x-1;
- }else if (matrizC2[x][y-1] == 'B' && matrizC2[x][y+1] == 'B' && matrizC2[x+1][y] == 'B' && matrizC2[x+2][y] == '~'){
- x=x+2;
- }else if (matrizC2[x][y-1] == 'B' && matrizC2[x][y+1] == 'B' && matrizC2[x-1][y] == 'B' && matrizC2[x-2][y] == '~'){
- x=x-2;
- }else if (matrizC2[x][y-1] == 'B' && matrizC2[x][y-2] == 'B' && matrizC2[x+1][y] == '~'){
- x=x+1;
- }else if (matrizC2[x][y-1] == 'B' && matrizC2[x][y-2] == 'B' && matrizC2[x+1][y-2] == '~'){
- x=x+1;
- y=y-2;
- }else if (matrizC2[x][y-1] == 'B' && matrizC2[x][y-2] == 'B' && matrizC2[x-1][y-1] == '~'){
- x=x-1;
- y=y-1;
- }else if (matrizC2[x][y-1] == 'B' && matrizC2[x][y-2] == 'B' && matrizC2[x+1][y] == 'B' && matrizC2[x-1][y] == '~'){
- x=x-1;
- }else if (matrizC2[x][y-1] == 'B' && matrizC2[x][y-2] == 'B' && matrizC2[x+1][y-2] == 'B' && matrizC2[x-1][y-2] == '~'){
- x=x-1;
- y=y-2;
- }else if (matrizC2[x][y-1] == 'B' && matrizC2[x][y-2] == 'B' && matrizC2[x-1][y-1] == 'B' && matrizC2[x-2][y-1] == '~'){
- x=x-2;
- y=y-1;
- }else if (matrizC2[x][y-1] == 'B' && matrizC2[x][y-2] == 'B' && matrizC2[x+1][y-1] == 'B' && matrizC2[x+2][y-1] == '~'){
- x=x+2;
- y=y-1;
- }else if (matrizC2[x][y-1] == 'B' && matrizC2[x][y-2] == 'B' && matrizC2[x+1][y-1] == '~'){
- x=x+1;
- y=y-1;
- }else if (matrizC2[x][y-1] == 'B' && matrizC2[x][y-2] == '~'){
- y=y-2;
- }else if (matrizC2[x][y+1] == 'B' && matrizC2[x][y+2] == '~'){
- y=y+2;
- }else if (matrizC2[x-1][y] == 'B' && matrizC2[x-2][y] == '~'){
- x=x-2;
- }else if (matrizC2[x+1][y] == 'B' && matrizC2[x+1][y] == '~'){
- x=x+2;
- }else if (matrizC2[x][y-1] == '~'){
- y=y-1;
- }else if (matrizC2[x][y+1] == '~'){
- y=y+1;
- }else if (matrizC2[x-1][y] == '~'){
- x=x-1;
- }else if (matrizC2[x+1][y] == '~'){
- x=x+1;
- }else{
- x=rand() %10;
- y=rand() %10;
- }
- break;
- }
- if(x>=0 && y>=0 && x<=10 && y<=10){
- if (matrizU1[x][y] == '~'){
- matrizU1[x][y] = 'X';
- matrizC2[x][y] = 'X';
- printf("o computador deu um tiro na água");
- barcoAfundado = 0;
- }else{
- matrizU1[x][y] = 'B';
- matrizC2[x][y] = 'B';
- if (matrizU1[x-1][y] == 'O' || matrizU1[x+1][y] == 'O' || matrizU1[x-1][y] == 'B' || matrizU1[x+1][y] == 'B'){
- /* barcoVertical(x, y, matrizUtilizador, tipoDeBarco)
- verificarVertical(x, y, matrizUtilizador, barcoAfundado)*/
- }else if(matrizU1[x][y-1] == 'O' || matrizU1[x][y+1] == 'O' || matrizU1[x][y-1] == 'B' || matrizU1[x][y+1] == 'B'){
- /*barcoHorizontal(x, y, matrizUtilizador, tipoDeBarco)
- verificarHorizontal(x, y, matrizUtilizador, barcoAfundado)*/
- }else{
- printf("O computador afundou um submarino");
- barcoAfundado = 1;
- }
- if(tipoDeBarco == 5){
- if (matrizU1[x-1][y] == 'B' && matrizU1[x-2][y] == 'B' && (matrizU1[x-2][y-1] == 'B' || matrizU1[x][y-1] == 'B') && (matrizU1[x-2][y+1] == 'B' || matrizU1[x][y+1] == 'B' )){
- printf("porta avioes afundado\n");
- verificacao = 1; //condicao verificada logo nao deixa os proximos if's comecarem
- barcoAfundado = 1;
- }else if (matrizU1[x+1][y] == 'B' && matrizU1[x+2][y] == 'B' && (matrizU1[x+2][y-1] == 'B' || matrizU1[x][y-1] == 'B') && (matrizU1[x+2][y+1] == 'B' || matrizU1[x][y+1] == 'B' )){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else if (matrizU1[x+1][y] == 'B' && matrizU1[x-1][y] == 'B' && (matrizU1[x-1][y-1] == 'B' || matrizU1[x+1][y-1] == 'B') && (matrizU1[x-1][y+1] == 'B' || matrizU1[x+1][y+1] == 'B')){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else if (matrizU1[x][y+1] == 'B' && matrizU1[x][y+2] == 'B' && (matrizU1[x-1][y] == 'B' || matrizU1[x-1][y+2] == 'B') && (matrizU1[x+1][y+2] == 'B' || matrizU1[x+1][y] == 'B')){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else if (matrizU1[x+2][y] == 'B' && matrizU1[x+1][y] == 'B' && (matrizU1[x+1][y+1] == 'B' || matrizU1[x+1][y-1] == 'B') && (matrizU1[x+1][y-2] == 'B' || matrizU1[x+1][y+2] == 'B')){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else if (matrizU1[x][y+1] == 'B' && matrizU1[x][y+2] == 'B' && (matrizU1[x+1][y+1] == 'B' || matrizU1[x-1][y+1] == 'B') && (matrizU1[x+2][y+1] == 'B' || matrizU1[x-2][y+1] == 'B')){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else if (matrizU1[x][y-1] == 'B' && matrizU1[x][y-2] == 'B' && (matrizU1[x+1][y-1] == 'B' || matrizU1[x-1][y-1] == 'B') && (matrizU1[x+2][y-1] == 'B' || matrizU1[x-2][y-1] == 'B')){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else if (matrizU1[x-2][y] == 'B' && matrizU1[x-1][y] == 'B' && (matrizU1[x-1][y+1] == 'B' || matrizU1[x-1][y-1] == 'B') && (matrizU1[x-1][y-2] == 'B' || matrizU1[x-1][y+2] == 'B')){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else if (matrizU1[x][y-1] == 'B' && matrizU1[x][y+1] == 'B' && (matrizU1[x-1][y+1] == 'B' || matrizU1[x-1][y-1] == 'B') && (matrizU1[x+1][y+1] == 'B' || matrizU1[x+1][y-1] == 'B')){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else if (matrizU1[x][y-1] == 'B' && matrizU1[x][y-2] == 'B' && (matrizU1[x-1][y-2] == 'B' || matrizU1[x-1][y] == 'B') && (matrizU1[x+1][y-2] == 'B' || matrizU1[x+1][y] == 'B')){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else{
- verificacao = 0;
- barcoAfundado = 0;
- }
- }
- blocosUtilizador = blocosUtilizador-1;
- }
- }
- }else{
- x = rand() %10;
- y = rand() %10;
- if(x>=0 && y>=0 && x<=10 && y<=10){
- if (matrizC2[x][y] == '~'){
- xAnteriorComp = x;
- yAnteriorComp = y;
- numTiro = numTiro+1;
- if (matrizU1[x][y] == '~'){
- matrizU1[x][y] = 'X';
- matrizC2[x][y] = 'X';
- printf("o computador deu um tiro na água");
- barcoAfundado = 0;
- }else{
- matrizU1[x][y] = 'B';
- matrizC2[x][y] = 'B';
- if (matrizU1[x-1][y] == 'O' || matrizU1[x+1][y] == 'O' || matrizU1[x-1][y] == 'B' || matrizU1[x+1][y] == 'B'){
- /*barcoVertical(x, y, matrizUtilizador, tipoDeBarco)
- verificarVertical(x, y, matrizUtilizador, barcoAfundado)*/
- }else if(matrizU1[x][y-1] == 'O' || matrizU1[x][y+1] == 'O' || matrizU1[x][y-1] == 'B' || matrizU1[x][y+1] == 'B'){
- /*barcoHorizontal(x, y, matrizUtilizador, tipoDeBarco)
- verificarHorizontal(x, y, matrizUtilizador, barcoAfundado)*/
- }else{
- printf("O computador afundou um submarino");
- barcoAfundado = 1;
- }
- if(tipoDeBarco == 5){
- if (matrizU1[x-1][y] == 'B' && matrizU1[x-2][y] == 'B' && (matrizU1[x-2][y-1] == 'B' || matrizU1[x][y-1] == 'B') && (matrizU1[x-2][y+1] == 'B' || matrizU1[x][y+1] == 'B' )){
- printf("porta avioes afundado\n");
- verificacao = 1; //condicao verificada logo nao deixa os proximos if's comecarem
- barcoAfundado = 1;
- }else if (matrizU1[x+1][y] == 'B' && matrizU1[x+2][y] == 'B' && (matrizU1[x+2][y-1] == 'B' || matrizU1[x][y-1] == 'B') && (matrizU1[x+2][y+1] == 'B' || matrizU1[x][y+1] == 'B' )){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else if (matrizU1[x+1][y] == 'B' && matrizU1[x-1][y] == 'B' && (matrizU1[x-1][y-1] == 'B' || matrizU1[x+1][y-1] == 'B') && (matrizU1[x-1][y+1] == 'B' || matrizU1[x+1][y+1] == 'B')){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else if (matrizU1[x][y+1] == 'B' && matrizU1[x][y+2] == 'B' && (matrizU1[x-1][y] == 'B' || matrizU1[x-1][y+2] == 'B') && (matrizU1[x+1][y+2] == 'B' || matrizU1[x+1][y] == 'B')){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else if (matrizU1[x+2][y] == 'B' && matrizU1[x+1][y] == 'B' && (matrizU1[x+1][y+1] == 'B' || matrizU1[x+1][y-1] == 'B') && (matrizU1[x+1][y-2] == 'B' || matrizU1[x+1][y+2] == 'B')){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else if (matrizU1[x][y+1] == 'B' && matrizU1[x][y+2] == 'B' && (matrizU1[x+1][y+1] == 'B' || matrizU1[x-1][y+1] == 'B') && (matrizU1[x+2][y+1] == 'B' || matrizU1[x-2][y+1] == 'B')){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else if (matrizU1[x][y-1] == 'B' && matrizU1[x][y-2] == 'B' && (matrizU1[x+1][y-1] == 'B' || matrizU1[x-1][y-1] == 'B') && (matrizU1[x+2][y-1] == 'B' || matrizU1[x-2][y-1] == 'B')){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else if (matrizU1[x-2][y] == 'B' && matrizU1[x-1][y] == 'B' && (matrizU1[x-1][y+1] == 'B' || matrizU1[x-1][y-1] == 'B') && (matrizU1[x-1][y-2] == 'B' || matrizU1[x-1][y+2] == 'B')){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else if (matrizU1[x][y-1] == 'B' && matrizU1[x][y+1] == 'B' && (matrizU1[x-1][y+1] == 'B' || matrizU1[x-1][y-1] == 'B') && (matrizU1[x+1][y+1] == 'B' || matrizU1[x+1][y-1] == 'B')){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else if (matrizU1[x][y-1] == 'B' && matrizU1[x][y-2] == 'B' && (matrizU1[x-1][y-2] == 'B' || matrizU1[x-1][y] == 'B') && (matrizU1[x+1][y-2] == 'B' || matrizU1[x+1][y] == 'B')){
- printf("porta avioes afundado\n");
- verificacao = 1;
- barcoAfundado = 1;
- }else{
- verificacao = 0;
- barcoAfundado = 0;
- }
- }
- blocosUtilizador = blocosUtilizador-1;
- }
- }else{
- continue;
- }
- }
- }
- } while (numTiro<3);
- } while(blocosComputador != 0 || blocosUtilizador != 0);
- if(blocosComputador == 0){
- printf("Parabéns! Ganhou o combate!");
- }else{
- printf("Perdeu o combate!");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement