Tercera y ultima parte para realizar el juego Tres en Raya en gráficos de linea de comandos.

source

1 Comentario

  1. ES HACER EL JUEGO DE TIMBIRICHE.. SI SABEN CUAL ES VERDAD?, EL DE UNIR PUNTITOS HACIENDO LINEAS PARA TRATAR DE FORMAR CUADRITOS, Y EL QUE HAGAS MAS CUADRITOS GANA
    NO SE MUCHO DE C POR ESO NECESITO SU AYUDA!
    ESPERO QUE ALGUIEN PUEDA AYUDARME

  2. buenas… siento que hice algo mal… pero ya revisé y no veo el fallo… podrían ayudarme??

    #include <iostream>
    #include <stdio.h>
    #include <string.h>
    #include <time.h>
    #include <stdlib.h>

    using namespace std;

    void bucle( char c[3][3]);
    void intro_ficha(char c[3][3]);
    void tablero ( char c [3][3]);
    void intro_valores(char c [3][3]);
    void intro_IA( char c[3][3]);
    int ganador(char c[3][3]);

    void bucle( char c[3][3]){

    int i, j;
    i = 0;

    intro_ficha(c);
    tablero(c);

    do{

    system("cls");

    printf("nTRES EN RAYAnn");
    tablero(c);

    if ( i % 2 == 0){
    intro_valores(c);
    }
    else{
    intro_IA(c);
    }

    j = ganador(c);
    i++;
    }while( i <= 9 && j == 2);

    if(j == 0){
    printf("Bien! Has ganado!nn");
    }
    else if(j == 1){
    printf("Mala suerte… Perdiste :c");
    }
    else{
    printf("Empate!! Anda, prueba de nuevo.nn");
    }
    }

    void intro_ficha(char c[3][3]){

    int i, j;
    char num = '1';

    for( i = 0; i < 3; i++){
    for( j = 0; j < 3; j++){

    c[i][j] = num++;
    }
    }
    }

    void intro_valores( char c[3][3]){
    nt i,k, j;
    char aux;

    do{
    do{

    printf("Coloca una 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("La casilla esta ocupada. nIntente con otro numero.nn");
    }
    break;
    }
    case '2' :{
    i = 0;
    j = 1;
    if(c[i][j] == 'X' || c[i][j] == 'O'){
    k = 1;
    printf("La casilla esta ocupada. nIntente con otro numero.nn");
    }
    break;
    }
    case '3' :{
    i = 0;
    j = 2;
    if(c[i][j] == 'X' || c[i][j] == 'O'){
    k = 1;
    printf("La casilla esta ocupada. nIntente con otro numero.nn");
    }
    break;
    }
    case '4' :{
    i = 1;
    j = 0;
    if(c[i][j] == 'X' || c[i][j] == 'O'){
    k = 1;
    printf("La casilla esta ocupada. nIntente con otro numero.nn");
    }
    break;
    }
    case '5' :{
    i = 1;
    j = 1;
    if(c[i][j] == 'X' || c[i][j] == 'O'){
    k = 1;
    printf("La casilla esta ocupada. nIntente con otro numero.nn");
    }
    break;
    }
    case '6' :{
    i = 1;
    j = 2;
    if(c[i][j] == 'X' || c[i][j] == 'O'){
    k = 1;
    printf("La casilla esta ocupada. nIntente con otro numero.nn");
    }
    break;
    }
    case '7' :{
    i = 2;
    j = 0;
    if(c[i][j] == 'X' || c[i][j] == 'O'){
    k = 1;
    printf("La casilla esta ocupada. nIntente con otro numero.nn");
    }
    break;
    }
    case '8' :{
    i = 2;
    j = 1;
    if(c[i][j] == 'X' || c[i][j] == 'O'){
    k = 1;
    printf("La casilla esta ocupada. nIntente con otro numero.nn");
    }
    break;
    }
    case '9' :{
    i = 2;
    j = 2;
    if(c[i][j] == 'X' || c[i][j] == 'O'){
    k = 1;
    printf("La casilla esta ocupada. nIntente con otro numero.nn");
    }
    break;
    }
    }

    }while( k == 1);

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

    void intro_IA(char c[3][3]){

    char aux;
    int i, j, k;

    srand(time(NULL));
    do{
    i = rand() % 3;
    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++){

    if( j < 2){
    printf(" %c |", c[i][j]);
    }
    else {
    printf(" %c ", c[i][j]);
    }
    }

    if ( i < 2){
    printf("n-——–n");
    }
    }

    printf("nn");
    }

    int ganador(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; //gané
    }
    else{
    return 1; //perdí
    }
    }

    if(c[0][0] == c[1][0] && c[0][0] == c[2][0]){
    return 0; //nosotros ganamos
    }
    else{
    return 1; //perdimos :'v
    }
    }

    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; // hemos ganado
    }
    else{
    return 1; //hemos perdido
    }
    }

    if(c[1][1] == c[1][0] && c[1][1] == c[1][2]){
    if(c[1][1 == 'X']){
    return 0; // hemos ganado
    }
    else{
    return 1; //hemos perdido
    }
    }

    if(c[1][1] == c[2][0] && c[1][1] == c[0][2]){
    if(c[1][1 == 'X']){
    return 0; // hemos ganado
    }
    else{
    return 1; //hemos perdido
    }
    }

    if(c[1][1] == c[0][1] && c[1][1] == c[2][1]){
    if(c[1][1 == 'X']){
    return 0; // hemos ganado
    }
    else{
    return 1; //hemos perdido
    }
    }
    }

    if(c[2][2] == 'X' || c[2][2] == 'O'){
    if(c[2][2] == c[2][0] && c[2][2] == c[2][1]){
    if(c[2][2] == 'X'){
    return 0; // hemos ganado
    }
    else{
    return 1; //hemos perdido
    }
    }

    if(c[2][2] == c[0][2] && c[2][2] == c[1][2]){
    if(c[2][2] == 'X'){
    return 0; // hemos ganado
    }
    else{
    return 1; //hemos perdido
    }
    }
    }return 2;
    }

    gracias D:

  3. /**************************************
    Juegos simple en C++: Tres en raya(gato)
    *Creado el 19/11/16-5:40PM *
    * *
    **************************************/
    #include <iostream>
    #include <stdlib.h>
    #include <string.h>
    #include <time.h>
    using namespace std;

    void loop(char c[3][3]);
    void Intro_primero(char c[3][3]);
    void tablero(char c[3][3]);
    void Intro_Yo(char c[3][3]);
    void Intro_IA(char c[3][3]);
    int Ganador(char c[3][3]);

    int main (){
    char c [3][3];//tablero

    loop(c);//llaman a todas las funciones fundamentales y hace un refresco de pantalla
    cout<<"n";
    system ("pause");
    return 0;
    }

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

    Intro_primero(c);
    tablero (c);
    do{
    system ("cls");
    tablero(c);
    if (i % 2 == 0){
    Intro_Yo(c);
    }
    else{
    Intro_IA(c);
    }
    j = Ganador(c);
    i++;
    }while ((i < 9) && (j == 2));
    system ("cls");
    tablero(c);
    if (j == 0){
    cout<<endl<<"Felicidades. Ganaste!!n";
    }
    else if (j == 1){
    cout<<endl<<"Oh, no! Has perdidido :C.n";
    }
    else{
    cout<<endl<<"Has empatado :/.n";
    }
    }

    void Intro_primero(char c[3][3]){
    char aux;

    aux = '1';

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

    void Intro_Yo(char c[3][3]){
    char aux;
    int i, j, k;
    /*en estos bucles se solucionan 2 problemas graves que son:
    -La introduccion de fichas invalidas
    – El que el programa reconozca si el usuario quiere pone una ficha ya puesta antes.
    */
    do{
    k = 0;
    do{
    cout<<endl<<"Coloca ficha: ";
    fflush(stdin);
    cin>>aux;
    }while((aux < '1') ||( aux > '9'));
    switch(aux){
    case '1':
    i = 0;
    j = 0;
    if (c[i][j] == 'X' || c[i][j] == 'O'){
    k = 1;
    cout<<endl<<"La casilla esta ocupada. Intentalo con otro numero."<<endl;
    }
    break;
    case '2':
    i = 0;
    j = 1;
    if (c[i][j] == 'X' || c[i][j] == 'O'){
    k = 1;
    cout<<endl<<"La casilla esta ocupada. Intentalo con otro numero."<<endl;
    }
    break;
    case '3':
    i = 0;
    j = 2;
    if (c[i][j] == 'X' || c[i][j] == 'O'){
    k = 1;
    cout<<endl<<"La casilla esta ocupada. Intentalo con otro numero."<<endl;
    }
    break;
    case '4':
    i = 1;
    j = 0;
    if (c[i][j] == 'X' || c[i][j] == 'O'){
    k = 1;
    cout<<endl<<"La casilla esta ocupada. Intentalo con otro numero."<<endl;
    }
    break;
    case '5':
    i = 1;
    j = 1;
    if (c[i][j] == 'X' || c[i][j] == 'O'){
    k = 1;
    cout<<endl<<"La casilla esta ocupada. Intentalo con otro numero."<<endl;
    }
    break;
    case '6':
    i = 1;
    j = 2;
    break;
    case '7':
    i = 2;
    j = 0;
    if (c[i][j] == 'X' || c[i][j] == 'O'){
    k = 1;
    cout<<"La casilla esta ocupada. Intentalo con otro numero."<<endl;
    }
    break;
    case '8':
    i = 2;
    j = 1;
    if (c[i][j] == 'X' || c[i][j] == 'O'){
    k = 1;
    cout<<"La casilla esta ocupada. Intentalo con otro numero."<<endl;
    }
    break;
    case'9':
    i = 2;
    j =2;
    if (c[i][j] == 'X' || c[i][j] == 'O'){
    k = 1;
    cout<<"La casilla esta ocupada. Intentalo con otro numero."<<endl;
    }
    break;
    }
    }while(k == 1);
    c[i][j] = 'X';
    }
    //La pc pone fichas
    void Intro_IA(char c[3][3]){
    int i,j,k;

    srand(time(NULL));//Semilla
    do{

    i = rand() % 3;
    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]){

    for (int i = 0; i<3;i++){
    for (int j = 0; j<3; j++){
    if (j < 2){
    cout<<" "<<c[i][j]<<" |";
    }
    else{
    cout<<" "<<c[i][j];}
    }
    if(i < 2){
    cout<<endl<<"-——–"<<endl;
    }
    }
    }
    //Return 0 = jugador gano, return 1 = maquina gano
    int Ganador(char c[3][3]){
    //ficha inicial(1)
    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 if (c[0][0] == 'O'){
    return 1;
    }
    }
    if (c[0][0] == c[1][0] && c[0][0] == c[2][0]){
    if (c[0][0] == 'X'){
    return 0;
    }
    else if (c[0][0] == 'O'){
    return 1;
    }
    }
    }
    //Ficha central(5)
    else if (c[1][1] == 'X' || c[1][1] == 'O'){
    //fichas 1 5 9
    if (c[1][1] == c[0][0] && c[1][1] == c[2][2]){
    if (c[1][1] == 'X'){
    return 0;
    }
    else if (c[0][0] == 'O'){
    return 1;
    }
    }
    //fichas 2 5 8
    if (c[1][1] == c[0][1] && c[1][1] == c[2][1]){
    if (c[1][1] == 'X'){
    return 0;
    }
    else if (c[0][0] == 'O'){
    return 1;
    }
    }
    //Fichas 4 5 6
    if (c[1][1] == c[1][0] && c[1][1] == c[1][2]){
    if (c[1][1] == 'X'){
    return 0;
    }
    else if (c[0][0] == 'O'){
    return 1;
    }
    }
    //fichas 7 5 3
    if (c[1][1] == c[2][0] && c[1][1] == c[0][2]){
    if (c[1][1] == 'X'){
    return 0;
    }
    else if (c[0][0] == 'O'){
    return 1;
    }
    }
    }
    //Ficha final (9)
    else if(c[2][2] == 'X' || c[2][2] == 'O'){
    if (c[2][2] == c[1][2] && c[2][2] == c[0][2]){
    if (c[2][2] == 'X'){
    return 0;
    }
    else if (c[0][0] == 'O'){
    return 1;
    }
    if (c[2][2] == c[2][1] && c[2][2] == c[2][0]){
    if (c[2][2] == 'X'){
    return 0;
    }
    else if (c[0][0] == 'O'){
    return 1;
    }
    }
    }
    }
    return 2;
    }

  4. Hola, tengo una duda.
    Estuve leyendo bastantes comentarios pero no encontre nada que tenga mi error,
    El error es que no importa si es la primera casilla que marco o la ultima, pero cuando marco el numero "5" Me aparece "Has Ganado!!"
    Y no se porque es
    Tambien trate de fijarme en que me habia equivocado pero no encuentro mi error
    Aca te dejo lo que hice:

    //Ta te ti

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

    void loop (char c [3][3]);
    void Intro_Primera (char c[3][3]);
    void tablero (char c[3][3]);
    void Intro_Yo (char c [3][3]);
    void Intro_IA (char c[3][3]);
    int ganador (char c[3][3]);

    int main (){

    char c [3][3];

    loop (c);

    system ("pause");
    return 0;
    }

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

    i = 0;

    Intro_Primera (c);

    do{
    system ("cls");
    tablero (c);

    if (i % 2 == 0){
    Intro_Yo (c);
    }
    else{
    Intro_IA(c);
    }
    j = ganador (c);
    i++;

    }while (i <= 9 && j == 2);

    if (j == 0){
    printf ("Has Ganado!!nn");
    }
    else if (j == 1){
    printf ("Ohh noo!! Has perdido!!nn");
    }
    else{
    printf ("Has empatado!! Intentalo de nuevo!!");
    }
    }

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

    aux = '1';

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

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

    do{
    do{
    printf ("Coloca una 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 ("La casilla esta ocupada! Intentalo con otro numero.nn");
    }
    break;
    }

    case '2': {
    i = 0;
    j = 1;
    if (c[i][j] == 'X' || c [i][j] == 'O'){
    k = 1;
    printf ("La casilla esta ocupada! Intentalo con otro numero.nn");
    }
    break;
    }

    case '3': {
    i = 0;
    j = 2;
    if (c[i][j] == 'X' || c [i][j] == 'O'){
    k = 1;
    printf ("La casilla esta ocupada! Intentalo con otro numero.nn");
    }
    break;
    }

    case '4': {
    i = 1;
    j = 0;
    if (c[i][j] == 'X' || c [i][j] == 'O'){
    k = 1;
    printf ("La casilla esta ocupada! Intentalo con otro numero.nn");
    }
    break;
    }

    case '5': {
    i = 1;
    j = 1;
    if (c[i][j] == 'X' || c [i][j] == 'O'){
    k = 1;
    printf ("La casilla esta ocupada! Intentalo con otro numero.nn");
    }
    break;
    }

    case '6': {
    i = 1;
    j = 2;
    if (c[i][j] == 'X' || c [i][j] == 'O'){
    k = 1;
    printf ("La casilla esta ocupada! Intentalo con otro numero.nn");
    }
    break;
    }

    case '7': {
    i = 2;
    j = 0;
    if (c[i][j] == 'X' || c [i][j] == 'O'){
    k = 1;
    printf ("La casilla esta ocupada! Intentalo con otro numero.nn");
    }
    break;
    }

    case '8': {
    i = 2;
    j = 1;
    if (c[i][j] == 'X' || c [i][j] == 'O'){
    k = 1;
    printf ("La casilla esta ocupada! Intentalo con otro numero.nn");
    }
    break;
    }

    case '9': {
    i = 2;
    j = 2;
    if (c[i][j] == 'X' || c [i][j] == 'O'){
    k = 1;
    printf ("La casilla esta ocupada! Intentalo con otro numero.nn");
    }
    break;
    }
    }
    }while (k == 1);

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

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

    srand (time(NULL));
    do{
    i = rand() % 3;
    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++){
    if (j < 2){
    printf (" %c |",c[i][j]);
    }
    else {
    printf (" %c ",c[i][j]);
    }
    }
    if (i < 2){
    printf ("n-——–n");
    }
    }
    printf ("nn");
    }

    int ganador (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; //He ganado
    }
    else {
    return 1; //He perdido
    }
    }
    if (c[0][0] == c[1][0] && c[0][0] == c[2][0]){
    if (c [0][0] == 'X'){
    return 0; //He ganado
    }
    else {
    return 1; //He perdido
    }
    }
    }
    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; //He ganado
    }
    else {
    return 1; //He perdido
    }
    }
    if (c[1][1] == c[1][0] && c[1][2]){
    if (c [1][1] == 'X'){
    return 0; //He ganado
    }
    else {
    return 1; //He perdido
    }
    }
    if (c[1][1] == c[2][0] && c[0][2]){
    if (c [1][1] == 'X'){
    return 0; //He ganado
    }
    else {
    return 1; //He perdido
    }
    }
    if (c[1][1] == c[1][1] && c[2][1]){
    if (c [1][1] == 'X'){
    return 0; //He ganado
    }
    else {
    return 1; //He perdido
    }
    }
    }
    if (c[2][2] == 'X' || c [2][2] == 'O'){
    if (c[2][2] == c[2][0] && c[2][2] == c[2][1]){
    if (c [2][2] == 'X'){
    return 0; //He ganado
    }
    else {
    return 1; //He perdido
    }
    }
    if (c[2][2] == c[2][0] && c[2][2] == c[1][2]){
    if (c [2][2] == 'X'){
    return 0; //He ganado
    }
    else {
    return 1; //He perdido
    }
    }
    }
    return 2;
    }

    Aunque supongo que el error esta en la funcion "int ganador"

    Espero que me puedas responder 😀

    Muchas gracias
    Saludos

  5. hola, he aprendido mucho con tus tutoriales y en el dia de hoy quisiera saber que tan etico o esterico es el siguiente codigo de la funcion introduce yo, para evitar utilizar el switch y mejor utilizar un bucle for, de antemano gracias por la atencion prestada y por tus videos

    void introduceyo(char c[3][3]){

    int i, j, k, l;
    char op, temp, aux;

    do{
    temp = '1';
    k = 0;
    l = 0;
    do{
    printf("introduce tu ficha en una casilla.n");
    fflush(stdin);
    scanf("%c",&op);

    }while(op < '1' || op > '9');

    for(i = 0 ; i < 3 && k == 0 ; i++){
    for (j = 0 ; j < 3 && k == 0 ; j++){
    if(temp == op){
    aux = c[i][j];
    k = 1;
    if(aux == 'X' || aux == 'O'){
    printf("esta casilla esta ocupada, intentalo en otra.n");
    l = 1;
    }
    else{
    aux = 'X';
    }

    }
    temp++;
    }
    }

    c[i-][j-];

    if(aux == 'X'){
    c[i][j] = 'X';
    }

    }while(l == 1);
    }

  6. Hola! Nos ha encantado tu vídeo. Podrías pasarnos el link del código fuente?
    a ver, es que tenemos que hacer un trabajo de informática y queríamos hacer un tres en raya en muy poco tiempo porque tenemos muchos exámenes que estudiar, así que si nos lo pasas sería genial! :D!!!!!

  7. Muy buen canal, por cierto; me podrías ayudar a hacer este ejercicio:

    EJERCICIO 19: Consideramos una cuadrícula de 5 x 5, en la que se colocará un barco
    que ocupará 3 casillas consecutivas, que pueden estar en horizontal, vertical
    o diagonal. El barco se colocará aleatoriamente. Habrá dos jugadores que
    deben intentar hundir el barco. Para comenzar la partida, se mostrará el
    tablero en pantalla de la siguiente forma:
    X X X X X
    X X X X X
    X X X X X
    X X X X X
    X X X X X
    y se indicará al primer jugador que elija una casilla (fila y columna),
    considerando que se cuenta a partir de 1 de izquierda a derecha (columnas) y
    de abajo arriba (filas). Si la casilla contiene parte del barco, se pondrá en su
    posición un asterisco y el jugador podrá elegir otra casilla; en caso contrario,
    se pondrá un guión y el turno pasará al siguiente jugador, al que se aplican
    las mismas normas. Ganará el juego el jugador que consiga hundir la última
    parte del barco, independientemente de quién haya hundido las otras 3
    casillas.
    Convertir un número decimal N dado por teclado a binario. 

  8. Saludos!!,, muy buen video, recien comienzo con la programacion en c,, y este viedeo me ha parecido simplemente maravilloso,, el codigo me ha compilado y se ve muy bien, solo que la condicion donde el juego termina en empate, no me arroja el mensaje,, NO SABRAN A QUE SE DEBA???,, espero me pueda ayudar,, de antemano gracias,, felicidades y siga con los videos…

  9. El problema que tienes para que no te coja 80 se puede solucionar rápido. ¿Por qué lo pones tipo char el aux? Si luego lo vas a usar solo para comparar con el switch… y no lo vas almacenar en la matriz… Si lo pones tipo Int ese problema te lo quitas.

    Ahora te pregunto yo… 

    Si en vez de poner un numero… pongo una letra… el programa se me queda bloqueado.. te sabes alguna manera para evitar eso?? que siempre hay que probar las cosas para tontos xD.

    Me encantan tus vídeos y explicas que da gusto.
    Sigue así! =)

  10. O es problema mío, o es problema del programa, pero me parece importante, y es que según esta programado (Me parece, puedo equivocarme) que al terminar una linea ganará el que ocupe la posición 1,5,9 dependiendo de la linea.

    Me explico con un ejemplo que me ha pasado, la IA ocupaba el 3 y el 6, y yo puse el 9, de algún modo automáticamente gané, voy a pasar el depurador igualmente a ver que pasa.

    PD: Según veo el problema solo me ocurre con el 9, entonces creo que es cosa mía aún así le he hecho un copia pega y cambiado valores.. fiu no me acostumbro a programas de 250 lineas xD

    PD2: Sin duda funciona como le da la real gana xD Creo que voy a tener que empezar de 0

Dejar respuesta

Please enter your comment!
Please enter your name here