Как делать для того, чтобы 3 в линии он хранил последний ход?

Я встретился с этой проблемой делая код 3 в линии и в момент игрения он не сохраняет мне последние ходы.

Проблема содержится в момент делания она первый хода, когда первый ход выбирать первое число а именно игра прямо, заканчивается и не позволяет мне продолжать и идет прямо, чтобы спрашивать, если я хочу сыграть снова или нет.


Я присоединяю код игры:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>



int main(){

    char j1[50];
    char j2[50];
    char numerost[2][2];
    char a,f1,f2;

    int i,j,fpre1,fpre2,lugar,n,aux;

do{

    {   //jugadores(hecho)

    system("cls");
    printf("bienvenidoa Tres en Raya.\n");
    printf("Presione una tecla para comenzar.\n");

    getch();
    system("cls");

    printf("Indique nombre del jugador 1:");
    //gets(j1);
    scanf("%s",&j1);
    fflush(stdin);

    system("cls");

    printf("Indique nombre del jugador 2:");
    //gets(j2);
    scanf("%s",&j2);
    fflush(stdin);

    system("cls");

    }
    {   //eleccion ficha jugadores (hecho)
    {//jugador 1
    do{

        printf("%s,elija ficha con la que jugar.\n",j1);

        printf("1.X.\n");
        printf("2.O.\n");
        printf("3.€.\n");
        printf("4.$.\n");
        printf("5.@.\n");

            scanf("%d",&fpre1);
            fflush(stdin);

        switch(fpre1){


            case 1:
                f1='X';
                fflush(stdin);
                break;

            case 2:
                f1='O';
                fflush(stdin);
                break;

            case 3:
                f1='€';
                fflush(stdin);
                break;

            case 4:
                f1='$';
                fflush(stdin);
                break;

            case 5:
                f1='@';
                fflush(stdin);
                break;


            default: printf("introduzca un numero valido");
                break;
    }
}
    while(0>fpre1||fpre1>5);

    printf("%s jugara con %c\n\n",j1,f1);}

    {//jugador 2

    do{
        printf("%s,elija ficha con la que jugar.\n",j2);

        printf("1.X.\n");
        printf("2.O.\n");
        printf("3.€.\n");
        printf("4.$.\n");
        printf("5.@.\n");

            scanf("%d",&fpre2);
            fflush(stdin);



        switch(fpre2){

            case 1:
                f2='X';

                break;

            case 2:
                f2='O';

                break;

            case 3:
                f2='€';

                break;

            case 4:
                f2='$';

                break;

            case 5:
                f2='@';

                break;

            default: 
            printf("introduzca un numero valido\n");
                break;
        }
        if(fpre1==fpre2){
                printf("las fichas no pueden ser iguales.\n\n");
            }
        else{
            continue;
        }
    } 
    while(fpre1==fpre2||0>fpre2||fpre2>5);

    printf("%s jugara con %c\n\n",j2,f2);}




    }
    {   //tablero(hecho)
    {   //numeros tablero(hecho)
    a='1';
        for(i=0;i<3;i++){
            for(j=0;j<3;j++){
                numerost[i][j]=a++;
            }
        }   
    }
    {   //tablero estructura(hecho)
        for(i=0;i<3;i++){
            for(j=0;j<3;j++){
                if(j<2){

                printf(" %c|",numerost[i][j]);
                }

                else{
                    printf(" %c",numerost[i][j]);
                }

        }
        if(i<2){
        printf("\n---------");
        printf("\n");
        }
        else{
            printf("\n");
        }   
            }

    }
    }
    {   //colocacion de fichas 

    do{

        printf("Coloca la ficha.\n");
        scanf("%d",&aux);
        fflush(stdin);

    }while(aux<1||aux>9);


        switch(aux){
            case'1':
                i=0;
                j=0;
                if(numerost[i][j]==f1||numerost[i][j]==f2){
                    printf("La casilla esta ocupada.\n");
                    }
                break;  
            case'2':
                i=0;
                j=1;
                if(numerost[i][j]==f1||numerost[i][j]==f2){
                    printf("La casilla esta ocupada.\n");
                    }
                    break;
            case'3':
                i=0;
                j=2;
                if(numerost[i][j]==f1||numerost[i][j]==f2){
                    printf("La casilla esta ocupada.\n");
                    }
                    break;  
            case'4':
                i=1;
                j=0;
                if(numerost[i][j]==f1||numerost[i][j]==f2){
                    printf("La casilla esta ocupada.\n");
                    }
                    break;
            case'5':
                i=1;
                j=1;
                if(numerost[i][j]==f1||numerost[i][j]==f2){
                    printf("La casilla esta ocupada.\n");
                    }
                    break;
            case'6':
                i=1;
                j=2;
                if(numerost[i][j]==f1||numerost[i][j]==f2){
                    printf("La casilla esta ocupada.\n");
                    }
                    break;
            case'7':
                i=2;
                j=0;
                if(numerost[i][j]==f1||numerost[i][j]==f2){
                    printf("La casilla esta ocupada.\n");
                    }
                    break;
            case'8':
                i=2;
                j=1;
                if(numerost[i][j]==f1||numerost[i][j]==f2){
                    printf("La casilla esta ocupada.\n");
                    }       
                    break;
            case'9':
                i=2;
                j=2;
                if(numerost[i][j]==f1||numerost[i][j]==f2){
                    printf("La casilla esta ocupada.\n");
                    }
                    break;      

        }
        numerost[i][j]=f1;

        {   //tablero(hecho)
    {   //numeros tablero(hecho)
    a='1';
        for(i=0;i<3;i++){
            for(j=0;j<3;j++){
                numerost[i][j]=a++;
            }
        }   
    }
    {   //tablero estructura(hecho)
        for(i=0;i<3;i++){
            for(j=0;j<3;j++){
                if(j<2){

                printf(" %c|",numerost[i][j]);
                }

                else{
                    printf(" %c",numerost[i][j]);
                }

        }
        if(i<2){
        printf("\n---------");
        printf("\n");
        }
        else{
            printf("\n");
        }   
            }

    }
    }       








    }
    {   //jugar otra vez
    printf("¿desea volver a jugar?\n");
    printf("1.Si.\n");
    printf("2.No.\n");`introducir el código aquí`
    scanf("%d",&n);
    }
    }while(n==1); 
}
0
задан 04.08.2019, 07:27
1 ответ

