Ciao... ho fatto questo codice, che simula una specie di slot machine, sto cercando consigli per migliorare il codice, che nn mi sembra un gran chè perche continua ad aprire chiudere file ecc... ci sara sicuramente un modo per farlo meglio, premtetto che programmo amatorialmente, ho solo 15 anni, quindi nn insultatemi troppo vi posto il codice:
#include <fstream>
#include <iostream>

using namespace std;


int main()
{

//dichiaro i numeri
int n01;
int n02;
int n03;
int n04;
int n05;
int n06;
int n07;
int n08;
int n09;

//dichiaro due stringhe che mi permettono di andare avanti con il gioco
string s1;
string s2;

do {

//apro il file machine.txt che contiene il numero di gettoni
int tmachine;
ifstream tokensmachine ("machine.txt");
tokensmachine >> tmachine;
tokensmachine.close();

//gettoni dell'utente
int tmember;
ifstream tokensmember ("tokens.txt");
tokensmember >> tmember;
tokensmember.close();

//vincite
int win1 = 8;
int win2 = 4;
int win3 = 1;

//...
int numberw;
int totokens;

//randomizzo i numeri che ho dichiarato all'inizio
n01 = rand() % 3 + 1;
n02 = rand() % 3 + 1;
n03 = rand() % 3 + 1;
n04 = rand() % 3 + 1;
n05 = rand() % 3 + 1;
n06 = rand() % 3 + 1;
n07 = rand() % 3 + 1;
n08 = rand() % 3 + 1;
n09 = rand() % 3 + 1;

//stampo il numero di gettoni in palio e se l'utente vuole spendere un gettone per giocare
cout << "Montepremi: " << tmachine << " gettoni! ";
cout << "Gettoni che possiedi: " << tmember << "!" << endl;
cout << "Vuoi tentare la fortuna inserendo un gettone nella macchinetta? [s/n] ";
cin >> s1;

//se l'utente inserisce il gettone procedo con il gioco
if (s1 == "s") {

//salvo machine.txt con un gettone in più rispetto a prima
int addtokens = 1+tmachine;
ofstream addtokensmachine ("machine.txt");
addtokensmachine << addtokens;
addtokensmachine.close();

//salvo tokens,txt con un gettone in meno
int reltokens = tmember-1;
ofstream reltokensmember ("tokens.txt");
reltokensmember << reltokens;
reltokensmember.close();

//stampo i numeri random in tre colonne e tre righe
cout << " " << n01 << " " << n02 << " " << n03 << "" << endl;
cout << " " << n04 << " " << n05 << " " << n06 << "" << endl;
cout << " " << n07 << " " << n08 << " " << n09 << "" << endl;

//se una delle tre righe é uguale es: 3 3 3 il giocatore vince
if (n01 == n02 && n01 == n03) {

numberw = n01;
if (numberw == 3)
totokens = win1;
else if (numberw == 2)
totokens = win2;
else if (numberw == 1)
totokens = win3;
cout << "Complimenti! Hai vinto " << totokens << " gettoni!" << endl;

} else if (n04 == n05 && n04 == n06) {

numberw = n01;
if (numberw == 3)
totokens = win1;
else if (numberw == 2)
totokens = win2;
else if (numberw == 1)
totokens = win3;
cout << "Complimenti! Hai vinto " << totokens << " gettoni!" << endl;

} else if (n07 == n08 && n07 == n09) {

numberw = n01;
if (numberw == 3)
totokens = win1;
else if (numberw == 2)
totokens = win2;
else if (numberw == 1)
totokens = win3;
cout << "Complimenti! Hai vinto " << totokens << " gettoni!" << endl;

} else {
cout << "Sei stato sfortunato! Riprova!" << endl;
numberw = 0;
}

//se la vincita e maggiore di 0 salvo il risultato sul file
if (numberw > 0) {
ofstream addtokensmember ("tokens.txt");
addtokensmember << tmember+totokens;
addtokensmember.close();

ofstream reltokensmachine ("machine.txt");
reltokensmachine << tmachine-totokens;
reltokensmember.close();
}

}

cout << "Vuoi ritentare? [s/n] ";
cin >> s2;
cout << endl << endl;

} while(s2 == "s"); //se il giocatore vuole ritentare il ciclo rinizia da capo

return 0;
}
Spero che abbiate qualche idea da suggerirmi per migliorare... ciaooo e grazie...