Register
- Group
- Member
- Posts
- 82
- Reputation
- 0
- Status
- Offline
|
|
/* * Verifica.c * * Created on: 17/dic/2021 * Author: Utente */
#include <stdio.h> #include <stdlib.h>
#define MAX 20
typedef struct { int posizioni[MAX][MAX]; int righe; int colonne; } tabella;
int VerificaRegina (int RigaRe, int ColonnaRe, int RigaRegina, int ColonnaRegina); int VerificaOrizzontale(int RigaRe, int ColonnaRe, int RigaRegina, int ColonnaRegina); int VerificaVerticale(int RigaRe, int ColonnaRe, int RigaRegina, int ColonnaRegina); int VerificaDiagonale(int RigaRe, int ColonnaRe, int RigaRegina, int ColonnaRegina); void StampareTabella(tabella s); void RiempireTabella(tabella * s);
//Accesso ai dati int LeggereValore(tabella s, int r, int c); void ScrivereValore(tabella* s, int r, int c, int valore); int LeggereRighe(tabella s); int LeggereColonne(tabella s); void ScrivereRighe(tabella * s, int r); void ScrivereColonne(tabella * s, int c);
int main() { tabella s; int RigaRe; int ColonnaRe; int RigaRegina; int ColonnaRegina; int esito;
RigaRe=1; ColonnaRe=1; RigaRegina=4; ColonnaRegina=4; ScrivereRighe(&s, 8); ScrivereColonne(&s, 8); RiempireScacchiera(&s); StampareScacchiera(s); esito=VerificaRegina(RigaRe, ColonnaRe, RigaRegina, ColonnaRegina); printf("\n"); printf("Esito = %d\n", esito);
system("pause"); return 0;
}
int VerificaRegina (int RigaRe, int ColonnaRe, int RigaRegina, int ColonnaRegina) {int EsitoVerifica; EsitoVerifica=VerificaOrizzontale(RigaRe, ColonnaRe, RigaRegina, ColonnaRegina); if(EsitoVerifica==0) EsitoVerifica=VerificaVerticale(RigaRe, ColonnaRe, RigaRegina, ColonnaRegina); if(EsitoVerifica==0) EsitoVerifica=VerificaDiagonale(RigaRe, ColonnaRe, RigaRegina, ColonnaRegina); return EsitoVerifica; }
int VerificaOrizzontale(int RigaRe, int ColonnaRe, int RigaRegina, int ColonnaRegina) {int EsitoVerificaOrizzontale; EsitoVerificaOrizzontale=0; if(RigaRe==RigaRegina) EsitoVerificaOrizzontale=1; return EsitoVerificaOrizzontale; }
int VerificaVerticale(int RigaRe, int ColonnaRe, int RigaRegina, int ColonnaRegina) {int EsitoVerificaVerticale; EsitoVerificaVerticale=0; if(ColonnaRe==ColonnaRegina) EsitoVerificaVerticale=1; return EsitoVerificaVerticale; }
int VerificaDiagonale(int RigaRe, int ColonnaRe, int RigaRegina, int ColonnaRegina) { int EsitoVerificaDiagonale; EsitoVerificaDiagonale=0; if (abs(RigaRe-RigaRegina)==abs(ColonnaRe-ColonnaRegina)) EsitoVerificaDiagonale=1; return EsitoVerificaDiagonale; }
void StampareTabella(tabella s) { int i; int j; i=0; while (i<leggererighe(s)) {j=0; while (j<leggerecolonne(s)) { printf("%d ", LeggereValore(s, i, j)); j=j+1; } printf("\n"); i=i+1; } return; }
void RiempireTabella(tabella * s) { int i; int j; i=0; while (i<leggererighe(*s)) {j=0; while (j<leggerecolonne(*s)) { ScrivereValore(s, i, j, i*j); j=j+1; } i=i+1; } return; }
int LeggereRighe(tabella s) { return s.righe; }
int LeggereColonne(tabella s) { return s.colonne; }
int LeggereValore(tabella s, int r, int c) { return s.posizioni[r][c]; }
void ScrivereValore(tabella *s, int r, int c, int valore) {
s->posizioni[r][c]=valore; return; }
void ScrivereRighe(tabella * s, int r) { s->righe=r; return; }
void ScrivereColonne(tabella * s, int c) { s->colonne=c; return; }
|
|