Untitled
unknown
plain_text
2 years ago
7.3 kB
3
Indexable
#include<stdio.h> #include<ctype.h> #include<stdlib.h> #include<conio.h> #include<time.h> //FUNCIONES //Funcion ubicacion de los barcos en la matriz de manera aleatoria void barcos(char mbarcos[10][10]){ int sx,sy,i,j,cont; srand (time(NULL)); for(i=0;i<10;i++){ for(j=0;j<10;j++){ mbarcos[j][i]='0'; } } //primer barco //se inicializo con %8 para que no repitiera la posicion o chocara con otros barcos sx=rand()%8+1; sy=rand()%8+1; for(cont=0;cont<3;cont++){ mbarcos[sx][sy]='1'; sx++; } //segundo barco //se inicializo con %9 para que no repitiera la posicion o chocara con otros barcos a:sx=rand()%9+2; sy=rand()%9+2; if(mbarcos[sx][sy]=='0'&&mbarcos[sx][sy+1]=='0'){ mbarcos[sx][sy]='1'; mbarcos[sx][sy+1]='1'; } else{ goto a; } //tercer barco //se inicializo con %10 para que no repitiera la posicion o chocara con otros barcos b:sx=rand()%10+2; sy=rand()%10+2; if(mbarcos[sx][sy]=='0'){ mbarcos[sx][sy]='1'; } else{ goto b; } } //funcion para las columnas de la matriz int col(char l){ switch(toupper(l)){ case 'A': return 0; case 'B': return 1; case 'C': return 2; case 'D': return 3; case 'E': return 4; case 'F': return 5; case 'G': return 6; case 'H': return 7; case 'I': return 8; case 'J': return 9; default: return 10; } } //funcion para las filas de la matriz int fil(char l){ switch(l){ case '0': return 0; case '1': return 1; case '2': return 2; case '3': return 3; case '4': return 4; case '5': return 5; case '6': return 6; case '7': return 7; case '8': return 8; case '9': return 9; default: return 10; } } //funcion que crea la matriz void imp(char mapa[10][10]){ int i,j; printf("\tA\tB\tC\tD\tE\tF\tG\tH\tI\tJ\n"); for(i=0;i<10;i++){ printf("%d\t",i); for(j=0;j<10;j++){ printf("%c",mapa[j][i]); printf(":\t"); } printf("\n"); } } //FUNCION PRINCIPAL int main(){ char mar[10][10],l,tab[10][10],cx,cy,var; int i,j,turn,sx,sy,gan=0; do{ for(i=0;i<10;i++){ for(j=0;j<10;j++){ mar[j][i]=0; } } barcos(tab); system("cls"); printf("BIENVENIDO A:"); printf("=====================================BATALLA NAVAL==========================================\n"); printf("\n"); printf(".....................................INSTRUCCIONES...........................................\n"); printf("El juego de Batalla Naval consiste en la distribucion de un tablero de 10x10 que representa \n"); printf("el mar abierto, en el se ubican tres barcos de manera aleatoria.\n"); printf("\n"); printf("El jugador debe derribar los barcos por medio de disaros aleatorios segun su eleccion \n"); printf("en un numero de 10 intentos, cada disparo los realizara indicando las\n"); printf("coordenadas (x,y)) o posicion a la que desee disparar, cabe destacar que los barcos no se muestran \n"); printf("en pantalla por lo tanto el jugador deberá adivinar la posición a medida que dispara, la letra X en pantalla \n"); printf("indicara los tiros fallidos y los asteriscos * indicaran los tiros acertados o barcos derribados. \n"); printf("\n"); printf("Si derriba la flota enemiga por completo o almenos en su mayoria, ganara el juego.\n"); printf("\n"); printf("\t//Presione una tecla observar el tablero// \n"); getch(); printf("Tablero de Juego"); printf("-Las letras en mayuscula corresponden a las columnas\n"); printf("-Los numeros corresponden a las filas de la matriz\n"); printf("-para disparar debe indicar las coordenadas, colocando primero las columna y luego la fila\n"); printf("\n"); printf("\t A B C D E F G H I J\n"); printf("\t ___________________________________________________\n"); printf("\t 0 | | | | | | | | | | |\n"); printf("\t ___________________________________________________\n"); printf("\t 1 | | | | | | | | | | |\n"); printf("\t ___________________________________________________\n"); printf("\t 2 | | | | | | | | | | |\n"); printf("\t ___________________________________________________\n"); printf("\t 3 | | | | | | | | | | |\n"); printf("\t ___________________________________________________\n"); printf("\t 4 | | | | | | | | | | |\n"); printf("\t ___________________________________________________\n"); printf("\t 5 | | | | | | | | | | |\n"); printf("\t ___________________________________________________\n"); printf("\t 6 | | | | | | | | | | |\n"); printf("\t ___________________________________________________\n"); printf("\t 7 | | | | | | | | | | |\n"); printf("\t ___________________________________________________\n"); printf("\t 8 | | | | | | | | | | |\n"); printf("\t ___________________________________________________\n"); printf("\t 9 | | | | | | | | | | |\n"); printf("\t ___________________________________________________\n"); printf("\n"); printf("\t\t\t\t PRESIONE CUALQUIER TECLA PARA JUGAR :)\n"); getch(); printf("\n"); system("cls"); for(turn=0;turn<10;turn++){ t1:printf("Turnos restantes: %d\n",10-turn); //si desea ver la matriz de los barcos se tiene //imp(tab); system("cls"); printf("El mapa actual es: \n"); imp(mar); printf("\n"); printf("Marinero! Ingrese las coordenadas del disparo, primero la columna (de A-J) y luego la fila (de 0-9)\n"); scanf("%c%c",&cx,&cy); scanf("%*c"); sx=col(cx); sy=fil(cy); if(sx==10||sy==10){ printf("\n"); printf("error de cordenada :( ingrese las columnas y filas como se indico, presione tecla para continuar"); getch(); system("cls"); goto t1; } if(tab[sx][sy]=='1'){ mar[sx][sy]='*'; printf("\n"); printf("Felicidades! el misil le dio a un barco, presione tecla para continuar\n"); gan++; //acumulador }else{ mar[sx][sy]='X'; printf("\n"); printf("Ups! parece que el misil no dio a un barco, sigue intentando!\n"); } system("cls"); printf("\n"); printf("El mapa actual es: \nLas X marcan misiles fallidos, los * marcan misiles que dieron al blanco\n"); imp(mar); getch(); if(gan==6){ turn=10; } system("cls"); } if(gan==6){ printf("\n"); printf("FELICIDADES MARINERO DERROTASTE TODOS LOS BARCOS!!! GANASTE!!\n"); }else{ printf("La suerte no estuvo de tu lado :( PERDISTE\n"); } printf("Resultado del mapa de la partida\nLas X marcan misiles fallidos, los * marcan misiles que dieron al blanco\n"); printf("\n"); imp(mar); printf("Si desea jugar otra partida presione 1, si desea salir del juego presione cualquier tecla :)\n"); scanf("%c",&var); }while(var=='1'); }
Editor is loading...