Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言中的匹配游戏_C_Matrix_Matching - Fatal编程技术网

C语言中的匹配游戏

C语言中的匹配游戏,c,matrix,matching,C,Matrix,Matching,到目前为止:大家好!我更新了我的游戏,以便在新的矩阵中打印两个卡选项!但是现在,第一个矩阵(将全部[$]显示)没有打印。另外,还有一个额外的[$]制卡。到目前为止,我的代码是: #include <stdio.h> #include <stdlib.h> #include <string.h> #include "stdio.h" // stdio.h significa cabecera de entrada y salida estándar void

到目前为止:大家好!我更新了我的游戏,以便在新的矩阵中打印两个卡选项!但是现在,第一个矩阵(将全部[$]显示)没有打印。另外,还有一个额外的[$]制卡。到目前为止,我的代码是:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "stdio.h" // stdio.h significa cabecera de entrada y salida estándar

void imprimeGrid(char (*card)[4])
{
    int f,c;
    printf("     1    2    3    4\n");
    for (f = 0; f<4; f++) // para controlar el numero de filas
    {
        printf(" %i ",f+1); // para imprimir el numero de las columnas, hacer f+1
        for (c=0; c<4; c++)
        {
            printf(" [$] ",card[f][c]);
        }
        printf("\n");
    }
}
void juego() 
{
    int x1,y1,x2,y2;
    char card[4][4];
    printf ("El primer NIVEL: \n\n");
    card[0][0]='H';
    card[0][1]='O';
    card[0][2]='C';
    card[0][3]='O';
    card[1][0]='f';
    card[1][1]='H';
    card[1][2]='C';
    card[1][3]='H';
    card[2][0]='H';
    card[2][1]='C';
    card[2][2]='f';
    card[2][3]='O';
    card[3][0]='f';
    card[3][1]='C';
    card[3][2]='H';
    card[3][3]='f';

    printf("Tarjeta 1) Ingrese numero de fila: ");
    scanf("%i",&x1);
    printf("Ingrese numero de columna: ");
    scanf("%i",&y1);
    x1=x1-1;
    y1=y1-1;

    printf ("Su eleccion es:[%c]",card[x1][y1]);
    fflush (stdin);
    printf("\n \n");
    printf("Tarjeta 2) Ingrese numero de fila: ");
    scanf("%i",&x2);
    printf("Ingrese numero de columna: ");
    scanf("%i",&y2);
    x2=x2-1;
    y2=y2-1;
    printf ("Su eleccion es:[%c]",card[x2][y2]);
    printf("\n \n");

    int f,c;
    printf("     1    2    3    4\n");
    for (f = 0; f<4; f++)
    {
    printf(" %i ",f+1);
        for (c=0; c<4; c++)
        {
            if ((f==x1) && (c==y1))
            {
                printf(" [%c] ",card[f][c]);
            }
            if ((f==x2) && (c==y2))
            {
                printf(" [%c] ",card[f][c]);
            }
            else
           {
               printf(" [$] ");
           }
        }
    printf("\n");
    }

    if (card[x1][y1]==card[x2][y2])
    {
        printf("Tienes una pareja!\n");
    }
    else
    {
        printf("No tienes una pareja!\n");
    }

}

