Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
La facilità di installazione e la completa automazione di tutte le fasi di utilizzo, rendono questo prodotto l'ideale per molti clienti. Ecco com'è andata la nostra prova in anteprima
Tutti gli articoli Tutte le news

Vai al Forum
Discussione Chiusa
 
Strumenti
Old 07-02-2011, 18:07   #1
alex91ander
Junior Member
 
Iscritto dal: Jan 2011
Messaggi: 4
mischiare carte

Ragazzi Ho sviluppato il programma e me lo compila pure soltanto che quando lo eseguo, quando mi chiede di mischiare le carte si blocca cioè mi da errore ed appare una finestra di Microsoft con scritto :fare clic qui
Debug Invia segnalazione errori Non inviare

sapreste trovarmi l'errore???

secondo la traccia:
Sviluppare un algoritmo per la simulazione del gioco delle coppie di carte tra due
giocatori identificati dai loro nomi. Inizialmente “mischiare” un mazzo di carte
napoletane. L’algoritmo per mischiare le carte si basa sull’idea di scambiare
effettivamente a coppie le carte del mazzo; una variabile in input permette di indicare
quante volte si devono effettuare gli scambi. Viene scelto casualmente quale dei due giocatori deve iniziare il gioco. Vengono “scoperte” due carte la quale posizione è indicata dal primo giocatore. Se le due carte
hanno lo stesso valore il giocatore si aggiudica un punto e le due carte vengono scoperte.
Il giocatore continua finchè non sbaglia (non trova due carte uguali) e il turno passa
all’altro giocatore. Ad ogni turno il giocatore ha a disposizione l’elenco delle carte coperte e quelle scoperte. Il gioco termina quando si scoprono tutte le carte. Il giocatore che ha
totalizzato più punti vince la partita. Implementare il programma ed effettuare almeno 3 test.
Usare la function rand(), il cui prototipo è in <stdlib.h>, per generare a ogni
passo gli indici delle due carte da scambiare. Nei test, partire sempre dal mazzo
“ordinato” e poi visualizzare il mazzo “mischiato”.Si ricorda che, se numero_casuale è dichiarata di tipo int, allora la chiamata numero_casuale=rand()%(n+1); genera un numero casuale intero
(distribuzione uniforme) nell’insieme (0,1,2,..n).

Codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef enum{denari,bastoni,spade,coppe}Semi_nap;
struct carta {
       int valore;
       Semi_nap seme;
       };
typedef struct carta Carta;

