Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    152

    [C] Errori incompresi. Programma scacchi.

    ragazzi ho da fare un ultimo programma sulle possibili mosse di un cavallo su una scacchiera.
    Ma una volta compilato mi da errori del genere : -In function void mosse_cavallo(int,int*,int(*)(10). poi -declaration of 'int i' shadows a parameter.
    Ecco il programma: sapete dirmi dove ho sbagliato?
    codice:
    #include<stdio.h>
    #include<stdlib.h>
    
    void mosse_cavallo(int i,int pos_iniz[],int pos_possibili[][10]);
    void controllo(int i,int x,int y,int pos_possibili[][10]);
    
    int main()
    { int i,j,pos_iniz[3],pos_possibili[10][10];
      i=0;
      printf("Inserisci le coordinate della posizione iniziale del cavallo:\n");
      scanf("%d",&pos_iniz[0]);
      scanf("%d",&pos_iniz[1]);
      mosse_cavallo(i,pos_iniz,pos_possibili);
      printf("Le possibili mosse del cavallo sono:\n");
      for(j=0;j<=i;j++)
      {printf("pos_possibili[%d][%d]=%d   ",pos_possibili[0][j]);
       printf("pos_possibili[%d][%d]=%d   ",pos_possibili[1][j]);
      }
      system("PAUSE");
    }
      
      
      
    void mosse_cavallo(int i,int pos_iniz[],int pos_possibili[][10])
      { int i,x,y;
       x=pos_iniz[0]+1;
       y=pos_iniz[1]+2;
       controllo(x,y,pos_possibili);
       x=pos_iniz[0]+1;
       y=pos_iniz[1]-2;
       controllo(x,y,i,pos_possibili);
       x=pos_iniz[0]-1;
       y=pos_iniz[0]+2;
       controllo(x,y,i,pos_possibili);
       x=pos_iniz[0]-1;
       y=pos_iniz[0]-2;
       controllo(x,y,i,pos_possibili);
       x=pos_iniz[0]+2;
       y=pos_iniz[0]+1;
       controllo(x,y,i,pos_possibili);
       x=pos_iniz[0]+2;
       y=pos_iniz[0]-1;
       controllo(x,y,i,pos_possibili);
       x=pos_iniz[0]-2;
       y=pos_iniz[0]+1;
       controllo(x,y,i,pos_possibili);
       x=pos_iniz[0]-2;
       y=pos_iniz[0]-1;
       controllo(i,x,y,pos_possibili);
       return ;
    }
       
    void controllo(int i,int x,int y,int pos_possibili[][10])
      {int i,x,y,pos_possibili[10][10];
       if((x>=0)&&(y>=0))
       {pos_possibili[0][i]=x;
        pos_possibili[1][i]=y;
        i=i++;
      }   
      return ;
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326

    Re: [C] Errori incompresi. Programma scacchi.

    Originariamente inviato da johnnny
    In function void mosse_cavallo(int,int*,int(*)(10). poi -declaration of 'int i' shadows a parameter.
    In quella funzione stai dichiarando una variabile locale con nome i, ma i è già il nome di un parametro. Devi scegliere nomi diversi per tutte le variabili e i parametri che hai in una data funzione.
    every day above ground is a good one

  3. #3
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    La prima cosa che noto è che la funzione controllo ha 4 argomenti ma una volta la usi mettendone solo 3.Un errore potrebbe essere questo.Dell' algoritmo non ci ho capito molto,
    codice:
    void controllo(int i,int x,int y,int pos_possibili[][10]);
    ...
    controllo(x,y,pos_possibili);   // ventottesima riga
    Poi nella controllo ridichiari le variabili,era tua intenzione farlo?
    codice:
    void controllo(int i,int x,int y,int pos_possibili[][10])
      {int i,x,y,pos_possibili[10][10];                               // queste esistono già
       if((x>=0)&&(y>=0))
       {pos_possibili[0][i]=x;
        pos_possibili[1][i]=y;
        i=i++;
      }
      return ;
    }
    Perchè le variabili i,x,y,pos_possibili esistono già quando le dichiari.
    Per l' algoritmo non so se è giusto.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.