Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI Lito 1 e Lito X1 recensione: i nuovi droni per principianti che non si fanno mancare nulla
DJI Lito 1 e Lito X1 recensione: i nuovi droni per principianti che non si fanno mancare nulla
DJI ha appena ufficializzato la serie Lito, la sua nuova gamma di droni entry-level destinata a chi si avvicina per la prima volta alla fotografia aerea. Al centro dell'annuncio ci sono due modelli ben distinti per fascia di prezzo e specifiche tecniche: DJI Lito 1 e DJI Lito X1. Entrambi si collocano sotto la soglia regolamentare dei 249 grammi, che permette di volare con requisiti burocratici più semplici rispetto ai droni più pesanti.
Sony World Photography Awards 2026: i premiati, anche italiani, il punto sulla fotografia di oggi
Sony World Photography Awards 2026: i premiati, anche italiani, il punto sulla fotografia di oggi
Siamo stati a Londra per la premiazione dei Sony World Photography Awards 2026, l'evento a tema fotografia più prestigioso. Fra sorprese e novità, ne approfittiamo per fare il punto sulla fotografia contemporanea, in cui la didascalia è sempre più necessaria a cogliere il senso della quasi totalità degli scatti.
Una settimana con Hyundai Ioniq 5 N-Line: diverte e convince
Una settimana con Hyundai Ioniq 5 N-Line: diverte e convince
L'elettrica di casa Hyundai propone una versione AWD con estetica derivata dalla famiglia N. L'abbiamo provata per diversi giorni, per scoprire tutti i dettagli e la vera autonomia in autostrada
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 29-01-2017, 18:02   #1
thecarmy97
Junior Member
 
Iscritto dal: Jul 2014
Messaggi: 2
Problema con gioco di briscola in C++

Codice:
 #include <iostream>
#include <stdlib.h>
#include <ctime>

using namespace std;


struct carta{
char *seme;
int valore;
char *nome;
int punteggio;
};


char seme[4][20] = {"Mazze", "Spade", "Coppe","Denari"};
char nome[10][20] = {"Asso", "Due", "Tre", "Quattro", "Cinque", "Sei", "Sette", "Donna", "Cavallo", "Re"};
int valore[10] = {12, 2, 11, 4, 5, 6, 7, 8, 9, 10};
int punteggio[10] = {11, 0, 10, 0, 0, 0, 0, 2, 3, 4};


void crea_mazzo(carta mazzo[]){
    int c=0;
for(int i = 0; i<4; i++){
    for(int j = 0; j<10; j++){
        mazzo[c].seme = seme[i];
        mazzo[c].valore = valore[j];
        mazzo[c].punteggio = punteggio[j];
        mazzo[c].nome = nome[j];
        c++;
    }
}
}

void mischia_mazzo(carta mazzo[]){
int primacarta, secondacarta;
carta cartatemp;
srand((unsigned)time(NULL));
for(int i = 0; i<40; i++){
    primacarta = rand() % 40;
    secondacarta = rand() % 40;
    cartatemp = mazzo[primacarta];
    mazzo[primacarta] = mazzo[secondacarta];
    mazzo[secondacarta] = cartatemp;
}
}

carta crea_briscola(carta labriscola1, carta mazzo[]){
labriscola1 = mazzo[39];
return labriscola1;
}

int distribuisci_carte(carta mazzo[], carta manogioc[], carta manoia[]){
 int i, c1, c2;
    c1=0;
    c2=0;
    for(i = 0; i < 6; i++){
       if(i < 3){
      manogioc[c1++] = mazzo[i];
       }
       else{
        manoia[c2++] = mazzo[i];
       }
}
return 6;
}

void mostra_carte_gioc(carta manogioc[]){

for(int i=0; i<3; i++){
    if(manogioc[i].seme == nullptr)
        cout<<i<<". "<<endl;
    else
        cout<<i<<". "<<manogioc[i].nome<<" di "<<manogioc[i].seme<<endl;
}

}

