#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);
}
答案 0 :(得分:1)
您只打印一次网格。您可能希望对网格进行更改,然后再次打印。我还修了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.
代码:
#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;
}