Hola vosk, he hecho esto. Pero ahora la el procedimiento Jug me deberia intercambiar los jugadores y se queda en el jugador dos.
Código C:
Ver original#include <stdio.h>
#define ROWS 3
#define COLS 7
#define WORLDSIZE (ROWS * COLS)
char matriz[WORLDSIZE];/*La matriz de tres en raya*/
int emp=1, pjug=1, repe1, coordx=0, coordy=0;
char oc;
void valores()/*inicializador de valores*/
{
emp=0; pjug=1;
int i, j;
for (i=0; i<=WORLDSIZE; i++)
matriz[i] =' ';
}
int getpos(int x, int y) {
return (COLS * (x - 1)) + (y - 1);
}
void casillas(int posicion)
{
if (pjug == 1)
oc='X';
else
oc='O';
if (matriz[posicion] != ' '){
repe1=1; }
else{
matriz[posicion]=oc;
emp++;}
}
void Jug(int Njug)
{
int pos=0;
printf("Jugador %d - Introduce el numero: ",Njug
); scanf("\n%d,%d",&coordx
, &coordy
); while (coordx>3 || coordy>7) {
printf("Opcion NO VALIDA, introduce una correcta: "); scanf("\n%d,%d",&coordx
, &coordy
); } pos = getpos(coordx, coordy);
casillas(pos);
if (repe1 == 1) {
printf("Casilla ya elegida! "); repe1=0;
Jug(pjug);}
if(Njug){
pjug=2;}
else
pjug=1;
}
int cuadro(){
printf("\n\n 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | \n"); printf("--------------------------------\n"); printf(" 1 | %c | %c | %c | %c | %c | %c | %c |\n",matriz
[0],matriz
[1],matriz
[2],matriz
[3],matriz
[4],matriz
[5],matriz
[6]); printf("--------------------------------\n"); printf(" 2 | %c | %c | %c | %c | %c | %c | %c |\n",matriz
[7],matriz
[8],matriz
[9],matriz
[10],matriz
[11],matriz
[12],matriz
[13]); printf("--------------------------------\n"); printf(" 3 | %c | %c | %c | %c | %c | %c | %c |\n",matriz
[14],matriz
[15],matriz
[16],matriz
[17],matriz
[18],matriz
[19],matriz
[20]); printf("--------------------------------\n");
return;
}
int main()
{
int g=0;
valores();
while (WORLDSIZE)
{
cuadro();
switch(pjug)
{
case 1 : Jug(pjug); break;
case 2 : Jug(pjug); break;
}
}
}