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.andnombre
从未使用过为什么从卡[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;
}