Programma su 54 carte

Martina Delfi
Dovrei scrivere un programma in C che mi risolve questo problema.
Ho 54 carte francesi, 13 per ogni seme più 2 jolly. Devo sistemare le carte in modo tale che si verifichi questa situazione. Prendo la prima carta del mazzo e la posiziono a fine del mazzo, la seconda la giro e la metto da parte, la terza la rimetto sotto, e la quarta di nuovo da parte. La sequenza delle carte messe da parte deve essere questa: prima le carte di cuori, dall'asso alla kappa, poi quelle di quadri, fiori, e picche ed infine i 2 jolly. Mi date una mano ?

Risposte
Umby2
Inizializzerei le carte con codice che vanno da 1 a 54.
Poi simulo la situazione del gioco, e memorizzo in un vettore le 54 carte che vengono estratte.

Il C lo conosco pochissimo, magari ti scrivo qualcosa in Cobol, poi lo riscrivi te in C.

Umby2
01     INIZIO SECTION.
02         perform varying ind-dx from 1 by 1 until ind-dx > 54
03           move ind-dx to tcarta (ind-dx)
04         end-perform
05         move 54 to ind-dx
06         move  0 to fase
07         move  0 to ncarte
08         perform varying ind-sx from 1 by 1 until ncarte = 54
09           if fase = 0   add 1 to ind-dx
10                         move tcarta (ind-sx) to tcarta (ind-dx)
11                         move 1 to fase
12              else       display message box tcarta(ind-sx)
14                         add 1 to ncarte
15                         move 0 to fase
16           end-if
17         end-perform.
18     EX-INIZIO.  EXIT SECTION.


Le prime 3 istruzioni (02 03 04) posizionano i primi 54 elementi della tabella con i valori da 1 a 54.
La variabile fase mi serve per alternare nel ciclo le due operazioni:
(0=Metti in fondo al mazzo - Istruzione 10 dopo aver incrementato l'indice destro Istr. 9)
(1=Prendi la carta - La visualizzo Istr.12)

La variabile ncarte mi indica quante carte ho scelto dal mazzo.
Il ciclo termina quando tutte le 54 carte saranno state estratte Istr. 8
Ind-dx è l'indice di destra parte da 54 ed arrivera' a 108
Ind-sx è quello di sinistra che pian piano raggiungera' ind-dx

Umby2
002 004 006 008 010 012 014 016 018 020
022 024 026 028 030 032 034 036 038 040
042 044 046 048 050 052 054 003 007 011
015 019 023 027 031 035 039 043 047 051
001 009 017 025 033 041 049 005 021 037
053 029 013 045

Questo è il risultato della elab.
L'asso di cuori va in seconda posizione, il 2 in quarta .... etc etc. I due jolly in 13^ e 45^

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.