Sapreste dirmi che errori ho fatto, il linguaggio di programmazione è di c:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//funzioni main
int schermatahome();
int regole();
int informazioni();
int gioco(); //funzioni gioco
int verificamovimento(int a[5][3], int x1, int y1, int x2, int y2, int giocatore);
void partecipanti(char nome1[],char nome2[]);
void sceltapedine1(char nome1[],int *x1,int *x2, int *y1,int *y2);
void sceltapedine2(char nome2[],int *x1,int *x2, int *y1,int *y2);
void scacchiera(int matr[5][3]);
void movimento1(int a[5][3],char nome1[],int x1,int x2, int y1,int y2,int pl);
void movimento2(int a[5][3],char nome2[],int x1,int x2, int y1,int y2,int pl);
void vincita(char nome1[],char nome2[],int b);
int main(){
int scelta;
int s;
do{
scelta=schermatahome();
switch(scelta){
case 1:
s=gioco();
break;
case 2:
s=regole();
break;
case 3:
s=informazioni();
break;
default:
printf("\nHai sbaliato a digitare");
break;
}
}while(s==2);
return 0;
}
int schermatahome(){
int scelta,a;
char ch=10;
while(ch!=13){
system("cls");
printf(" __ _ __ \n");
printf(" | __ \\ /\\ | \\/ | /\\ \n");
printf(" | | | | / \\ | \\ / | / \\ \n");
printf(" | | | | / /\\ \\ | |\\/| | / /\\ \\ \n");
printf(" | |_| |/ __ \\ | | | | / ___ \\ \n");
printf(" |__/// \\_\\|| ||// \\\\ \n");
printf(" _ _ __ _ _ \n");
printf(" | |() / _|() | | \n");
printf(" _ _ _ _ __ _ _ | | _ | | _ _ _ _ | | __ _ \n");
printf(" / _| / _ \\| ' ` _ \\ | '_ \\ | || || || | / _|/ ` || _|/ _` |\n");
printf(" \\__ \\| _/| | | | | || |) || || || | | || (_| (| || || (| |\n");
printf(" |_/ \\__||| || ||| ._/ |||||| || \\_|\\,| \\_|\\,|\n");
printf(" | | \n");
printf(" |_| \n");
printf("---------------------------------------------------------------------\n");
if(scelta==1){
printf("\n\t\t\t ---> GIOCA \n");
a=1;
}
else printf("\n\t\t\t ---> gioca \n");
if(scelta == 2){
printf("\n\n\t\t\t ---> REGOLE \n");
a=2;
}
else printf("\n\n\t\t\t ---> regole \n");
if(scelta == 3){
printf("\n\n\t\t\t ---> INFORMAZIONI \n");
a=3;
}
else printf("\n\n\t\t\t ---> informazioni \n");
ch = getch();
if(ch == 72)
scelta--;
else if(ch == 80)
scelta++;
if(scelta<1)
scelta = 5;
else if(scelta>5)
scelta = 1;
}
return a;
}
int regole(){
int a; char b;
system("cls");
printf(" __ _ __ \n");
printf(" | __ \\ /\\ | \\/ | /\\ \n");
printf(" | | | | / \\ | \\ / | / \\ \n");
printf(" | | | | / /\\ \\ | |\\/| | / /\\ \\ \n");
printf(" | |_| |/ __ \\ | | | | / ___ \\ \n");
printf(" |__/// \\_\\|| ||// \\\\ \n");
printf(" _ _ __ _ _ \n");
printf(" | |() / _|() | | \n");
printf(" _ _ _ _ __ _ _ | | _ | | _ _ _ _ | | __ _ \n");
printf(" / _| / _ \\| ' ` _ \\ | '_ \\ | || || || | / _|/ ` || _|/ _` |\n");
printf(" \\__ \\| _/| | | | | || |) || || || | | || (_| (| || || (| |\n");
printf(" |_/ \\__||| || ||| ._/ |||||| || \\_|\\,| \\_|\\,|\n");
printf(" | | \n");
printf(" |_| \n");
printf("---------------------------------------------------------------------\n");
printf(" il gioco consiste in una dama giocata su una scacchiera costituita\n");
printf(" da 15 caselle 8 bianche e 7 nere. Ogni giocatore dispone di tre\n");
printf(" pedine che muove sulle caselle bianche dal basso verso l'alto per\n");
printf(" le pedine bianche(1) vice versa per le pedine nere(2).i bianchi\n");
printf(" iniziano per primi.La partita termina con la vincita del giocatore\n");
printf(" che riesce per primo a portare la proria pedina sull'utima colonna\n");
printf("---------------------------------------------------------------------\n");
printf(" premi invio per tornare alla home o esc per chiudere il programma\n");
b=getch();
if(b==13){
a=2;
return a;
}
if(b==27){
a=1;
return a;
}
}
int informazioni(){
int a; char b;
system("cls");
printf(" __ _ __ \n");
printf(" | __ \\ /\\ | \\/ | /\\ \n");
printf(" | | | | / \\ | \\ / | / \\ \n");
printf(" | | | | / /\\ \\ | |\\/| | / /\\ \\ \n");
printf(" | |_| |/ __ \\ | | | | / ___ \\ \n");
printf(" |__/// \\_\\|| ||// \\\\ \n");
printf(" _ _ __ _ _ \n");
printf(" | |() / _|() | | \n");
printf(" _ _ _ _ __ _ _ | | _ | | _ _ _ _ | | __ _ \n");
printf(" / _| / _ \\| ' ` _ \\ | '_ \\ | || || || | / _|/ ` || _|/ _` |\n");
printf(" \\__ \\| _/| | | | | || |) || || || | | || (_| (| || || (| |\n");
printf(" |_/ \\__||| || ||| ._/ |||||| || \\_|\\,| \\_|\\,|\n");
printf(" | | \n");
printf(" |_| \n");
printf("---------------------------------------------------------------------\n");
printf(" questo gioco e' nato come progetto scolastico, consegnato alla classe \n");
printf(" terza B informatica da svolgersi nell'arco di 15 giorni. I membri di ogni gruppo \n");
printf(" hanno lavorato insieme per creare questo progetto. il nosto gruppo composto da 5 studenti ha lavorato in questo modo: \n");
printf(" \n");
printf("---------------------------------------------------------------------\n");
printf(" premi invio per tornare alla home o esc per chiudere il programma\n");
b=getch();
if(b==13){
a=2;
return a;
}
if(b==27){
a=1;
return a;
}
}
int gioco(){
int pedine[5][3] = {{1,0,1},
{0,1,0},
{0,0,0},
{0,2,0},
{2,0,2}};
char nome1[25],nome2[25],c;
int a=0,d=0;
int x1,y1;
int x2,y2;
int giocatore = 1;
partecipanti(nome1,nome2);
system("cls");
do{
scacchiera(pedine);
sceltapedine1(nome1,&x1,&x2,&y1,&y2);
movimento1(pedine,nome1,x1,x2,y1,y2,giocatore);
if(pedine[4][0]==1 || pedine[4][2]==1){
a=1;
}
else{
system("cls");
scacchiera(pedine);
sceltapedine1(nome2,&x1,&x2,&y1,&y2);
movimento2(pedine,nome2,x1,x2,y1,y2,giocatore);
}
if(pedine[0][0]==2 || pedine[0][2]==2){
a=2;
}
}while(a!=1 || a!=2);
vincita(nome1,nome2,a);
printf("---------------------------------------------------------------------\n");
printf(" premi invio per tornare alla home o esc per chiudere il programma\n");
c=getch();
if(c==13){
d=2;
return d;
}
if(c==27){
a=1;
return d;
}
}
int verificamovimento(int a[5][3], int x1, int y1, int x2, int y2, int giocatore){
int salto = 0, xj = 0, yj = 0;
//verifica se il pezzo si trova nella scacchiera!
if ((x1 < 0) || (x2 < 0) || (y1 < 0 ) || (y2 < 0) ||
(x1 > 4) || (x2 > 4) || (y1 > 4 ) || (y2 > 4)) {
return 0;
}
//verifica la diagonale di movimento
if ((abs(x1-x2) != 1) || (abs(y1-y2) != 1)) {
//controlla se la mossa e' un tentativo di salto
if ((abs(x1-x2) == 2) && (abs(y1-y2) && 2)) {
salto = 1;// do jump checking things here
} else {
printf("la diagonale non e' valida\n");
return 0;
}
}
//verifica che sia la pedina del giocatore
if (a[y1][x1] != giocatore) {
printf("non e' la tua pedina\n");
return 0;
}
//verifica che la destinazione non e' occupata
if (a[y2][x2] != 0) {
printf("destinazione occupata\n");
return 0;
}
//verifica se il movimento e' valido per il giocatore
if ( ( ((y1-y2) > 0 ) && (giocatore == 1) ) || ( ((y1-y2) < 0 ) && (giocatore == 2) ) ) {
printf("non ti puoi muovere in questa direzione\n");
return 0;
}
//verifica se si puo fare il salto
if (salto){
xj = (x1 + x2) / 2;
yj = (y1 + y2) / 2;
if ( (a[yj][xj] == giocatore) && (a[yj][xj] == 0) ) {
printf("sei saltato in una parte non occupata\n");
return 0;
} else {
return 2;
}
}
return 1;
}
void movimento1(int a[5][3],char nome1[],int x1,int x2, int y1,int y2,int pl){
int movimentovalido;
movimentovalido=verificamovimento(a, x1, y1, x2, y2, pl);
if (movimentovalido) {
if (movimentovalido == 2) {
a[y1][x1] = 0;
a[(y1+y2)/2][(x1+x2)/2] = 0;
a[y2][x2] = pl;
}else {
a[y1][x1] = 0;
a[y2][x2] = pl;
system("cls");
}
pl = (pl % 2) + 1;
} else {
printf("movimento non valido\n");
printf("%s non sbagliare piu' \n",nome1);
pl=2;
}
}
void movimento2(int a[5][3],char nome2[],int x1,int x2, int y1,int y2,int pl){
int movimentovalido;
movimentovalido = verificamovimento(a, x1, y1, x2, y2, pl);
if (movimentovalido) {
if (movimentovalido == 2) {
a[y1][x1] = 0;
a[(y1+y2)/2][(x1+x2)/2] = 0;
a[y2][x2] = pl;
} else {
a[y1][x1] = 0;
a[y2][x2] = pl;
system("cls");
}
pl = (pl % 2) + 1;
} else {
printf("movimento non valido\n");
printf("%s non sbagliare piu' \n",nome2);
pl=1;
}
void scacchiera(int matr[5][3]){
system("cls");
printf(" ####### ####### #######\n");
printf(" # # # #\n");
printf(" # # # #\n");
printf(" 0 # %d # %d # %d #\n",matr[0][0],matr[0][1],matr[0][2]);
printf(" # # # #\n");
printf(" # # # #\n");
printf(" ####### ####### ####### \n");
printf(" # # # # \n");
printf(" # # # #\n");
printf(" 1 # %d # %d # %d #\n", matr[1][0],matr[1][1],matr[1][2]);
printf(" # # # #\n");
printf(" # # # # \n");
printf(" ####### ####### #######\n");
printf(" # # # #\n");
printf(" # # # #\n");
printf(" 2 # %d # %d # %d #\n",matr[2][0],matr[2][1],matr[2][2]);
printf(" # # # #\n");
printf(" # # # #\n");
printf(" ####### ####### #######\n");
printf(" # # # # \n");
printf(" # # # #\n");
printf(" 3 # %d # %d # %d #\n",matr[3][0],matr[3][1],matr[3][2]);
printf(" # # # #\n");
printf(" # # # # \n");
printf(" ####### ####### #######\n");
printf(" # # # # \n");
printf(" # # # #\n");
printf(" 4 # %d # %d # %d #\n",matr[4][0],matr[4][1],matr[4][2]);
printf(" # # # #\n");
printf(" # # # # \n");
printf(" /####### ####### #######\n");
printf(" y/x 0 1 2\n");
}
void partecipanti(char nome1[],char nome2[]){
printf(" __ _ __ \n");
printf(" | __ \\ /\\ | \\/ | /\\ \n");
printf(" | | | | / \\ | \\ / | / \\ \n");
printf(" | | | | / /\\ \\ | |\\/| | / /\\ \\ \n");
printf(" | |_| |/ __ \\ | | | | / ___ \\ \n");
printf(" |__/// \\_\\|| ||// \\\\ \n");
printf(" _ _ __ _ _ \n");
printf(" | |() / _|() | | \n");
printf(" _ _ _ _ __ _ _ | | _ | | _ _ _ _ | | __ _ \n");
printf(" / _| / _ \\| ' ` _ \\ | '_ \\ | || || || | / _|/ ` || _|/ _` |\n");
printf(" \\__ \\| _/| | | | | || |) || || || | | || (_| (| || || (| |\n");
printf(" |_/ \\__||| || ||| ._/ |||||| || \\_|\\,| \\_|\\,|\n");
printf(" | | \n");
printf(" |_| \n");
printf("---------------------------------------------------------------------\n");
printf("Inserisci il nome del primo partecipante: ");
scanf("%s",nome1);
printf("Inserisci il nome del secondo partecipante: ");
scanf("%s",nome2);
}
void sceltapedine1(char nome1[],int *x1,int *x2, int *y1,int *y2){
printf("%s devi muovere una pedina \n",nome1);
printf("inserisci coordinata x:");
scanf("%d",&*x1);
printf("inserisci coordinata y:");
scanf("%d",&*y1);
printf("%s iserisci coordinate mossa pedina \n",nome1);
printf("inserisci coordinata x:");
scanf("%d",&*x2);
printf("inserisci coordinata y:");
scanf("%d",&*y2);
}
void sceltapedine2(char nome2[],int *x1,int *x2, int *y1,int *y2){
printf("%s devi muovere una pedina \n",nome2);
printf("inserisci coordinata x:");
scanf("%d",&*x1);
printf("inserisci coordinata y:");
scanf("%d",&*y1);
printf("%s iserisci coordinate mossa pedina \n",nome2);
printf("inserisci coordinata x:");
scanf("%d",&*x2);
printf("inserisci coordinata y:");
scanf("%d",&*y2);
}
void vincita(char nome1[],char nome2[],int b){
system("cls");
printf(" __ _ __ \n");
printf(" | __ \\ /\\ | \\/ | /\\ \n");
printf(" | | | | / \\ | \\ / | / \\ \n");
printf(" | | | | / /\\ \\ | |\\/| | / /\\ \\ \n");
printf(" | |_| |/ __ \\ | | | | / ___ \\ \n");
printf(" |__/// \\_\\|| ||// \\\\ \n");
printf(" _ _ __ _ _ \n");
printf(" | |() / _|() | | \n");
printf(" _ _ _ _ __ _ _ | | _ | | _ _ _ _ | | __ _ \n");
printf(" / _| / _ \\| ' ` _ \\ | '_ \\ | || || || | / _|/ ` || _|/ _` |\n");
printf(" \\__ \\| _/| | | | | || |) || || || | | || (_| (| || || (| |\n");
printf(" |_/ \\__||| || ||| ._/ |||||| || \\_|\\,| \\_|\\,|\n");
printf(" | | \n");
printf(" |_| \n");
printf("---------------------------------------------------------------------\n");
if(b==1)
printf("%s complimenti hai vinto",nome1);
if(b==2)
printf("%s complimenti hai vinto",nome2);
}