void mischia_carte(Carta mazzo[],int n_carte,int qvmix);
void scambiare_carte(Carta mazzo[],int i, int j);
int main()
{
int iniz,i,j,puntiprimogiocatore=0,puntisecondogiocatore=0,k=0,puntitotali,qvmix,n_carte=40;
char giocatoreuno[20], giocatoredue[20];
Carta mazzo[40]={{1,denari},{2,denari},{3,denari},{4,denari},{5,denari},{6,denari},{7,denari},{8,denari},{9,denari},{10,denari},
{1,bastoni},{2,bastoni},{3,bastoni},{4,bastoni},{5,bastoni},{6,bastoni},{7,bastoni},{8,bastoni},{9,bastoni},{10,bastoni},
{1,spade},{2,spade},{3,spade},{4,spade},{5,spade},{6,spade},{7,spade},{8,spade},{9,spade},{10,spade},
{1,coppe},{2,coppe},{3,coppe},{4,coppe},{5,coppe},{6,coppe},{7,coppe},{8,coppe},{9,coppe},{10,coppe}};

printf("Inserire il nome del primo giocatore \n");
gets(giocatoreuno);
printf("Inserire il nome del secondo giocatore \n");
gets(giocatoredue);

iniz = rand()%1;
if(iniz=0)
{
printf("Il primo a giocare sarà %s\n",giocatoreuno);
}
else
{
printf("Il primo giocatore sarà %s\n",giocatoredue);
}
printf("Quante volte vuoi mischiare il mazzo?\n");
scanf("%d",qvmix);
mischia_carte(mazzo,n_carte,qvmix);


do{
                             printf("le posizioni delle carte ancora coperte:");
                             for(k=0;k<=39;k++){
                             if(mazzo[k].valore==0)
                             {
                                                  continue;
                                                  }
                                                  else
                                                  {
                                                      printf("%d",k);
                                                      }
                                                      }
                                                      if(iniz==0)
                                                      {
                                                                printf("%s scegli la posizione della prima carta\n",giocatoreuno);
                                                                scanf("%d",&i);
                                                                while(mazzo[i].valore==0)
                                                                {
                                                                                      printf("la carta è gia stata scelta\n");
                                                                                      scanf("%d",&i);
                                                                                      }
                                                                                      
                                                      
                                                                                      printf("La carta scelta è %d, %s\n",mazzo[i].valore,mazzo[i].seme);
                                                                                      
                                                                                      printf("%s scegli la posizione dell seconda carta\n",giocatoreuno);
                                                                                      scanf("%d",&j);
                                                                                      while(mazzo[j].valore==0)
                                                                                      {
                                                                                                            printf("la carta è gia stata scelta\n");
                                                                                                            scanf("%d",&j);
                                                                                                            }
                                                                                                            }          
                                                                                                            
                                                                                                            else
                                                                                                            {
                                                                                                                printf("%s scegli la posizione della prima carta\n",giocatoredue);
                                                                                                                scanf("%d",&i);
                                                                                                                while(mazzo[i].valore==0)
                                                                                                                {
                                                                                                                                      printf("la carta è gia stata scelta\n");
                                                                                                                                      scanf("%d",&i);
                                                                                                                                      }
                                                                                                                                      
                                                                                                                                      printf("La carta scelta è %d, %s\n",mazzo[i].valore,mazzo[i].seme);
                                                                                                                                                            
                                                                                                                                      printf("%s scegli la posizione seconda carta\n",giocatoredue);
                                                                                                                                      scanf("%d",&j);
                                                                                                                                      while(mazzo[j].valore==0)
                                                                                                                                      {
                                                                                                                                                            printf("la carta è gia stata scelta\n");
                                                                                                                                                            scanf("%d",&j);
                                                                                                                                      }
                                                                                                                                                            
                                                                                                                                                            printf("La carta scelta è %d, %s\n",mazzo[j].valore,mazzo[j].seme);
                                                                                                                                                            }
                                                                                                                                                            if(mazzo[i].valore==mazzo[j].valore)
                                                                                                                                                            {
                                                                                                                                                                                  printf("Giusto le due carte sono uguali! ricevi un punto\n");
                                                                                                                                                                                  if(iniz==0)
                                                                                                                                                                                  {
                                                                                                                                                                                  puntiprimogiocatore++;
                                                                                                                                                                                  }
                                                                                                                                                                                  else
                                                                                                                                                                                  {
                                                                                                                                                                                      puntisecondogiocatore++;
                                                                                                                                                                                  mazzo[i].valore=0;
                                                                                                                                                                                  mazzo[j].valore=0;
                                                                                                                                                                                  }
                                                                                                                                                                                  }
                                                                                                                                                                                  else
                                                                                                                                                                                  {
                                                                                                                                                                                      printf("Le due carte non sono uguali! Il tuo turno è finito.");
                                                                                                                                                                                      }
                                                                                                                                                                                      if(iniz==0)
                                                                                                                                                                                                 {
                                                                                                                                                                                                 iniz=1;
                                                                                                                                                                                                 }
                                                                                                                                                                                                 else
                                                                                                                                                                                                 {
                                                                                                                                                                                                     iniz=0;
                                                                                                                                                                                                     
                                                                                                                                                                                                     }
                                                                                                                                                                                 puntitotali=puntiprimogiocatore+puntisecondogiocatore;
}while(puntitotali<20);
system("PAUSE");	
return 0;
}

 void mischia_carte(Carta mazzo[],int n_carte,int qvmix)
    {
         int i,j,k;
         for(k=1;k<=qvmix*n_carte;k++)
         {
                                      i=rand()%n_carte;
                                      j=rand()%n_carte;
                                      scambiare_carte(mazzo,i,j);
                                      }
                                      }
                                     
                                     
                                     
                                     
                                     
    void scambiare_carte(Carta mazzo[],int i,int j)
    {
         
        Carta temp;
         temp=mazzo[i];
         mazzo[i]=mazzo[j];
         mazzo[j]=temp;
         }

Ultima modifica di alex91ander : 08-02-2011 alle 12:27.
alex91ander è offline  
Old 08-02-2011, 13:14   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
cionci è offline  
 Discussione Chiusa


Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
Sembra ormai certo: la prossima Xbox sar...
“Solutions Beyond Displays”: la strategi...
La società europea The Exploratio...
Dalle auto ai robot umanoidi: Faraday Fu...
Vodafone annuncia la dismissione di un s...
Stiga lancia i nuovi robot tagliaerba co...
Bullismo e cyberbullismo, Keenetic lanci...
Con AI Skills Checker Bitdefender mette ...
E-bike giapponese con 1.000 km di autono...
Un eVTOL con cui basta saper andare in b...
Dal mercato cinese al mondo: HONOR firma...
Sovranità digitale: l'UE sperimen...
Accesso alla memoria su Windows 11 solo ...
iPhone 18 Pro Max con batteria da oltre ...
Windows 11, cali di prestazioni sulle GP...
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: 00:50.


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