Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Problema per un progetto C
Forum - C/C++ - Problema per un progetto C

Pagine: [ 1 2 3 4 5 6 ] Precedente | Prossimo
Avatar
nonticonosco (Normal User)
Newbie


Messaggi: 14
Iscritto: 02/03/2017

Segnala al moderatore
Postato alle 12:32
Giovedì, 02/03/2017
Ciao a tutti mi è stato dato un progetto che devo completare per poter effettuare la prova orale e questo è il mio primo programma quindi non so bene cosa scrivere o dove mettere le mani. voglio farlo da solo ma mi serve sapere se sto procedendo bene oppure sto solo perdendo tempo

la traccia inizia così : Si supponga di avere quattro macchine al centro dei quattro lati opposti di una griglia
                              Le macchine possono muoversi in una della quattro posizioni vicine.
                              La griglia è formata da mura esterne ed è di 8x8 caselle.
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. void muovi_gialla(int random, char griglia[7][7], int *G_x, int *G_y);
  5.  
  6. /* Definisco i valori costanti */
  7. #define righe 7
  8. #define colonne 7
  9. #define auto1 R
  10. #define auto2 V
  11. #define auto3 G
  12. #define auto4 B
  13.  
  14. int main ()
  15. {
  16. int i,j,G_x,G_y,random;
  17. srand(time(NULL));
  18. char  griglia[7][7]={{0,0,0,'R',0,0,0},
  19.                     {0,0,0,0,0,0,0},
  20.                     {0,0,0,0,0,0,0},
  21.                     {0,0,0,'G',1,0,'V'},
  22.                     {0,0,0,0,0,0,0},
  23.                     {0,0,0,0,0,0,0},
  24.                     {0,0,0,'B',0,0,0}};
  25.  
  26. G_x=3; G_y=3;
  27.  
  28.    for (i=0;i<righe;i++){
  29.         printf ("\n");
  30.    for (j=0;j<colonne;j++){
  31.         printf ("%3c",griglia[i][j]);}}
  32.  
  33.         random= rand()%30+1;
  34.         muovi_gialla(random, griglia, &G_x, &G_y);
  35.         printf("\t\t Random G: %d", random);
  36.  
  37. printf("\n\n\n");
  38. for (i=0; i<7; i++) //visualizza sullo schermo il campo dopo il primo movimento della macchina
  39.                 {
  40.                 for (j=0; j<7; j++)
  41.                 printf("%3c", griglia[i][j]);
  42.                 printf("\n"); }
  43. return 0;
  44. }
  45.  
  46. void muovi_gialla(int random, char griglia[7][7], int *G_x, int *G_y)
  47.     {
  48.         if ((random <=30)&&(griglia[3][4]!=0)) //avanti 30% con controllo cella avanti
  49.         {
  50.           griglia[*G_x][*G_y]=' ';
  51.           *G_y=*G_y+1;
  52.                  }
  53. griglia[*G_x][*G_y]='G';
  54. }



ed ora dovrei far muovere ogni auto in modo randomico (avanti,dietro,destra,sinistra)  e dovrei farlo tramite una function ma non ho mai usato il comando rand. Consigli ?

Ultima modifica effettuata da nonticonosco il 06/03/2017 alle 16:00
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6390
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 13:48
Giovedì, 02/03/2017
Testo quotato

Consigli ?



Studiare la funzione rand dalla documentazione

http://www.cplusplus.com/reference/cstdlib/rand/



Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
nonticonosco (Normal User)
Newbie


Messaggi: 14
Iscritto: 02/03/2017

Segnala al moderatore
Postato alle 14:15
Giovedì, 02/03/2017
letta ma parla di numeri a me serve qualcosa sullo spostamento poichè tipo l'auto 1 ha una probailità di andare a sinistra del 30% - a destra di un 10% - sopra 30% - sotto 15%.

Quindi stavo pensando più a qualcosa del tipo colonna o riga per far capire dove spostarsi

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6390
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 14:29
Giovedì, 02/03/2017
In programmazione TUTTO è numeri.

Estrai un valore random compreso tra 1 e 100 e controlla cosa ottieni ... Poi scegli in base al valore che ottieni in percentuale.


Ultima modifica effettuata da nessuno il 02/03/2017 alle 14:32


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
nonticonosco (Normal User)
Newbie


Messaggi: 14
Iscritto: 02/03/2017

Segnala al moderatore
Postato alle 14:32
Giovedì, 02/03/2017
quindi l'auto devo poi spostarla io manualmente ? perchè pensavo che scrivendola in un certo modo il programma poi la spostate in modo automatico ed ogni volta differente

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6390
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 14:33
Giovedì, 02/03/2017
Manualmente? Automatico?

Che vuoi dire?

Stai scrivendo un programma che deve fare tutte le operazioni ... che intendi con "automaticamente"?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
nonticonosco (Normal User)
Newbie


Messaggi: 14
Iscritto: 02/03/2017

Segnala al moderatore
Postato alle 14:38
Giovedì, 02/03/2017
mi sto confondendo :rotfl:

allora se faccio una rand da 0 a 100 come tu hai scritto poi come fa il programma a capire in quale direzione spostare l'auto ?

io pensavo di dover fare più rand in base alla direzione.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6390
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 14:49
Giovedì, 02/03/2017
Se a sinistra è per il 30% delle volte, se estrai un valore da 1 a 100, il 30% è un valore da 1 a 30, e così via.

Il problema è che il testo parla di varie direzioni con un totale di 85 % delle probabilità, ma non dice cosa fa per il rimanente 15 % (sta ferma?)

P.S. Tu vai alle superiori/università? Le percentuali le hai studiate? Le proporzioni?

P.P.S. Non hai risposto su cosa intendevi con "automatico" e "manuale". Spiegati.

Ultima modifica effettuata da nessuno il 02/03/2017 alle 14:54


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
nonticonosco (Normal User)
Newbie


Messaggi: 14
Iscritto: 02/03/2017

Segnala al moderatore
Postato alle 15:02
Giovedì, 02/03/2017
università 1 anno e il docente non ha spiegato il comando rand poichè era l'ultimo giorno e si per il 15% è ferma.
per la rand ho capito di doverla fare da 100 ma poi come sposto il numero nella griglia ?
questo non capisco come muovere l'auto nella griglia ecco perchè ho scritto in manuale o automatico

PM Quote
Pagine: [ 1 2 3 4 5 6 ] Precedente | Prossimo