Oppure

Loading
02/03/17 11:32
nonticonosco
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.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void muovi_gialla(int random, char griglia[7][7], int *G_x, int *G_y);

/* Definisco i valori costanti */
#define righe 7
#define colonne 7
#define auto1 R
#define auto2 V
#define auto3 G
#define auto4 B

int main ()
{
int i,j,G_x,G_y,random;
srand(time(NULL));
char  griglia[7][7]={{0,0,0,'R',0,0,0},
                    {0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0},
                    {0,0,0,'G',1,0,'V'},
                    {0,0,0,0,0,0,0},
                    {0,0,0,0,0,0,0},
                    {0,0,0,'B',0,0,0}};

G_x=3; G_y=3;

   for (i=0;i<righe;i++){
        printf ("\n");
   for (j=0;j<colonne;j++){
        printf ("%3c",griglia[i][j]);}}

        random= rand()%30+1;
        muovi_gialla(random, griglia, &G_x, &G_y);
        printf("\t\t Random G: %d", random);

printf("\n\n\n");
for (i=0; i<7; i++) //visualizza sullo schermo il campo dopo il primo movimento della macchina
                {
                for (j=0; j<7; j++)
                printf("%3c", griglia[i][j]);
                printf("\n"); }
return 0;
}

void muovi_gialla(int random, char griglia[7][7], int *G_x, int *G_y)
    {
        if ((random <=30)&&(griglia[3][4]!=0)) //avanti 30% con controllo cella avanti
        {
          griglia[*G_x][*G_y]=' ';
          *G_y=*G_y+1;
                 }
griglia[*G_x][*G_y]='G';
}


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 06/03/17 15:00
aaa
02/03/17 12:48
nessuno
Consigli ?


Studiare la funzione rand dalla documentazione

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à.
02/03/17 13:15
nonticonosco
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
aaa
02/03/17 13:29
nessuno
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 02/03/17 13: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à.
02/03/17 13:32
nonticonosco
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
aaa
02/03/17 13:33
nessuno
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à.
02/03/17 13:38
nonticonosco
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.
aaa
02/03/17 13:49
nessuno
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 02/03/17 13: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à.