Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    11

    [C] scacchiera,calcolo distanza punti

    Sto facendo questo nuovo programma che dalla traccia non mi era sembrato difficile,ma mi sono bloccato in un punto.Allora vi spiego cosa devo fare in questo programma:devo creare una scacchiera 30x30 e inserire in modo casuale 50 X,un numero 1 e un numero 2.Dopo devo determinare 2 insiemi,l'insieme A composto dalle X piu vicino al numero 1 che al numero 2,e l insieme B composto dalle X piu vicine al numero 2 che al numero 1.

    fino alla creazione della scacchiera e l inserimento delle X e del numero 1 e 2 ci sono arrivato,ma non so proprio come fare a determinare quest'insiemi!!come faccia a far calcolare al programma quali sono le X piu vicine all'1 e quelle piu vicine al 2?

    questo è dove sono arrivato:


    codice:
    #include <stdio.h> 
    #include <stdlib.h> 
    #include <time.h> 
    #include <math.h> 
    int main() { 
    int i,r,c,d1,d2; 
    char X; 
    char scacchiera [][30]= {{' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '}'}; //la scacchiera non l ho messa tutto//
    
     srand(time(NULL)); 
    for(i=1;i<51;i++)
     { r=rand()%31; 
    c=rand()%31;
    
     if(scacchiera[r][c]==' ') 
    scacchiera[r][c]='X'; 
    else i--;
     } 
    srand(time(NULL)); 
    for(i=0;i<1;i++) {
     r=rand()%31; 
    c=rand()%31;
     
     if(scacchiera[r][c]==' ') scacchiera[r][c]='1'; 
    else i--; 
    } srand(time(NULL));
     for(i=0;i<1;i++) { 
    r=rand()%31; 
    c=rand()%31; 
    
     if(scacchiera[r][c]==' ') scacchiera[r][c]='2'; 
    else i--; 
    } printf("\n\n"); 
    for(r=0;r<30;r++){
     for(c=0;c<30;c++)
     printf("%c",scacchiera[r][c]); 
    printf("\n"); } 
    
    system("PAUSE");
     }

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    11
    nessuni mi puo aiutare?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    every day above ground is a good one

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    11
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #include <math.h>
    
    void carica_oggetti(int r,int c,char scacchiera[][30]);
    void carica_centro1_centro2(int r1,int r2,int c1, int c2,char scacchiera[][30]);
    void calcola(char scacchiera[][30]);
    void distanza(int i,int j,int r1,int r2,int c1,int c2, float dist1,float dist2);
    
    
    int main()
    {
      int i,j,r,c,d1,d2,r1,r2,c1,c2;
      char X;
      
    char scacchiera [][30]= {{' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
                        {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '}};
                        
                        
    carica_centro1_centro2(r1,r2,c1,c2,scacchiera);
         
         
         for(r=0;r<30;r++){
                        for(c=0;c<30;c++)
    printf("%c",scacchiera[r][c]);
    printf("\n");
    }
         system("pause");
    printf("*****************************************************************\n");     
    carica_oggetti(r,c,scacchiera);
    
         printf("\n\n");
    
      for(r=0;r<30;r++){
                        for(c=0;c<30;c++)
    printf("%c",scacchiera[r][c]);
    printf("\n");
    }
    system("pause");
    
    printf("*****************************************************************\n");
    calcola(scacchiera);
    for(i=0;i<30;i++){
                      for(j=0;j<30;j++){
                                        printf("%c",scacchiera[i][j]);
                                        
                                        }
                                        printf("\n");
                     }                   
    system("PAUSE");
    }//fine main
    
    /*funzione che genera una nuova scacchiera con gli oggetti dell'insieme A e dell'insieme B*/
    
    
    void calcola(char scacchiera[][30])
    {
    int i,j,r1,r2,c1,c2;
    float dist1,dist2;
    for (i=0;i<30;i++){
        for(j=0;j<30;j++){
                          if(scacchiera[i][j]=='X'){
                                                    distanza(i,j,r1,r2,c1,c2,dist1,dist2);
                                                    
                                                    if(dist1<dist2)
                                                       scacchiera[i][j]='A';
                                                    else 
                                                       scacchiera[i][j]='B';
                                                       
                                                       }
                                                       
                                                   else {
                                                        if(dist1==dist2)
                                                       scacchiera[i][j]='U';
                                                       }
                                                                                              
                          }
                         }   
        
    }
    
    /*funzione per calcolare la distanza delle X da centro 1 e centro 2*/
    
    void distanza(int i,int j,int r1,int r2,int c1,int c2,float dist1,float dist2)
    {
         
          dist1=sqrt((r1-i)*(r1-i)+(c1-j)*(c1-j)); 
          dist2=sqrt((r2-i)*(r2-i)+(c2-j)*(c2-j));
    
    } 
         
         /*funzione che genera una posizione casuale per centro 1 e centro 2*/
         
    void carica_centro1_centro2(int r1,int r2,int c1, int c2,char scacchiera[][30])
    {
         
    srand(time(NULL));
      
         r1=rand()%31;
         c1=rand()%31;
        
         r2=rand()%31;
         c2=rand()%31;
         
         scacchiera[r1][c1]='1';
         scacchiera[r2][c2]='2';
         }
         
         /*funzione che genera una posizione casuale per 50 oggetti*/
         
    void carica_oggetti(int r,int c,char scacchiera[][30])
    {
         int i;
    srand(time(NULL));
      for(i=0;i<50;i++)
      {
         r=rand()%31;
         c=rand()%31;
         
         if(scacchiera[r][c]==' ') 
         scacchiera[r][c]='X';
         else i--;
         }
    }

    questo è il mio programma,solo che mi stampa solo le A,mi sembra tutto giusto,potete dirmi dove sbaglio?

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.