int gioca_carta(carta manogioc[], carta campo[]){
int posizione_carta=0;

cout<<"Inserisci la posizione della carta che vuoi giocare: ";
cin>>posizione_carta;
cout<<endl;
while(posizione_carta > 2 || posizione_carta < 0 || manogioc[posizione_carta].seme==nullptr){
    cout<<"Seleziona una carta esistente! "<<endl;
    cout<<"Inserisci la posizione della carta che vuoi giocare: ";
    cin>>posizione_carta;
    cout<<endl;
}
    cout<<"Hai giocato la carta "<<manogioc[posizione_carta].nome<<" di "<<manogioc[posizione_carta].seme<<endl<<endl;
    campo[0] = manogioc[posizione_carta];
    return posizione_carta;
}

int gioca_ia(carta manoia[], carta campo[]){
    srand((unsigned)time(NULL));
   int posizione_cartaia = rand() % 3;
   while(manoia[posizione_cartaia].nome==nullptr){
        posizione_cartaia = rand() % 3;
   }
   cout<<"L'IA ha giocato la carta: "<<manoia[posizione_cartaia].nome<<" di "<<manoia[posizione_cartaia].seme<<endl;
    campo[1] = manoia[posizione_cartaia];
    return posizione_cartaia;
}

int pescacarta(carta mazzo[], carta primamano[], carta secondamano[], int posizionedeck, int primapos, int secondapos){
carta cartavuota = {nullptr};
if(posizionedeck < 40){
    primamano[primapos] = mazzo[posizionedeck];
    secondamano[secondapos] = mazzo[posizionedeck+1];
}
    else{
        primamano[primapos] = cartavuota;
        secondamano[secondapos] = cartavuota;
    }
return posizionedeck + 2;
}


int funzione_presagioc (carta primamano[], carta secondamano[], int primapos, int secondapos, carta briscola, int &presa){
if(primamano[primapos].valore >= secondamano[secondapos].valore && secondamano[secondapos].seme != briscola.seme)
   return presa = 1;

    else if(primamano[primapos].valore < secondamano[secondapos].valore && primamano[primapos].seme != secondamano[secondapos].seme)
      return  presa = 1;

    else if(primamano[primapos].seme == briscola.seme && secondamano[secondapos].seme != briscola.seme)
   return presa= 1;

else if(primamano[primapos].seme == briscola.seme && secondamano[secondapos].seme == briscola.seme && primamano[primapos].valore > secondamano[secondapos].valore)
 return presa= 1;


else  return presa = 0;
}

int funzione_presaia (carta primamano[], carta secondamano[], int primapos, int secondapos, carta briscola, int &presa){
if(primamano[primapos].valore >= secondamano[secondapos].valore && secondamano[secondapos].seme != briscola.seme)
   return presa = 0;

    else if(primamano[primapos].valore < secondamano[secondapos].valore && primamano[primapos].seme != secondamano[secondapos].seme)
      return  presa = 0;

    else if(primamano[primapos].seme == briscola.seme && secondamano[secondapos].seme != briscola.seme)
   return presa= 0;

else if(primamano[primapos].seme == briscola.seme && secondamano[secondapos].seme == briscola.seme && primamano[primapos].valore > secondamano[secondapos].valore)
 return presa= 0;


else  return presa = 1;

}

