Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    112

    [c++] esecuzione del prg sempre diversa

    ciao a tutti, abbiate pazienza ma sono al mio primo programma e volevo postarlo facendovi qualche domanda, è un po lunghetto:

    #include <iostream>
    #include <cstdlib>
    using namespace std;

    int x, y;
    int i;
    int n;
    char s;
    int mazzo[40][2];
    int mazzo_da_riempire[40][2];
    static double risultato_giocatore, risultato_banco;
    double o;

    void funzione();
    void funzione2();
    void funzione3();
    void funzione4();
    void funzione5();
    void funzione6();
    void funzione7();
    void funzione8();
    void funzione9();

    int main() {


    for(; {

    cout<<" SETTE e MEZZO by cri"<<"\n\n";

    srand(time (NULL));
    risultato_giocatore=0.0;
    risultato_banco=0.0;

    funzione();

    system("pause");
    }
    return 0;
    }
    void funzione() { //carica l'array mazzo con le 40 carte

    for(x=0; x<10; x++) {
    mazzo[x][0]=x+1;
    mazzo[x][1]=3;
    }
    for(x=10; x<20; x++) {
    mazzo[x][0]=x-9;
    mazzo[x][1]=4;
    }
    for(x=20; x<30; x++) {
    mazzo[x][0]=x-19;
    mazzo[x][1]=5;
    }
    for(x=30; x<40; x++) {
    mazzo[x][0]=x-29;
    mazzo[x][1]=6;
    }
    for(x=0; x<40; x++) {
    for(i=0; i<2; i++) {
    cout<<mazzo[x][i]<<" ";
    }
    cout<<"\n";
    }
    cout<<"\n\n";
    funzione2();
    }

    void funzione2() { // mette tutti i membri dell'array mazzo_da_riempire a 0

    for(x=0; x<40; x++) {
    for(i=0; i<2; i++) {
    mazzo_da_riempire[x][i]=0;
    }
    }

    cout<<"\n";
    funzione3();
    }

    void funzione3() { //inserisce la carta uscita nell'array mazzo_da_riempire

    n=0+rand()%39;
    s= mazzo[n][1];

    if (mazzo_da_riempire[n][0]!=0) funzione3();
    mazzo_da_riempire[n][0]=mazzo[n][0];
    mazzo_da_riempire[n][1]=mazzo[n][1];
    for(x=0; x<40; x++) {
    for(i=0; i<2; i++) {
    cout<<mazzo_da_riempire[x][i]<<" ";
    }
    cout<<"\n";
    }
    cout<<"\n";
    funzione4();
    }

    void funzione4() {
    switch (n) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    cout<<"la tua carta : "<<mazzo_da_riempire[n][0]<<" "<<s;
    risultato_giocatore+=n;
    cout<<"var risultato_giocatore :"<<risultato_giocatore;
    break;
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    cout<<"la tua carta : "<<mazzo_da_riempire[n][0]<<" "<<s;
    risultato_giocatore+=(n-9);
    cout<<"var risultato_giocatore :"<<risultato_giocatore;
    break;
    case 20:
    case 21:
    case 22:
    case 23:
    case 24:
    case 25:
    case 26:
    cout<<"la tua carta : "<<mazzo_da_riempire[n][0]<<" "<<s;
    risultato_giocatore+=(n-19);
    cout<<"var risultato_giocatore :"<<risultato_giocatore;
    break;
    case 30:
    case 31:
    case 32:
    case 33:
    case 34:
    case 35:
    case 36:
    cout<<"la tua carta : "<<mazzo_da_riempire[n][0]<<" "<<s;
    risultato_giocatore+=(n-29);
    cout<<"var risultato_giocatore :"<<risultato_giocatore;
    break;
    case 7:
    case 17:
    case 27:
    case 37:
    cout<<"la tua carta : J "<<s;
    o=0.5;
    risultato_giocatore+=o;
    cout<<"var risultato_giocatore :"<<risultato_giocatore;
    break;
    case 8:
    case 18:
    case 28:
    case 38:
    cout<<"la tua carta : Q "<<s;
    o=0.5;
    risultato_giocatore+=o;
    cout<<"var risultato_giocatore :"<<risultato_giocatore;
    break;
    case 9:
    case 19:
    case 29:
    case 39:
    cout<<"la tua carta : K "<<s;
    o=0.5;
    risultato_giocatore+=o;
    cout<<"var risultato_giocatore :"<<risultato_giocatore;
    break;
    }
    funzione5();
    }

    void funzione5() { //scelta c o s

    dacapo:

    char another;

    cout<<"vuoi un'altra carta o stai? 'c' o 's'";
    cin>>another;

    if (another=='c') funzione3();
    else if (another=='s') funzione6();
    else {
    cout<<"\n\n";
    cout<<"scelta sbagliata, scegli 'c' o 's', continua";
    cout<<"\n\n";
    goto dacapo;
    }
    }

    void funzione6() {
    cout<<"sei arrivato a :"<<risultato_giocatore;
    cout<<"\n\n";
    cout<<"tocca al banco";
    funzione7();
    }

    void funzione7() {

    cout<<"\n";

    n=0+rand()%39;
    s= mazzo[n][1];

    if (mazzo_da_riempire[n][0]!=0) funzione7();
    mazzo_da_riempire[n][0]=mazzo[n][0];
    mazzo_da_riempire[n][1]=mazzo[n][1];
    for(x=0; x<40; x++) {
    for(i=0; i<2; i++) {
    cout<<mazzo_da_riempire[x][i]<<" ";
    }
    cout<<"\n";
    }
    cout<<"\n";
    funzione8();
    }


    void funzione8() {
    switch (n) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    cout<<"la carta del banco: "<<mazzo_da_riempire[n][0]<<" "<<s;
    risultato_banco+=n;
    cout<<"var risultato_banco :"<<risultato_banco;
    break;
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    cout<<"la carta del banco: "<<mazzo_da_riempire[n][0]<<" "<<s;
    risultato_banco+=(n-9);
    cout<<"var risultato_banco :"<<risultato_banco;
    break;
    case 20:
    case 21:
    case 22:
    case 23:
    case 24:
    case 25:
    case 26:
    cout<<"la carta del banco: "<<mazzo_da_riempire[n][0]<<" "<<s;
    risultato_banco+=(n-19);
    cout<<"var risultato_banco :"<<risultato_banco;
    break;
    case 30:
    case 31:
    case 32:
    case 33:
    case 34:
    case 35:
    case 36:
    cout<<"la carta del banco: "<<mazzo_da_riempire[n][0]<<" "<<s;
    risultato_banco+=(n-29);
    cout<<"var risultato_banco :"<<risultato_banco;
    break;
    case 7:
    case 17:
    case 27:
    case 37:
    cout<<"la carta del banco: J "<<s;
    o=0.5;
    risultato_banco+=o;
    cout<<"var risultato_banco :"<<risultato_banco;
    break;
    case 8:
    case 18:
    case 28:
    case 38:
    cout<<"la carta del banco: Q "<<s;
    o=0.5;
    risultato_banco+=o;
    cout<<"var risultato_banco :"<<risultato_banco;
    break;
    case 9:
    case 19:
    case 29:
    case 39:
    cout<<"la carta del banco: K "<<s;
    o=0.5;
    risultato_banco+=o;
    cout<<"var risultato_banco :"<<risultato_banco;
    break;
    }
    funzione9();
    }


    void funzione9() {

    if (risultato_banco<=5.0) {
    cout<<"altra carta per il banco: ";
    funzione7();
    }
    if (risultato_banco>5.0 && risultato_banco<=7.5) cout<<"il banco si ferma a: "<<risultato_banco<<"\n";
    if (risultato_banco<risultato_giocatore) cout<<"hai vinto!";
    else cout<<"il banco vince!";
    }



    -------------------------------------------------------------------------------
    ora questo programma viene eseguito ogni volta con delle diversità
    ad esempio:

    nella funzione9(), cioè a fine programma, di scritte "hai vinto" oppure "il banco vince" ne compaiono da 1 a 4-5.

    sempre nella funzione9() a volte non rispetta l'istruzione fermandosi ma continua a estrarre altre carte.

    non riesco a capire il perchè di tale comportamento, spero sappiate aiutarmi.
    scusate ancora per la lunghezza.
    ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    112
    dimenticavo come compilatore uso dev c++ 4.9.9.2

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.