Discussione chiusa
Pagina 2 di 3 primaprima 123 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 24

Problema delle buche nascoste

  1. #11
    Shoot non  in linea Novello
    Per scusa la buca nascosta non dovrebbe avere lo stesso simbolo del pavimento? Se scrivo in questo modo, poi si nota che ci sono le buche nascoste.
    Adesso provo a fare come dici tu.
    Secondo le regole del gioco, le buche nascoste non devono essere visibili al giocatore. In questo modo, per lo sono.
    Ultima modifica di Shoot; 15-11-2020 13:02 

  2. #12
    Ok ... per la buca nascosta metti lo stesso carattere del pavimento ...

    Allora ... per indirizzarti ti posto del codice che io adotterei e da cui arrivi a soluzione ...

    All'inizio le #define che servono

    #define SIZE 50
    
    #define VALSPAZIO 0
    #define VALBNAS 1
    #define VALBVIS 2
    #define VALBVIN 3
    #define VALBIGLIA 4
    
    #define CHSPAZIO '.'
    #define CHBNAS '.'
    #define CHBVIS '*'
    #define CHBVIN '*'
    #define CHBIGLIA 'O'
    
    Per impostare il campo

    	for (colonna = 0; colonna<SIZE; colonna++)
    		for (riga = 0; riga<SIZE; riga++)
    			b = griglia[riga][colonna] = VALSPAZIO;
    
    Per inserire le varie parti, non servono tre variabili c1 c2 c3 ma una sola e la usi come contatore per cicli for (meglio del while in questo caso); per la buca vincente non serve un ciclo dato che una sola .... quindi

    	int cn = 0;
    
    	for(cn=0; cn<40; cn++)
    	{
    		riga = rand() % SIZE;
    		colonna = rand() % SIZE;
    		griglia[riga][colonna] = VALBNAS;
    	}
    
    	for (cn = 0; cn<20; cn++)
    	{
    		riga = rand() % SIZE;
    		colonna = rand() % SIZE;
    		griglia[riga][colonna] = VALBVIS;
    	}
    
    	colonna = rand() % SIZE;
    	riga = rand() % SIZE;
    	griglia[riga][colonna] = VALBVIN;
    
    	x1 = rand() % 50;
    	y1 = rand() % 50;
    	griglia[x1][y1] = VALBIGLIA;
    
    Per visualizzare il campo da gioco

    				system("cls||clear");
    				for (colonna = 0; colonna<SIZE; colonna++)
    				{
    					for (riga = 0; riga < SIZE; riga++)
    					{
    						char chv = CHSPAZIO;
    
    						switch (griglia[riga][colonna])
    						{
    							case VALBNAS:
    								chv = CHBNAS;
    								break;
    							case VALBVIS:
    								chv = CHBVIS;
    								break;
    							case VALBVIN:
    								chv = CHBVIN;
    								break;
    							case VALBIGLIA:
    								chv = CHBIGLIA;
    						}
    						printf(" %c ", chv);
    					}
    					putchar('\n');
    				}
    
    Per fare i test

    				if (griglia[xpos][ypos] == VALBVIS)
    				{
    					printf("Hai perso");
    					return 0;
    				}
    
    				if (griglia[xpos][ypos] == VALBVIN)
    				{
    					printf("Hai vinto 50");
    					return 0;
    				}
    
    				if (griglia[xpos][ypos] == VALBNAS)
    				{
    					// Buca nascosta ...					
    				}
    
    ℹ️ Leggi di pi su AntonioG ...

  3. #13
    Shoot non  in linea Novello
    Ma se scrivo cos:
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #define SIZE 50
    #define VALSPAZIO 0
    #define VALBNAS 1
    #define VALBVIS 2
    #define VALBVIN 3
    #define VALBIGLIA 4
    
    #define CHSPAZIO '.'
    #define CHBNAS '.'
    #define CHBVIS '*'
    #define CHBVIN '*'
    #define CHBIGLIA 'O'
    int main()
    {
        char griglia[SIZE][SIZE];
        int colonna,riga,a, x1, y1, scelta, rn1,rn2;
        int cont=1;
        int rBucaV, cBucaV, rBucaN, cBucaN;
        char biglia, b1;
        srand( (unsigned)time(NULL) );
        for(colonna=0;colonna<SIZE;colonna++)
            for(riga=0;riga<SIZE;riga++)
                griglia[riga][colonna] = VALSPAZIO;
    
        int cn = 0;
    
    	for(cn=0; cn<40; cn++)
    	{
    		riga = rand() % SIZE;
    		colonna = rand() % SIZE;
    		griglia[riga][colonna] = VALBNAS;
    	}
    
    	for (cn = 0; cn<20; cn++)
    	{
    		riga = rand() % SIZE;
    		colonna = rand() % SIZE;
    		griglia[riga][colonna] = VALBVIS;
    	}
    
    	colonna = rand() % SIZE;
    	riga = rand() % SIZE;
    	griglia[riga][colonna] = VALBVIN;
    
    	x1 = rand() % 50;
    	y1 = rand() % 50;
    	griglia[x1][y1] = VALBIGLIA;
    
        int xpos = x1;
        int ypos = y1;
        printf("************************* \n");
        printf("* IL GIOCO DELLE BIGLIE * \n");
        printf("************************* \n");
        do{
        printf("Seleziona le opzioni disponibili: \n");
        printf("1)Gioca \n2)Crediti \n");
        scanf("%d",&scelta);
        switch(scelta)
        {
            case 1:system("cls");
            while (cont<1000)
        {
            system("cls||clear");
    				for (colonna = 0; colonna<SIZE; colonna++)
    				{
    					for (riga = 0; riga < SIZE; riga++)
    					{
    						char chv = CHSPAZIO;
    
    						switch (griglia[riga][colonna])
    						{
    							case VALBNAS:
    								chv = CHBNAS;
    								break;
    							case VALBVIS:
    								chv = CHBVIS;
    								break;
    							case VALBVIN:
    								chv = CHBVIN;
    								break;
    							case VALBIGLIA:
    								chv = CHBIGLIA;
    						}
    						printf(" %c ", chv);
    					}
    					putchar('\n');
    				}
            printf("Lancio %d \n", cont);
            printf("1 Sinistra - 2 Destra - 3 Su - 4 Giu' - 5 Giu' a sinistra - 6 Su a sinistra - 7 Giu' a destra - 8 Su a destra \n");
    
            int savex = xpos;
            int savey = ypos;
            int move = 0;
            scanf("%d", &move);
    
            switch (move)
            {
            case 1: if (xpos > -1) xpos--; break;
            case 2: if (xpos < 50) xpos++; break;
            case 3: if (ypos > -1) ypos--; break;
            case 4: if (ypos < 50) ypos++; break;
            case 5: if (ypos < 50 && xpos > -1) xpos--; ypos++; break;
            case 6: if (ypos > -1 && xpos > -1) xpos--; ypos--; break;
            case 7: if (ypos < 50 && xpos < 50) xpos++; ypos++; break;
            case 8: if (ypos > -1 && xpos <50) xpos++; ypos--; break;
            default: cont--;
            }
            if (griglia[xpos][ypos] == VALBVIS)
    				{
    					printf("Hai perso");
    					return 0;
    				}
    
    				if (griglia[xpos][ypos] == VALBVIN)
    				{
    					printf("Hai vinto 50");
    					return 0;
    				}
    
    				if (griglia[xpos][ypos] == VALBNAS)
    				{
                        xpos=rand() % 50;
                        ypos=rand() % 50;
    				}
    
            if(xpos==50||ypos==50)
            {
                rn1=1+rand()%1;
                rn2=1+rand()%3;
                xpos=xpos-rn1;
                ypos=ypos-rn2;
            }
            if(xpos==-1||ypos==-1)
            {
                rn1=1+rand()%1;
                rn2=1+rand()%3;
                xpos=xpos+rn1;
                ypos=ypos+rn2;
            }
            griglia[savex][savey] = '-';
            griglia[xpos][ypos] = 'O';
            cont++;
            if(cont==1)
            {
                griglia[xpos][ypos]!=CHBVIS;
                griglia[xpos][ypos]!=CHBVIN;
                griglia[xpos][ypos]!=CHBNAS;
            }
    
    
        }
        printf("Hai finito il numero di lanci. Game Over \n"); return 0;
            case 2:system("cls"); printf("Gioco creato da Pasquale Marzocchi, studente di informatica dell'Universita' Parthenope \n"); break;
        }
        printf("Premi un tasto qualunque per tornare al menu, premi 9 se invece vuoi uscire dal gioco' \n");
        scanf("%d",&scelta);
        }while(scelta!=9);
    }
    
    quando mi sposto in una direzione, la biglia sparisce dalla griglia. Forse ho sbagliato qualcosa?

  4. #14
    Qui

    griglia[savex][savey] = '-';
    griglia[xpos][ypos] = 'O';

    non devi assegnare i caratteri ma le costanti che cominciano con VAL...

    E scusa, ma non te lo dir pi, queste righe

    griglia[xpos][ypos]!=CHBVIS;
    griglia[xpos][ypos]!=CHBVIN;
    griglia[xpos][ypos]!=CHBNAS;

    NON HANNO SENSO.
    ℹ️ Leggi di pi su AntonioG ...

  5. #15
    Shoot non  in linea Novello
    Ho capito ma stai calmo. Non c' bisogno di dannarsi l'animo per delle stringhe di codice che, secondo la tua conoscenza informatica, non hanno senso. Permettimi di dirti questo. Comunque adesso le tolgo
    Funziona, ora devo fare il fatto delle buche nascoste
    Ok funzionano anche le buche nascoste
    Direi che si pu chiudere questo thread
    Adesso torno a quello precedente
    Ultima modifica di AntonioG; 15-11-2020 13:53 

  6. #16
    Ho capito ma stai calmo. Non c' bisogno di dannarsi l'animo per delle stringhe di codice che, secondo la tua conoscenza informatica, non hanno senso.
    Veramente ho passato parte del sabato e della domenica per il tuo esercizio e non "secondo la mia conoscenza" ... Non mi piace ripetere mille volte la stessa cosa e sentirsi dire di stare calmo.

    Permettimi di dirti questo.
    No, non te lo permetto.

    Direi che si pu chiudere questo thread
    Questo thread non si chiude.

    Adesso torno a quello precedente
    ℹ️ Leggi di pi su AntonioG ...

  7. #17
    Shoot non  in linea Novello
    In che senso non si chiude? Scusa il problema delle buche nascoste stato risolto, che altro c' da dire?
    E poi se ho detto "secondo la tua conoscenza informatica", l'ho detto perch appunto tu sai pi cose di me. Non era affatto dispregiativo.

  8. #18
    I thread non si chiudono, non c' alcun bisogno di farlo.

    Per l'altra questione, attendi qualche suggerimento di altri partecipanti al forum.
    ℹ️ Leggi di pi su AntonioG ...

  9. #19
    Shoot non  in linea Novello
    Spero che ci sia altra gente ad aiutarmi. Di solito vedo che gran parte delle volte mi aiuti tu

  10. #20
    Non credo, dato certe risposte che dai. Ma attendi fiducioso
    ℹ️ Leggi di pi su AntonioG ...

Discussione chiusa
Pagina 2 di 3 primaprima 123 ultimoultimo

Potrebbero interessarti anche ...

  1. access tabelle nascoste
    Da sasy_80 nel forum Microsoft Access
    Risposte: 5
    Ultimo Post: 15-10-2013, 17:36
  2. Risposte: 3
    Ultimo Post: 15-01-2009, 10:37
  3. [Win2000] Gestione delle lettere delle Unita: un serio problema
    Da Black Wings Angel nel forum Microsoft Windows
    Risposte: 4
    Ultimo Post: 23-03-2007, 00:07
  4. tabelle nascoste in access
    Da pricious nel forum Microsoft Access
    Risposte: 4
    Ultimo Post: 20-11-2006, 11:43
  5. Cartelle nascoste con VBA
    Da jos nel forum Microsoft Word
    Risposte: 2
    Ultimo Post: 27-02-2006, 18:38