void main() 
{
    int again = 0;
    do 
    {
        juego();
        printf("Enter 1 to play again. Enter 0 to quit. ");
        scanf("%i",&again);
    } while(again);
}
#包括
#包括
#包括
#包括“stdio.h”//stdio.h重要的中央银行和塞利达银行
无效IMPIMEGRID(字符(*卡)[4])
{
int f,c;
printf(“1234”);

对于(f=0;f您只打印了一次网格。您可能希望更改网格,然后再次打印。我还修复了6个小错误

更新3:更改以适应新的要求

以下是新的输出:

El primer NIVEL:

    1    2    3    4
 1  [@]  [@]  [@]  [@]
 2  [@]  [@]  [@]  [@]
 3  [@]  [@]  [@]  [@]
 4  [@]  [@]  [@]  [@]
Primera Posicion X (fila): 2
Primera Posicion Y (columna): 3
Su eleccion es:[C]

Segunda Posicion X: 3
Segunda Posicion Y: 4
Su eleccion es:[H]

    1    2    3    4
 1  [@]  [@]  [@]  [@]
 2  [@]  [@]  [@]  [@]
 3  [@]  [C]  [@]  [@]
 4  [@]  [@]  [H]  [@]
Enter 1 to play again. Enter 0 to quit. 1
Primera Posicion X (fila): 1
Primera Posicion Y (columna): 1
Su eleccion es:[H]

Segunda Posicion X: 2
Segunda Posicion Y: 2
Su eleccion es:[f]

    1    2    3    4
 1  [H]  [@]  [@]  [@]
 2  [@]  [f]  [@]  [@]
 3  [@]  [C]  [@]  [@]                       <- keep visible
 4  [@]  [@]  [H]  [@]
Enter 1 to play again. Enter 0 to quit.
El底漆NIVEL:
1    2    3    4
1  [@]  [@]  [@]  [@]
2  [@]  [@]  [@]  [@]
3  [@]  [@]  [@]  [@]
4  [@]  [@]  [@]  [@]
Primera Posicon X(fila):2
Primera Posicon Y(专栏):3
苏·埃列西翁[C]
Segunda Posicon X:3
Segunda Posicon Y:4
Su eleccion es:[H]
1    2    3    4
1  [@]  [@]  [@]  [@]
2  [@]  [@]  [@]  [@]
3[@][C][@][@]
4[@][@][H][@]
输入1重新播放。输入0退出。1
Primera Posicon X(fila):1
Primera Posicon Y(专栏):1
Su eleccion es:[H]
Segunda Posicon X:2
Segunda Posicon Y:2
苏·埃列西翁[f]
1    2    3    4
1[H][@][@][@][@]
2[@][f][@][@]

3[@][C][@][@][@]你真的应该告诉我们更多。你到底想做什么?你的printf中的
[@]
是什么?没有完整的西班牙语(我不懂西班牙语):(另外,
C
if(C=1)时没有初始化)
evaluates.and
nombre
从未使用过为什么从卡[f][c]更改为卡[f][0]?而且,[@]只是游戏卡的设计。我不知道如何做:该人选择两张卡,但我如何打印他们的选择/对矩阵进行更改,以便只显示这两张“卡”显示H/O/f/C?如果它们相等,我如何保持这种状态,如果它们不相等,我如何将矩阵更改为all[@]?感谢您组织我的程序!也感谢所有评论!好的,关于
卡[f][0]
:在您的版本中,
c
没有初始化,但您使用它的时候就好像它是
c=0
一样,所以我改变了它。关于
[@]
:简单地说,printf中
%
的数量必须与字符串后面的参数数量相同。最后,如何“使矩阵全为”`int cc,rr;for(cc=0;cc
#include "stdio.h"
void printGrid(char (*selected)[4], char (*card)[4]) {
    printf("    1    2    3    4\n");
    int f; for (f = 0; f<4; f++) // para controlar el numero de filas
    {
        printf(" %i ",f+1); // para imprimir el numero de las columnas, hacer f+1
        int c; for (c=0; c<4; c++)
        {
            if( selected[f][c] ) {
                printf(" [%c] ",card[f][c]);
            } else {
                printf(" [@] ");
            }
        }
        printf("\n");
    }
}
void juego(char (*selected)[4], char (*card)[4])
{
    int x1,y1,x2,y2;

    printf("Primera Posicion X (fila): ");
    scanf("%i",&x1);
    printf("Primera Posicion Y (columna): ");
    scanf("%i",&y1);
    x1=x1-1;
    y1=y1-1;

    selected[y1][x1] = 1;

    printf ("Su eleccion es:[%c]",card[x1][y1]);
    fflush (stdin);
    printf("\n \n");
    printf("Segunda Posicion X: ");
    scanf("%i",&x2);
    printf("Segunda Posicion Y: ");
    scanf("%i",&y2);
    x2=x2-1;
    y2=y2-1;
    printf ("Su eleccion es:[%c]",card[x2][y2]);
    printf("\n \n");

    selected[y2][x2] = 1;

    printGrid(selected, card); 
}

int main() 
{
    int again = 0;

    char card[4][4];
    printf ("El primer NIVEL: \n\n");
    card[0][0]='H';
    card[0][1]='O';
    card[0][2]='C';
    card[0][3]='O';
    card[1][0]='f';
    card[1][1]='f';
    card[1][2]='C';
    card[1][3]='H';
    card[2][0]='H';
    card[2][1]='C';
    card[2][2]='f';
    card[2][3]='H';
    card[3][0]='f';
    card[3][1]='C';
    card[3][2]='H';
    card[3][3]='O';

    char selected[4][4] = { 0 };

    printGrid(selected, card);

    do {
        juego(selected, card);
        printf("Enter 1 to play again. Enter 0 to quit. ");
        scanf("%i",&again);
    } while(again);

    return 0;
}