perdon pero lo escribi de un celular a la carrera pero la duda es.
si copilas ese codigo te as cuenta que cada vez que ingresas las cordenas se crea una O en la poscicion y esto pasa porque el jugador se iguala a 1 como dice en la funcion en la funcion imprimir pero la duda es en que linea de codigo se divide para saber si es 1 o no es 1 copila el codigo para que me entiendas porfa
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#include <time.h>
#define CORAZONES 3
void gotoxy(int x,int y){
HANDLE hcon=GetStdHandle(STD_OUTPUT_HANDLE);
COORD dwpos;
dwpos.X=x;
dwpos.Y=y;
SetConsoleCursorPosition(hcon, dwpos);
}
void cuadro(){
int i;
//Horizontales
for(i = 1; i < 50; i++){
gotoxy
(i
, 1); printf("%c", 205); //Horizontales Superiores gotoxy
(i
, 20); printf("%c", 205);//Horizontales Inferiores }
//Verticales
for(i = 2; i < 20; i++){
gotoxy
(1, i
); printf("%c", 186); //Verticales Izquierda gotoxy
(50, i
); printf("%c", 186);//Verticales Derecha }
//Esquinas
gotoxy
(1, 1); printf("%c", 201); gotoxy
(1, 20); printf("%c", 200); gotoxy
(50, 1); printf("%c", 187); gotoxy
(50, 20); printf("%c", 188);}
void imprimir();
void llenar();
void borrar(int,int );
void iniciar();
int i, j, k, jugador[100][100], oponente[100][100], opcion1, opcion2, puntajejugador=0, puntajeoponente=0;
int main(){
iniciar();
return 0;
}
void imprimir (){
for(i=1;i<=5;i++){ // Imprime tablero del oponente
for(j=1;j<=9;j++){
if(oponente[i][j]==3){
}else{
if(oponente[i][j]==2){// Imprime 'X' si vale 2
}else{
}
}
}
}
printf("\n\t\t____________________\n"); gotoxy
(38,4); printf("OPONENTE "); for(i=1;i<=5;i++){ // Imprime el tablero del jugador
for(j=1;j<=9;j++){
if(jugador[i][j]==3){
}
else{
if(jugador[i][j]==2){ // Imprime 'X' si vale 2 || 'O' si vale 1
}
else{
if(jugador[i][j]==1){
}
else{
}
}
}
}
}
gotoxy
(38,11); printf("JUGADOR ");
}
void llenar(){
for(i=1;i<=5;i++){
for(j=1;j<=9;j++){
jugador[i][j]=0;
oponente[i][j]=0;
}
}
for(k=1;k<=5;k++){
while(oponente[i][j]==1){
}
oponente[i][j]=1; //la posicion de los barcos valdra 1
gotoxy
(2,17); printf("dame las cordenadas de tus 5 barcos x%d= y%d= \n\n\n",k
,k
); gotoxy
(41,17); scanf("%d",&opcion2
);
cuadro();
while(opcion2<1 || opcion2>9){
gotoxy
(2,18); printf(" ingresa un valor valido (1 a 9) "); borrar(41,17);
gotoxy
(41,17); scanf("%d",&opcion2
);
cuadro();
}
gotoxy
(47,17); scanf("%d",&opcion1
);
cuadro();
while(opcion1<1 || opcion1>5){
gotoxy
(2,18); printf(" ingresa un valor valido (1 a 5) "); borrar(47,17);
gotoxy
(47,17); scanf("%d",&opcion1
);
gotoxy
(2,17); printf("dame las cordenadas de tus 5 barcos x%d= y%d= \n\n\n",k
,k
); cuadro();
if(jugador[opcion1][opcion2]==1){
k=k-1;
}
jugador[opcion1][opcion2]=1;
}
}
}
void borrar(int x,int y){
}
void iniciar(){// Rellena con '0' el arreglo y coloca los barcos
for(i=1;i<=5;i++){ // Llena todo con '0'
for(j=1;j<=9;j++){
jugador[i][j]=0;
oponente[i][j]=0;
}
}
for(k=1;k<=5;k++){ // Distribuye los barcos
imprimir();
cuadro();
i
=1+rand()%5; // Distribuye los barcos oponentes while(oponente[i][j]==1){
}
oponente[i][j]=1; // La posicion de los barcos valdra 1
gotoxy
(2,17); printf("dame las cordenadas de tus 5 barcos x%d= y%d= \n\n\n",k
,k
); gotoxy
(41,17); scanf("%d",&opcion2
); gotoxy
(47,17); scanf("%d",&opcion1
);
while(opcion2<1 || opcion2>9){
printf(" Escoje un valor valido ( 1 a 9 )\n\tX%d", k
); borrar(41,17);
cuadro();
gotoxy
(41,17); scanf("%d", &opcion2
); }
gotoxy
(2,17); printf("dame las cordenadas de tus 5 barcos x%d= y%d= \n\n\n",k
,k
);
while(opcion1<1 || opcion1>5){
printf("\n Escoje un valor valido ( 1 a 5 )\n\tY%d", k
); borrar(47,17);
gotoxy
(47,17); scanf("%d", &opcion1
);
}
if(jugador[opcion1][opcion2]==1){
gotoxy
(2,18); printf("Ese valor ya existe...\n"); k=k-1;
}
jugador[opcion1][opcion2]=1;
}
imprimir();
cuadro();
}
esto es lo que llevo copila esto, yo le puse un printf cuando vaya a imprimir la O para que vea que se comvierte en 1 lo unico que necesito saber es que me expliquen en que linea hace la trasformacion o separacion.
se que primero se iguala el oponente y el jugador a 0 pero no se en que parte se comvierte en 1 para poner la O