Scrivere un programma che simuli
una partita a Forza 4 tra due giocatori.
#include <stdio.h>
#define M 6
#define N 7
int cambiagiocatore(int);
int controllacolonna(int matrice[][N], int, int,int);
int controllariga(int matrice[][N], int ,int, int);
int controlladiagonalesx(int matrice[][N], int giocatore, int x, int y);
int controlladiagonaledx(int matrice[][N], int giocatore, int x, int y);
int prossimamossa(int matrice[][N], int giocatore);
int main()
{
int giocatore = 2;
int matrice[M][N];
int i=0;
int j=0;
for (i=0; i<M; i++)
for(j=0; j<N; j++)
matrice[i][j] = 0;
//for(i=0; i<M; i++){
//for(j=0; j<N; j++)
//{
//printf("%d ", matrice[i][j]);
//}printf("n"); }
printf("%d", prossimamossa(matrice,giocatore));
}
int prossimamossa(int matrice[][N],int giocatore)
{
int k=0;
int y=0;
int x=5;
int i=0;
int j=0;
while (k<42)
{
giocatore = cambiagiocatore(giocatore);
x=5;
scanf("%d", &y);
if(y<0 || y>N-1)
return -1;
while (matrice[x][y] != 0 && x>=0)
{
x--;
if(x<0) return -1;
}
matrice[x][y] = giocatore;
for (i=0; i<M; i++){
for(j=0; j<N; j++){
printf("%d ", matrice[i][j]);
}printf("n"); }
if (controllacolonna(matrice, giocatore, x, y) == giocatore ||
(controllariga(matrice, giocatore, x, y) == giocatore) ||
(controlladiagonalesx(matrice, giocatore, x, y) == giocatore) ||
(controlladiagonaledx(matrice, giocatore, x, y) == giocatore))
return giocatore;
k++;
} return 0;
}
int controllacolonna(int matrice[][N], int giocatore, int x, int y)
/* verifica se nella colonna y ci sono simboli tutti uguali */
{ int i;
if (x<=2)
{
for (i=x; i<x+4; i++)
if (matrice[i][y] != giocatore) return 0;
//printf("hai vinto giocatore %d", giocatore );
return giocatore;
}
}
int controllariga(int matrice[][N], int giocatore, int x, int y)
{ int i;
int a=0;
i=y;
while (matrice[x][i+1] == giocatore && i+1<N)
{
i++;
a++;
}
i=y;
while (matrice[x][i-1] == giocatore && i-1>=0)
{
i--;
a++;
}
if (a==3) return giocatore;
else return 0;
}
int controlladiagonalesx(int matrice[][N], int giocatore, int x, int y)
{
int i,j;
int a=0;
j=y;
i=x;
while (matrice[i+1][j+1] == giocatore && i+1<M && j+1<N)
{
i++;
j++;
a++;
}
j=y;
i=x;
while (matrice[i-1][j-1] == giocatore && i-1>=0 && j-1>=0)
{
i--;
j--;
a++;
}
//printf("%d////",a);
if (a==3) return giocatore;
else return 0;
}
int controlladiagonaledx(int matrice[][N], int giocatore, int x, int y)
{
int i,j;
int a=0;
j=y;
i=x;
while (matrice[i+1][j-1] == giocatore && i+1<N && j-1>=0)
{
i++;
j--;
a++;
}
j=y;
i=x;
while (matrice[i-1][j+1] == giocatore && i-1>=0 && j+1<M)
{
i--;
j++;
a++;
}
//printf("%d////",a);
if (a==3) return giocatore;
else return 0;
}
int cambiagiocatore(int giocatore)
/* esegue lo scambio dei giocatori */
{ if (giocatore == 1) return 2;
else return 1;
}
Ricerca appunti sul web
Ricerca personalizzata
venerdì 27 febbraio 2009
Sorgenti c : Forza 4
Pubblicato da Baiox alle 10:41
Etichette: Informatica, Programmazione C
Iscriviti a:
Commenti sul post (Atom)
0 commenti:
Posta un commento