C plus plus - Impara a programmare in C++

Mastermind

« Older   Newer »
 
  Share  
.
  1.  
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    6,076

    Status
    Offline
    Ecco qua il mio mastermind. L'ho fatto nel primo periodo in cui studiavo C++ quindi ottimizzazione 0 XD
    E' comunque una base per capire il funzionamento del gioco.

    CODICE
    #include <cstdlib>
    #include <iostream>
    #include <stdio.h>
    #include <time.h>

    int main()
    {
       srand(time(NULL));
       int num1=0, num2=0, num3=0, num4=0, tentativi=0;
       int x1=0,x2=0,x3=0,x4=0;
       int g1=0, g2=0, g3=0, g4=0;
       num1 = rand() % 10;
       while(num2==num1) {num2 = rand() % 10;}
       while(num3 == num2 || num3 == num1){num3 = rand() % 10;}
       while(num4==num3||num4==num2||num4==num1){num4 = rand() % 10;}
       printf("                      ##### BENVENUTO IN #####\n");
       printf("                      ###### MASTER MIND ######\n");
       printf("Come giocare: prova a scoprire la combinazione segreta\n");
       printf("Ricorda: X significa SBAGLIATO, O significa GIUSTO, ? significa GIUSTO MA POSTO SBAGLIATO\n\n");
       printf("La combinazione segreta è stata creata,\nora prova a scoprirla!\n\n");
       while(tentativi < 20){
           g1 = 0; g2 = 0; g3 = 0; g4 = 0;
           printf("\nInserisci la tua combinazione, scrivendo ogni singolo valore seguito da invio\n");
           scanf("%d", &x1);
           scanf("%d", &x2);
           scanf("%d", &x3);
           scanf("%d", &x4);
           printf("Risposta: ");
           if(x1 == num1){printf("O");g1=1;}
           if(x2 == num2){printf("O");g2=1;}
           if(x3 == num3){printf("O");g3=1;}
           if(x4 == num4){printf("O");g4=1;}
           if(g1 != 1){if(x1 == num2 || x1 == num3 || x1 == num4){printf("?");}else{printf("X");}}
           if(g2 != 1){if(x2 == num1 || x2 == num3 || x2 == num4){printf("?");}else{printf("X");}}
           if(g3 != 1){if(x3 == num1 || x3 == num2 || x3 == num4){printf("?");}else{printf("X");}}
           if(g4 != 1){if(x4 == num1 || x4 == num2 || x4 == num3){printf("?");}else{printf("X");}}
           if(x1 == num1 && x2 == num2 && x3 == num3 && x4 == num4){printf("Hai scoperto la combinazione!!\nCOMPLIMENTI!\n"); tentativi = 20;}
           }  
       system("PAUSE");
       return EXIT_SUCCESS;
    }
     
    Top
    .
  2. Briky xbox
     
    .

    User deleted


    Funziona, solo che non ci sono funzioni e non hai usato gli array, ed è molto corto. xD
     
    Top
    .
  3.  
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    6,076

    Status
    Offline
    Eh si. Ancora non usavo gli array.
     
    Top
    .
  4. Briky xbox
     
    .

    User deleted


    Comunque va bene.
    Io però devo farlo molto più difficile.
    Devo anche inserire nome utente, fare più giocatori, fare una grafica con una mappa di gioco, e anche stilare una classifica con nomi e punteggi dei giocatori.
     
    Top
    .
  5. rona loves moony leez
     
    .

    User deleted


    no raga, non é corretto :ph34r:
    QUOTE
    CODE
    printf("Risposta: ");
          if(x1 == num1){printf("O");g1=1;}
          if(x2 == num2){printf("O");g2=1;}
          if(x3 == num3){printf("O");g3=1;}
          if(x4 == num4){printf("O");g4=1;}

    supponiamo che la prima cifra sia sbagliata: non esce nulla, né O né ? né X
    subito dopo controlla se la seconda cifra é giusta, se lo é ti esce O ma nella prima posizione, non nella seconda..
    la versione corretta sarebbe con la riga if(g1 != 1)ecc subito dopo la riga if(x1==num1)ecc, e cosi' via x ogni cifra

    comunque non volevo fare il saputello, anzi sono qua per imparare qualcosa infatti mi stavo leggendo le lezioni sul C++ (molto ben fatte, complimenti) e dato che é la prima volta che noto "un bug" mi sono emozionato character051
     
    Top
    .
4 replies since 26/3/2011, 18:49   151 views
  Share  
.