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 - Pagina 2

Pagine: [ 1 2 3 4 5 6 ] Precedente | Prossimo
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 15:05
Giovedì, 02/03/2017
Per muovere l'auto modifichi i valori di "griglia". Dovrai ovviamente controllare che se un'auto e' nella colonna 0, non puo' andare a sinistra, se e' nella riga 0 non puo' andare su, etc.

Ultima modifica effettuata da pierotofy il 02/03/2017 alle 16:46


Il mio blog: https://piero.dev
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6380
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 15:11
Giovedì, 02/03/2017
Al primo anno di università non c'è bisogno di sapere come utilizzare un valore da 1 a 100 (estratto dalla rand).
L'uso delle percentuali si presuppone si acquisisca alle scuole medie.

Quindi, scegli un valore da 1 a 100 (o da 0 a 99 è ovviamente lo stesso) con la rand (vedi esempi della documentazione) e in base al valore ottenuto, con una switch ... esegui la parte di codice che ti interessa

da 0 a 14  
...macchina ferma
da 15 a 24
...a destra
da 25 a 54
...a sinistra
da 55 a 84
...sopra
da 85 a 99
...sotto

Di automatico non c'è nulla, altrimenti non scriveresti un programma.

La posizione attuale della macchina è identificata da riga e colonna, come per la battaglia navale.
Se decidi di andare a sinistra, diminuisci di 1 la colonna attuale
se vai a destra aumenti di 1 la colonna
se vai sopra diminuisci di 1 la riga
se vai sotto aumenti di 1 la riga

controllando, come diceva Piero, di non superare i limiti (a sx, dx, up e dn)

Aggiorni il contenuto precedente della cella della posizione precedente e di quella successiva e visualizzi.

Buon lavoro.

Ultima modifica effettuata da nessuno il 02/03/2017 alle 15:11


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
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 16:10
Giovedì, 02/03/2017
Salve,
non so se il mio consiglio potrebbe aiutare o no,
Ma perchè non crei una struct?

Codice sorgente - presumibilmente C++

  1. struct macchina {
  2.     int nome;
  3.     int x;
  4.     int y;
  5.  };
  6. struct macchina poxauto[4] = {
  7.         {1,0,3},{2,3,0},{3,3,6},{4,6,3} };


In questo modo, ad ogni spostamento devi sì, aggiornare griglia e poxauto, ma almeno per ogni auto avrai sempre le coordinate di dove è posizionata altrimenti avresti la necessità di scorrere tutta la griglia ad ogni singolo spostamento per sapere dove sono le auto.

p.s. la griglia deve essere 8x8 ?
Tu l'hai creata 7x7, io le macchine le ho posizionate nell griglia 7x7.

PM Quote
Avatar
nonticonosco (Normal User)
Newbie


Messaggi: 14
Iscritto: 02/03/2017

Segnala al moderatore
Postato alle 16:23
Giovedì, 02/03/2017
si il testo vuole una graglia 8x8 ma l'immagine allegata da una griglia 7x7 ed ecco il motivo :)

ho letto le vostre risposte e forse ho capito ho aggiornato il primo post che effettua il movimento della lettera G di una casella a destra se qualcuno ha tempo per controllare e mi può dire se ho imboccato il percorso giusto così provo ad inserire tutte le direzioni e vedere se funziona.

ed un altra cosa la simulazione termina quando una macchina si scontra cosa devo usare per verificare se 2 auto sono sulla stessa cella ?

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 16:45
Giovedì, 02/03/2017


Il mio blog: https://piero.dev
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6380
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 17:13
Giovedì, 02/03/2017
Ti ho già detto che devi tenere in due variabili la posizione dell'auto (riga e colonna). Una coppia di variabili per ogni auto.

Se riga e colonna di un'auto sono uguali a riga e colonna di un'altra auto, allora si sono scontrate.

Mai giocato a battaglia navale?


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 18:00
Giovedì, 02/03/2017
Testo quotato

Postato originariamente da nessuno:

Ti ho già detto che devi tenere in due variabili la posizione dell'auto (riga e colonna). Una coppia di variabili per ogni auto.

Se riga e colonna di un'auto sono uguali a riga e colonna di un'altra auto, allora si sono scontrate.

Mai giocato a battaglia navale?



sotto la tabella ho segnato la posizione iniziale ma credo che tu intenda nel blocco if ? che poi dovrebbe controllare se ci sono variabili uguali

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 18:16
Giovedì, 02/03/2017
Nel codice in prima pagina manca una parte di codice mi sa..
comunque:
Per tener memoria delle variabili, la struct che ti ho postato prima potrebbe essere una soluzione semplice.
Dopo che hai la nuova posizione devi fare 2 controlli:
- Esco fuori dalla griglia? (0<riga<6 ,oppure a seconda, 0<colonna<6)
- Quella casella e' vuota o c'è un auto?

poi:
Codice sorgente - presumibilmente C/C++

  1. char  griglia[7][7]={{0,0,0,'R',0,0,0},
  2.                     {0,0,0,0,0,0,0},
  3.                     {0,0,0,0,0,0,0},
  4.                     {'G',0,0,0,0,0,'V'},
  5.                     {0,0,0,0,0,0,0},
  6.                     {0,0,0,0,0,0,0},
  7.                     {0,0,0,'B',0,0,0}};



Con questo metodo, non stampi gli 0, e' quello che vuoi? Non è errato di per sè, ma se vuoi far spuntare lo 0 devi mettere un carattere.

Ultima modifica effettuata da il 02/03/2017 alle 18:16
PM Quote
Pagine: [ 1 2 3 4 5 6 ] Precedente | Prossimo