int main(){
carta mazzo[40];
int mazzogioc[40];
int mazzoia[40];
carta mano_gioc[3]={nullptr};
carta campo[2];
carta mano_ia[3]={nullptr};
int manofinale=0;
int pos_gioc;
int pos_ia;
int presa=1;
int c1 = 0;
int c2 = 0;
int puntigioc=0;
int puntiia=0;

carta labriscola;
crea_mazzo(mazzo);
int posizione_mazzo;
mischia_mazzo(mazzo);

cout<<"Benvenuto a Briscola!"<<endl<<endl;
system("PAUSE");
cout<<endl;
labriscola = crea_briscola(labriscola, mazzo);
posizione_mazzo = distribuisci_carte(mazzo, mano_gioc, mano_ia);
while(posizione_mazzo < 46){
system("CLS");
cout<<"La briscola in questa partita e': "<<labriscola.nome<<" di "<<labriscola.seme<<endl<<endl;
if(presa == 1){
cout<<"La tua mano e': "<<endl;
cout<<endl;
mostra_carte_gioc(mano_gioc);
cout<<endl;
pos_gioc = gioca_carta(mano_gioc, campo);
pos_ia = gioca_ia(mano_ia, campo);
funzione_presagioc(mano_gioc, mano_ia, pos_gioc, pos_ia, labriscola, presa);
posizione_mazzo = pescacarta(mazzo, mano_gioc, mano_ia, posizione_mazzo, pos_gioc, pos_ia);
mazzogioc[c1] = campo[0].punteggio;
mazzogioc[c1+1] = campo[1].punteggio;
c1+=2;
}
else if(presa == 0){
cout<<"La tua mano e': "<<endl;
cout<<endl;
mostra_carte_gioc(mano_gioc);
cout<<endl;
gioca_ia(mano_ia, campo);
gioca_carta(mano_gioc, campo);
cout<<endl;
funzione_presaia(mano_ia, mano_gioc, pos_ia, pos_gioc, labriscola, presa);
posizione_mazzo = pescacarta(mazzo, mano_ia, mano_gioc, posizione_mazzo, pos_ia, pos_gioc);
mazzoia[c2] = campo[0].punteggio;
mazzoia[c2+1] = campo[1].punteggio;
c2+=2;
}

if(presa == 1)
    cout<<"Hai preso la mano!"<<endl;
else if(presa == 0)
    cout<<"L'IA ha preso la mano!"<<endl;
system("PAUSE");
}


for(int i = 0; i<c1; i++){
    puntigioc+=mazzogioc[i];
}

for(int j = 0; j<c2; j++){
    puntiia+=mazzoia[j];
  }



cout<<"Hai totalizzato "<<puntigioc<<" ."<<endl;
cout<<"L'IA ha totalizzato "<<puntiia<<" ."<<endl;
if(puntigioc > puntiia)
    cout<<"HAI VINTO!"<<endl;
else if(puntiia > puntigioc)
    cout<<"HAI PERSO!"<<endl;
    else if(puntiia == puntigioc)
        cout<<"HAI PAREGGIATO!";


return 0;
system("PAUSE");
cout<<"\n\n";
}

Salve, premetto che non sono molto esperto del linguaggio. Ho scritto questo programma che simula la briscola per un esame universitario. Il compilatore non mi da errori, ma il gioco soffre di qualche problema: il conteggio dei voti non è sempre perfetto, e sopratutto la pesca ad ogni turno è spesso buggata, e mi vengono pescate carte nella posizione sbagliata. Qualcuno che può eseguire il programma e mi dia una mano? Ve ne sarei molto grato, vi ringrazio.
thecarmy97 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI Lito 1 e Lito X1 recensione: i nuovi droni per principianti che non si fanno mancare nulla DJI Lito 1 e Lito X1 recensione: i nuovi droni p...
Sony World Photography Awards 2026: i premiati, anche italiani, il punto sulla fotografia di oggi Sony World Photography Awards 2026: i premiati, ...
Una settimana con Hyundai Ioniq 5 N-Line: diverte e convince Una settimana con Hyundai Ioniq 5 N-Line: divert...
Recensione OPPO Find X9 Ultra: è lui il cameraphone definitivo Recensione OPPO Find X9 Ultra: è lui il c...
Ecovacs Deebot X12 OmniCyclone: lava grazie a FocusJet Ecovacs Deebot X12 OmniCyclone: lava grazie a Fo...
Il telescopio spaziale Nancy Grace Roman...
iPhone Ultra, periodo di lancio conferma...
Un anno fa debuttava Clair Obscur:&...
Tutte le offerte sugli smartphone ora pi...
Tutte le offerte sui TV ora su Amazon: u...
Xbox Game Pass sarà disponibile a...
La serie HONOR 600 avrà presto un...
Mova Viax 250 in prova: il robot tagliae...
Fat e-bike per tutti: sconti Engwe, pi&u...
Google conferma l'arrivo della nuova ver...
Apple ha trovato il modo per abbassare i...
OpenAI vuole tassare l'AI per dare a tut...
MacBook Air 15'' con chip M4 a 1.199€ su...
Samsung Galaxy S25 Edge 12/512GB a 854€ ...
Super offerta sul portatile gaming Acer ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 19:11.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v