Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C]Simulazione gioco cani e gatti

    Salve, volevo mostrarvi il mio problema , praticamente mi hanno assegnato un progetto per l'esame di progr 1 dove mi viene chiesto di simulare un gioco tra cani e gatti,inizialmente vengono predisposti in modo random i 4 animali sulla scacchiera , successivamente viene calcolata la distanza tra i cani e il gatto , a quel punto il cane si muove nella direzione del gatto piu vicino , il gioco finisce o quando i cani raggiungono i gatti oppure quando si raggiungono un certo numero di passi , il mio problema principale sta nella stesura del codice , in quanto ho già costruito una mappa e scritto tutti i procedimenti ma non avendo avuto la possibilità di seguire il corso ho questi problemi sul codice , vi posto uno "pseudo codice " spero che qualcuno possa aiutarm , la scandeza è per il 21

    codice:
    #include<stdio.h>//header file che consente le varie operazioni di input e output
    #include<stdlib.h>//header file che consente l'uso di rand, srand e di RAND_MAX
    #include<time.h>//fornisce un accesso standardizzato alle funzioni di acquisizione e manipolazione del tempo.
    #include<math.h>
    #define n 2;
    
    
    
    
    typedef struct animali{
        int nx;
        int ny;
    
    }animali ;
    animali_cani[2];
    animali_gatti[2];
    
    
    
    
    
    void inserisci_animali(char scacchiera[8][8])
    
    
    
    
    
    int main()
    {
    
    
    
        /*
        Dichiarazione delle variabili.
        */
        int i,nx,ny; /* Contatore per i cicli while.*/
        int posRiga, posCol; /* Variabili utilizzate per riempire la scacchiera in modo pseudo-random*/
        char gatti[2];
        char cani[2];
        srand(time(NULL)); /* Funzione che inizializza lo pseudo-random. Se non ci fosse, ad ogni avvio del programma
                              la posizione dei pedoni e della regina, sarebbe sempre la stessa.*/
        char colonne[8] = {'a','b','c','d','e','f','g','h'}; /*Dichiarazione e inizializzazione della stringa utilizzata
                                                             per definire le colonne della scacchiera.*/
        char scacchiera[][8] =                    
        {{'b','n','b','n','b','n','b','n'},
        {'n','b','n','b','n','b','n','b'},
        {'b','n','b','n','b','n','b','n'},
        {'n','b','n','b','n','b','n','b'},
        {'b','n','b','n','b','n','b','n'},
        {'n','b','n','b','n','b','n','b'},
        {'b','n','b','n','b','n','b','n'},
        {'n','b','n','b','n','b','n','b'}}; /* Dichiarazione e inizializzazione della scacchiera.*/
        char s;
        
    void inserisci_cane(char scacchiera[8][8],animali_cani[n],animali_gatti[n]);
    int i,n  ; 
    
        srand((unsigned int)time(0));
        for (i=0;i<n;i++){
        animali_cani[i].nx=rand%8;
        animali_cani[i].ny=rand%8 }
        
        for (i=0;i<n;i++) {
        animali_gatti[i].nx=rand%8;
        animali_gatti[i].ny=rand%8;
        
        scacchiera[animali_cani[nx][ny]='C'
         scacchiera[animali_gatti[nx][ny]='G';
    }
        printf("Cani inseriti nella posizione %d,%d\n",animali_cani[nx][ny])
        printf("Cani inseriti nella posizione %d,%d\n",animali_gatti[nx][ny])
        
    }
    
    int distanza(animali_gatti[2],animali_cani[2],char scacchera[8][8]);
    int d1,d2,d3,d4,origine1,origine2,;
    
    printf ("I Cani si trovano in posizione">>>ricavare le coordinate dalla funzione inserisce cane
    origine1=animali_cani[nx][ny];
    printf ("i gatti si trovano in posizione">> ricavare coordinate gatti dalla funzione inserisci cane
    origine1=animali_gatti[nx][ny]
    distanzaCane1Gatto1 = formula con pitagora; 
    distanzaCane1Gatto2 = formula con pitagora; 
    distanzaCane2Gatto1 = formula con pitagora; 
    distanzaCane2Gatto2 = formula con pitagora; 
    if (d1< d2) AND (d1 < d3) AND ( d1 < d4) variabileDiScelta = 1; 
    else if( d2 < d1) || (d2 < d3) || ( d2 < d4) variabileDiScelta = 2; 
    else if( d3 < d1) || (d3 < d2) || ( d3 < d4) variabileDiScelta = 3;
     else if(d4 < d1) || (d4 < d2) || (d4 < d3) variabileDiScelta = 4;
     switch(variabileDiScelta) 
    case 1: ---PRIMO CANE VA INCONTRO AL PRIMO GATTO--- endcase;
     case 2: ---PRIMO CANE VA INCONTRO AL SECONDO GATTO--- endcase;
     case 3: ---SECONDO CANE VA INCONTRO AL PRIMO GATTO--- endcase; 
    case 4: ---SECONDO CANE VA INCONTRO AL SECONDO GATTO--- endcase; 
    endswitch
    
    
    
    
    
    
    void visualizza_scaccheria(char schacchiera[][8])
    {
        int i,j,n;
            for(i=0;i<n;++i)
                {    
                    for(j=0;j<n;++j)
                        printf("%c",scacchiera[i][j]);
                    printf("\n");
                }
    }

  2. #2
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Fai un ciclo for per ogni cane dentro il quale con un altro ciclo foir controlli la distanza dal gatto se quest'ultima è nulla incrementi i cani giunti sino al gatto altrimenti avanzi versoil gatto.

    codice:
    for(cane=0;cane < cani;cane++){
            for(gatto=0;gatto<gatti;gatto++){
                  if distanza==0
                  else
                          muovi
        }
    }
    Ultima modifica di linoma; 19-02-2015 a 21:38 Motivo: identazione che nn funziona
    Per gli Spartani e Sparta usa spartan Il mio github

  3. #3

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 © 2024 vBulletin Solutions, Inc. All rights reserved.