Я должен допускать, что cometГ - ошибка, не является необходимым она librerГ - string.h logrГ© способствовать тому, чтобы ты cГіdigo оно функционировало без нее, tenГ-схвати бесконечность ошибок написания, и помни, что, чтобы распределять один carГЎcter, ты это должен манипулировать как цепь, следовательно, переменной, в которую ты это распределяешь, тебя должно будьте быть один array возможно, что ему не хватает каких-то деталей, которые я не могу воспринимать с моего мобильного телефона, но acГЎ я оставляю это тебе:

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>



int main(){

    char j1[50];
    char j2[50];
    char numerost[2][2];
    char a[1],f1[1],f2[1];

    int i,j,fpre1,fpre2,lugar,n,aux;

do{

    {   //jugadores(hecho)

    system("cls");
    printf("bienvenido a Tres en Raya.\n");
    printf("Presione una tecla para comenzar.\n");

    getch();
    system("cls");

    printf("Indique nombre del jugador 1:");
    //gets(j1);
    scanf("%s", j1);
    fflush(stdin);

    system("cls");

    printf("\nIndique nombre del jugador 2:");
    //gets(j2);
    scanf("%s", j2);
    fflush(stdin);

    system("cls");

    }
    {   //eleccion ficha jugadores (hecho)
    {//jugador 1
    do{

        printf("\n%s,elija ficha con la que jugar.\n",j1);

        printf("1.X.\n");
        printf("2.O.\n");
        printf("3.&.\n");
        printf("4.$.\n");
        printf("5.@.\n");

            scanf("%d",&fpre1);
            fflush(stdin);

        switch(fpre1){


            case 1:
                f1[1]='X';
                fflush(stdin);
                break;

            case 2:
                f1[1]='O';
                fflush(stdin);
                break;

            case 3:
                f1[1]='&';
                fflush(stdin);
                break;

            case 4:
                f1[1]=';
                fflush(stdin);
                break;

            case 5:
                f1[1]='@';
                fflush(stdin);
                break;


            default: printf("introduzca un numero valido");
                break;
    }
}
    while(0>fpre1||fpre1>5);

    printf("%s jugara con %c\n\n",j1,f1[1]);}

    {//jugador 2

    do{
        printf("%s,elija ficha con la que jugar.\n",j2);

        printf("1.X.\n");
        printf("2.O.\n");
        printf("3.&.\n");
        printf("4.$.\n");
        printf("5.@.\n");

            scanf("%d",&fpre2);
            fflush(stdin);



        switch(fpre2){

            case 1:
                f2[1]='X';

                break;

            case 2:
                f2[1]='O';

                break;

            case 3:
                f2[1]='&';

                break;

            case 4:
                f2[1]=';

                break;

            case 5:
                f2[1]='@';

                break;

            default: 
            printf("introduzca un numero valido\n");
                break;
        }
        if(fpre1==fpre2){
                printf("las fichas no pueden ser iguales.\n\n");
            }
        else{
            continue;
        }
    } 
    while(fpre1==fpre2||0>fpre2||fpre2>5);

    printf("%s jugara con %c\n\n",j2,f2[1]);}




    }
    {   //tablero(hecho)
    {   //numeros tablero(hecho)
    a[1]='1';
        for(i=0;i<3;i++){
            for(j=0;j<3;j++){
                numerost[i][j]=a[i];
            }
        }   
    }
    {   //tablero estructura(hecho)
        for(i=0;i<3;i++){
            for(j=0;j<3;j++){
                if(j<2){

                printf(" %c|",numerost[i][j]);
                }

                else{
                    printf(" %c",numerost[i][j]);
                }

        }
        if(i<2){
        printf("\n---------");
        printf("\n");
        }
        else{
            printf("\n");
        }   
            }

    }
    }
    {   //colocacion de fichas 

    do{

        printf("Coloca la ficha.\n");
        scanf("%d",&aux);
        fflush(stdin);

    }while(aux<1||aux>9);


        switch(aux){
            case 1:
                i=0;
                j=0;
                if(numerost[i][j]==f1[1]||numerost[i][j]==f2[1]){
                    printf("La casilla esta ocupada.\n");
                    }
                break;  
            case 2:
                i=0;
                j=1;
                if(numerost[i][j]==f1[1]||numerost[i][j]==f2[1]){
                    printf("La casilla esta ocupada.\n");
                    }
                    break;
            case 3:
                i=0;
                j=2;
                if(numerost[i][j]==f1[1]||numerost[i][j]==f2[1]){
                    printf("La casilla esta ocupada.\n");
                    }
                    break;  
            case 4:
                i=1;
                j=0;
                if(numerost[i][j]==f1[1]||numerost[i][j]==f2[1]){
                    printf("La casilla esta ocupada.\n");
                    }
                    break;
            case 5:
                i=1;
                j=1;
                if(numerost[i][j]==f1[1]||numerost[i][j]==f2[1]){
                    printf("La casilla esta ocupada.\n");
                    }
                    break;
            case 6:
                i=1;
                j=2;
                if(numerost[i][j]==f1[1]||numerost[i][j]==f2[1]){
                    printf("La casilla esta ocupada.\n");
                    }
                    break;
            case 7:
                i=2;
                j=0;
                if(numerost[i][j]==f1[1]||numerost[i][j]==f2[1]){
                    printf("La casilla esta ocupada.\n");
                    }
                    break;
            case 8:
                i=2;
                j=1;
                if(numerost[i][j]==f1[1]||numerost[i][j]==f2[1]){
                    printf("La casilla esta ocupada.\n");
                    }       
                    break;
            case 9:
                i=2;
                j=2;
                if(numerost[i][j]==f1[1]||numerost[i][j]==f2[1]){
                    printf("La casilla esta ocupada.\n");
                    }
                    break;      

        }
        numerost[i][j]=f1[1];

        {   //tablero(hecho)
    {   //numeros tablero(hecho)
    a[1]= '1';
        for(i=0;i<3;i++){
            for(j=0;j<3;j++){
                numerost[i][j]=a[i];
            }
        }   
    }
    {   //tablero estructura(hecho)
        for(i=0;i<3;i++){
            for(j=0;j<3;j++){
                if(j<2){

                printf(" %c|",numerost[i][j]);
                }

                else{
                    printf(" %c",numerost[i][j]);
                }

        }
        if(i<2){
        printf("\n---------");
        printf("\n");
        }
        else{
            printf("\n");
        }   
            }

    }
    }       








    }
    {   //jugar otra vez
    printf("¿desea volver a jugar?\n");
    printf("1.Si.\n");
    printf("2.No.\n");
    scanf("%d",&n);
    }
    }while(n==1); 
}
0
ответ дан 01.12.2019, 22:35