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++ - Delucidazioni su una funzione
Forum - C/C++ - Delucidazioni su una funzione

Avatar
camminosrand (Normal User)
Newbie


Messaggi: 6
Iscritto: 03/02/2014

Segnala al moderatore
Postato alle 22:03
Lunedì, 03/02/2014
Salve a tutti, volevo, come da titolo delucidazioni su questa funzione.. la funzione genera numeri casuali da 0 a 3 in base ai quali si deciderà la direzione che la pedina compie, volevo sapere passo passo proprio come funziona.. grazie mille in anticipo (:
Codice sorgente - presumibilmente C++

  1. int passo;
  2.     passo=rand()%4;
  3.  
  4.     switch(passo)
  5.     {
  6.  
  7.  
  8.  
  9.         case SU:        if((*pawn).x==0)
  10.                         {walk[(*pawn).x][(*pawn).y]='.'; walk[++(*pawn).x][(*pawn).y]=(*pawn).simb;}
  11.                         else
  12.                         {walk[(*pawn).x][(*pawn).y]='.'; walk[--(*pawn).x][(*pawn).y]=(*pawn).simb;}          break;//pedina verso nord
  13.  
  14.         case GIU:       if((*pawn).x==N-1)
  15.                         {walk[(*pawn).x][(*pawn).y]='.'; walk[--(*pawn).x][(*pawn).y]=(*pawn).simb;}
  16.                         else
  17.                         {walk[(*pawn).x][(*pawn).y]='.'; walk[++(*pawn).x][(*pawn).y]=(*pawn).simb;}          break;//pedina verso sud
  18.  
  19.         case SINISTRA:  if((*pawn).y==0)
  20.                         {walk[(*pawn).x][(*pawn).y]='.'; walk[(*pawn).x][++(*pawn).y]=(*pawn).simb;}
  21.                         else
  22.                         {walk[(*pawn).x][(*pawn).y]='.'; walk[(*pawn).x][--(*pawn).y]=(*pawn).simb;}          break;//pedina verso ovest
  23.  
  24.         case DESTRA:    if((*pawn).y==N-1)
  25.                         {walk[(*pawn).x][(*pawn).y]='.'; walk[(*pawn).x][--(*pawn).y]=(*pawn).simb;}
  26.                         else
  27.                         {walk[(*pawn).x][(*pawn).y]='.'; walk[(*pawn).x][++(*pawn).y]=(*pawn).simb;}          break;//pedina verso est
  28.         }



PM Quote
Avatar
Bonny (Member)
Expert


Messaggi: 437
Iscritto: 24/04/2009

Segnala al moderatore
Postato alle 9:11
Martedì, 04/02/2014
Scusi cameriere del codice spiegato e commentato per favore! :pat: :nono:

Dai prova a pensarci un attimo ..

PM Quote
Avatar
camminosrand (Normal User)
Newbie


Messaggi: 6
Iscritto: 03/02/2014

Segnala al moderatore
Postato alle 10:41
Martedì, 04/02/2014
cosa?

PM Quote
Avatar
Bonny (Member)
Expert


Messaggi: 437
Iscritto: 24/04/2009

Segnala al moderatore
Postato alle 11:10
Martedì, 04/02/2014
A capire cosa fanno quello 5 istruzioni

PM Quote
Avatar
camminosrand (Normal User)
Newbie


Messaggi: 6
Iscritto: 03/02/2014

Segnala al moderatore
Postato alle 13:51
Martedì, 04/02/2014
Scusami mi sono espresso male, volevo una spiegazione dettagliata su "come lo faceva", ho capito benissimo a cosa serve visto che l'ho scritta insieme ad un amico, ma non mi è chiaro su come lo fa..

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 14:14
Martedì, 04/02/2014
Come lo fa ... "cosa"?

Cosa non capisci in particolare di ogni riga?

Prova tu a dare una spiegazione e vediamo come risolvere il problema ...


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
camminosrand (Normal User)
Newbie


Messaggi: 6
Iscritto: 03/02/2014

Segnala al moderatore
Postato alle 20:09
Martedì, 04/02/2014
Quello che ho capito io è che questa funzione serve a regolare i movimenti delle pedine, ovvero se esce 0 e la pedina deve andare verso nord sposta un "pezzo della schacchiera" con la mia pedina che sia x o y..

PM Quote
Avatar
camminosrand (Normal User)
Newbie


Messaggi: 6
Iscritto: 03/02/2014

Segnala al moderatore
Postato alle 19:14
Martedì, 11/02/2014
nessuno sa rispondere?

PM Quote