Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - huchoko

#51
Bastante útil, gracias!
Se agradece que sea software libre, creo que deberías colocarla bajo la GNU GPL o la MIT...
Desafortundamente en mi PC (con windows 10) no se ejecuta el exe, osea no funciona.
Saludos.
#52
Vale, ya lo solucioné, tienes que poner std::ws(std::cin) antes del std::getline.
Saludos
#53
Podrías aprender OpenGL o SFML, para hacer juegos, pero lamentablemente te tocara saber inglés, ya que tutos de lo anteriormente dicho desafortunadamente no existen en español  :-(
y aparte que tendras que rezarle a todos los dioses de la faz de la tierra para que cuando instales OpenGL o SFML funcione.
Y va la enésima vez que trato de instalarlas sin éxito, asi que no te quedaría nada más pues.
#54
Buenas, tengo este programa:
código ya no necesario, problema solucionado, ver abajo
#55
Muchas gracias por la explicación.
Con respecto al último ejemplo, absolutamente casi todas las maquinas son little endian. Si mal no recuerdo, los antiguos
procesadores Motorola eran big endian (y aun lo siguen siendo).
Saludos.  :)
#56
Pues no he encontrado mucha info acerca de ambas estructuras de datos, que alguien me las explique que son y cómo usarlas.
Saludos
#57
Gracias! Me funciono, tomaré las consideraciones que me diste.
Saludos
#58
Tengo un juego, escrito en C, el cúal se trata del tres en raya.
Tu compites contra la computadora (el juego tiene una seudo IA)
Todo funciona bien, pero si el jugador o la seudo IA pone una ficha en el casillero 5, (el de almedio), se vuelve invisible y se bugea el juego.
Espero que logren leer mi código espagueti.  :)
Saludos.

#include <stdio.h>
#include <time.h>

void mainloop(char c[3][3]);
void inum(char c[3][3]);
void tablero(char c[3][3]);
void inusr(char c[3][3]);
void seudoai(char c[3][3]);
int win(char c[3][3]);

int main()
{
char c[3][3];
mainloop(c);

system("pause");
return 0;
}

void mainloop(char c[3][3])
{
int j;
int i = 0;
inum(c);
tablero(c);

do
{
system("cls");
tablero(c);
if(i % 2 == 0)
{
inusr(c);
}
else
{
seudoai(c);
}
j = win(c);
++i;
}while(i <= 9 && j == 2);


if(j == 0)
{
printf("Ganaste!\n\n");
}
else if(j == 1)
{
printf("Perdiste!\n\n");
}
else
{
printf("Empate!\n\n");
}

}

void inum(char c[3][3])
{
int i, j;
char aux = '0';

for(i = 0; i < 3; ++i)
{
for(j = 0; j < 3; ++j)
{
c[i][j] = ++aux;
}
}
}

void inusr(char c[3][3])
{
char aux;
int i, j, k;

do
{
do
{
printf("Introduce ficha: ");
fflush(stdin);
scanf("%c", &aux);
}while(aux < '1' || aux > '9');

k = 0;

switch(aux)
{
case '1':{
i = 0;
j = 0;
if (c[i][j] == 'X' || c[i][j] == 'O')
{
k = 1;
printf("Casilla ocupada!\n\n");
}
break;
}
case '2':{
i = 0;
j = 1;
if (c[i][j] == 'X' || c[i][j] == 'O')
{
k = 1;
printf("Casilla ocupada!\n\n");
}
break;
}
case '3':{
i = 0;
j = 2;
if (c[i][j] == 'X' || c[i][j] == 'O')
{
k = 1;
printf("Casilla ocupada!\n\n");
}
break;
}
case '4':{
i = 1;
j = 0;
if (c[i][j] == 'X' || c[i][j] == 'O')
{
k = 1;
printf("Casilla ocupada!\n\n");
}
break;
}
case '5':{
i = 1;
j = 1;
if (c[i][j] == 'X' || c[i][j] == 'O')
{
k = 1;
printf("Casilla ocupada!\n\n");
}
break;
}
case '6':{
i = 1;
j = 2;
if (c[i][j] == 'X' || c[i][j] == 'O')
{
k = 1;
printf("Casilla ocupada!\n\n");
}
break;
}
case '7':{
i = 2;
j = 0;
if (c[i][j] == 'X' || c[i][j] == 'O')
{
k = 1;
printf("Casilla ocupada!\n\n");
}
break;
}
case '8':{
i = 2;
j = 1;
if (c[i][j] == 'X' || c[i][j] == 'O')
{
k = 1;
printf("Casilla ocupada!\n\n");
}
break;
}
case '9':{
i = 2;
j = 2;
if (c[i][j] == 'X' || c[i][j] == 'O')
{
k = 1;
printf("Casilla ocupada!\n\n");
}
break;
}
}
}while(k == 1);

c[i][j] = 'X';
}

void seudoai(char c[3][3])
{
int i, j, k;
//char aux;
srand(time(NULL));

do
{
i = rand() % 3; // n rand entre 0 y 2
j = rand() % 3;
k = 0;

if(c[i][j] == 'X' || c[i][j] == 'O')
{
k = 1;
}
}while(k == 1);
c[i][j] = 'O';
}

void tablero(char c[3][3])
{
int i, j;

for(i = 0; i < 3; ++i)
{
for(j = 0; j < 3; ++j) //replace ++j with ++i, and have fun!
{
if(j < 2)
{
printf(" %c |", c[i][j]);
}
else
{
printf(" %c ", c[i][j]);
}
}
if(i < 2)
{
printf("\n-----------\n");
}
}
printf("\n\n");
}

int win(char c[3][3])
{
if(c[0][0] == 'X' || c[0][0] == 'O')
{
if(c[0][0] == c[0][1] && c[0][0] == c[0][2])
{
if(c[0][0] == 'X')
{
return 0;
}
else
{
return 1;
}
}
else if(c[0][0] == c[1][0] && c[0][0] == c[2][0])
{
if(c[0][0] == 'X')
{
return 0;
}
else
{
return 1;
}
}
}
if(c[1][1] == 'X' || c[1][1] == 'O')
{
if(c[1][1] = c[0][0] && c[1][1] == c[2][2])
{
if(c[1][1] == 'X')
{
return 0;
}
else
{
return 1;
}
}
if(c[1][1] == c[1][0] && c[1][1] == c[1][2])
{
if(c[1][1] == 'X')
{
return 0;
}
else
{
return 1;
}
}
if(c[1][1] == c[2][0] && c[1][1] == c[0][2])
{
if(c[1][1] == 'X')
{
return 0;
}
else
{
return 1;
}
}
if(c[1][1] == c[0][1] && c[1][1] == c[2][1])
{
if(c[1][1] == 'X')
{
return 0;
}
else
{
return 1;
}
}
}
if(c[2][2] == 'X' || c[2][2] == 'O')
{
if(c[2][2] == c[2][0] && c[2][1] == c[2][1])
{
if(c[2][2] == 'X')
{
return 0;
}
else
{
return 1;
}
}
if(c[2][2] == c[0][2] && c[2][2] == c[1][2])
{
if(c[2][2] == 'X')
{
return 0;
}
else
{
return 1;
}
}
}
return 2;
}
#59
Pues tengo un programa el cual escribe esto:
Ñandú áéíóú
pero envés de salir eso sale esto:
?and? ?????
Solo he encontrado soluciones las cuales sólo funcionan en VS studio, en este caso lo necesito para g++
Es un std:ofstream.
#60
De casualidad estás en una PC de 32 bits?