Craccilo

« Older   Newer »
 
  Share  
.
  1.     Like  
     
    .
    Avatar

    Manager

    Group
    User+
    Posts
    20,991
    Reputation
    +414

    Status
    Anonymous
    Esercitazione del 16 dicembre 2021
    Su una scacchiera 8x8 sono posizionati due pezzi: il Re bianco e la Regina nera. Si scriva una funzione the riceve in input le posizioni del Re e della Regina e determini se la Regina 6 in posizione tale da poter mangiare il Re. Le posizioni dei due pezzi sono identificate mediante la riga e la colonna su cui si trovano, espresse come numeri interi tra 1 e 8.
    II tipo di dato scacchiera deve essere rappresentato come un record contenente un vettore statico di interi a 2 dimensioni e due interi rappresentanti le dimensioni. Realizzare le funzioni accesso al tipo di dato scacchiera.
    N.B. Realizzare gli algoritmi di tutte le funzioni individuate e il codice in linguaggio C e consegnare entro le 18.00

    #include<stdio.h>
    #include "safeio.h"
    typedef struct
    {
    int x;
    int y;
    }position;
    int check_upper_left_diagonal(position king_position,position queen_position)
    {
    int is_king_in_danger = 0;
    for(int x = king_position.x; x <= 8 && is_king_in_danger == 0;x++)
    {
    is_king_in_danger = x == queen_position.x && x == queen_position.y ;
    }
    if(is_king_in_danger == 0)
    {
    for(int x = king_position.x; x >= 0 && is_king_in_danger == 0;x--)
    {
    is_king_in_danger = x == queen_position.x && x == queen_position.y ;
    }
    }
    return is_king_in_danger;
    }
    int main()
    {
    printf("Posizione X Re:\t");
    position king_position;
    king_position.x = get_int();
    printf("Posizione Y Re:\t");
    king_position.y = get_int();
    printf("Posizione X Regina:\t");
    position queen_position;
    queen_position.x = get_int();
    printf("Posizione Y Regina:\t");
    queen_position.y = get_int();

    printf("Re in pericolo: %d\n",is_king_in_danger);
    }
     
    .
  2.     Like  
     
    .
    Avatar

    Manager

    Group
    User+
    Posts
    20,991
    Reputation
    +414

    Status
    Anonymous
    SCACCHIERA – tipo record

    VALORI – matrice dedicata alla scacchiera – int

    RIGHE – variabile contenente il numero di righe della scacchiera – int

    COLONNE – variabile contenete il numero di colonne della scacchiera – int

    int leggereRighe(scacchiera matrice){
    int righe;
    righe = matrice.maxrighe;
    return righe;
    }

    int leggereColonne(scacchiera matrice){
    int colonne;
    colonne = matrice.maxcolonne;
    return colonne;
    }

    int leggereValore(scacchiera matrice, int riga, int colonna){
    int valore;
    valore = matrice.matrice[riga][colonna];
    return valore;
    }

    scacchiera scrivereRighe(scacchiera matrice, int riga){
    matrice.maxrighe = riga;
    return matrice;
    }

    scacchiera scrivereColonne(scacchiera matrice, int colonna){
    matrice.maxcolonne = colonna;
    return matrice;
    }

    scacchiera scrivereValore(scacchiera matrice, int riga, int colonna, int valore){
    matrice.matrice[riga-1][colonna-1] = valore;
    return matrice;
    }

    typedef struct{
    int matrice[MAX][MAX];
    int maxrighe;
    int maxcolonne;
    }scacchiera;

    Raga una domanda: perché in qualsiasi caso mi restituisce 1?
    int vittoriaRegina(scacchiera s, int rRE, int cRE, int rRA, int cRA){
    int mangia;
    rRE = s.riga;
    rRA = s.riga;
    cRE = s.colonna;
    cRA = s.colonna;
    if(rRE == rRA){
    mangia = 1;
    }
    else if(cRE == cRA){
    mangia = 1;
    }
    else if(abs(cRE - cRA) == abs(rRE - rRA)){
    mangia = 1;
    }
    else{
    mangia = 0;
    }
    return mangia;
    }

    Raga una domanda: perché in qualsiasi caso mi restituisce 1?
    int vittoriaRegina(scacchiera s, int rRE, int cRE, int rRA, int cRA){
    int mangia;
    rRE = s.riga;
    rRA = s.riga;
    cRE = s.colonna;
    cRA = s.colonna;
    if(rRE == rRA){
    mangia = 1;
    }
    else if(cRE == cRA){
    mangia = 1;
    }
    else if(abs(cRE - cRA) == abs(rRE - rRA)){
    mangia = 1;
    }
    else{
    mangia = 0;
    }
    return mangia;
    }
     
    .
  3.     Like  
     
    .
    Avatar

    Register

    Group
    Member
    Posts
    82
    Reputation
    0

    Status
    Offline
    #include <stdio.h>
    #define MAX 8
    #define MIN 1

    typedef struct{
    int matrice[MAX][MAX];
    int maxrighe;
    int maxcolonne;
    }scacchiera;

    int leggereRighe(scacchiera matrice){
    int righe;
    righe = matrice.maxrighe;
    return righe;
    }

    int leggereColonne(scacchiera matrice){
    int colonne;
    colonne = matrice.maxcolonne;
    return colonne;
    }

    int leggereValore(scacchiera matrice, int riga, int colonna){
    int valore;
    valore = matrice.matrice[riga][colonna];
    return valore;
    }

    scacchiera scrivereRighe(scacchiera matrice, int riga){
    matrice.maxrighe = riga;
    return matrice;
    }

    scacchiera scrivereColonne(scacchiera matrice, int colonna){
    matrice.maxcolonne = colonna;
    return matrice;
    }

    scacchiera scrivereValore(scacchiera matrice, int riga, int colonna, int valore){
    matrice.matrice[riga-1][colonna-1] = valore;
    return matrice;
    }

    https://stackoverflow.com/questions/655146...apture-the-king
     
    .
  4.     Like  
     
    .
    Avatar

    Register

    Group
    Member
    Posts
    82
    Reputation
    0

    Status
    Offline
    https://www.mediafire.com/file/5v83qqfeah4...ncesco.zip/file
     
    .
3 replies since 16/12/2021, 14:54   44 views
  Share  
.