Pascal/Turbo Pascal - como hacer un juego de poker

 
Vista:
sin imagen de perfil

como hacer un juego de poker

Publicado por daicy (13 intervenciones) el 16/07/2014 20:41:26
hola compañero Ramon, me gustaria tu ayuda.
Si yo quisiera realizar un juego de póker, ¿cómo sería la forma de plantear la solución? ¿cómo almaceno las combinaciones de cartas claves de manera que las pueda comparar con las de cada jugador y así obtener al ganador?. ¿Qué pasa si lo quiero hacer en red?, ¿qué necesitaría para hacerlo en red?

Yo pensé implementar una pila solo en el caso del mazo de cartas, porque si nos ponemos a ver la relación es perfecta, porque la carta que se reparte es la que está en el tope, al igual que los elementos de la pila; si quitamos una carta, ésta desaparece del mazo, si quitamos un elemento de la pila igualmente. Lo que no se es como "barajar" los elementos de la pila, aunque una pila es una lista enlazada, ¿o no?, y si se puede aplicar el algoritmo de Fisher-Yates en una lista, también se podría hacer en una pila, ¿no?

Para cada jugador debria implementarlos como lista enlazadas simples?

ojala puedas ayudarme con codigo, te lo agradeceria es urgente para un trabajo que debo entregar en 15dias.gracias por tu ayuda ramon.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

como hacer un juego de poker

Publicado por ramon (2158 intervenciones) el 21/07/2014 21:31:06
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
{A ver si esto te ayuda}
 
 program poker;
   uses
      crt;
   const
      jugadores = 10;
      cartas = 13;
 
 
  type
     string3 = string[3];
     lascartas = array[1..cartas] of integer;
     jugador = record
               nombre : string[40];
               carta2 : array[1..2] of string3;
                jugad : array[1..5] of string3;
             end;
 
  var
    partida : array[1..10] of jugador;
    moverc : array[1..4] of lascartas;
    restova, t, i, cont : integer;
    varaja : array[1..(cartas * 4)] of string3;
    centrales : array[1..5] of string3;
 
 
  procedure jenera_pantalla;
  begin
     gotoxy(30,4);write('*** POKER ***');
     gotoxy(17,12);write('[7]');
     gotoxy(26,9);write('[8]');
     gotoxy(35,9);write('[9]');
     gotoxy(44,9);write('[10]');
     gotoxy(54,12);write('[1]');
     gotoxy(17,18);write('[6]');
     gotoxy(26,21);write('[5]');
     gotoxy(35,21);write('[4]');
     gotoxy(44,21);write('[3]');
     gotoxy(54,18);write('[2]');
     gotoxy(23,15);write('[  ]  [  ]  [  ]  [  ]  [  ]');
  end;
 
 function existe(g, co, nu : integer) : boolean;
 var
    dr : integer;
  begin
     existe := false;
   for dr := 1 to co - 1 do
   begin
   if moverc[g,dr] = nu then
   begin
   existe := true;
   break;
   end;
  end;
 end;
 
 procedure varajear;
 var
   m, ni, cth, balor, contdor : integer;
   esta : boolean;
   mv : string[3];
 begin
    randomize;
    contdor := 1;
    esta := false;
    cth := 0;
    ni := 1;
  repeat
      balor := random((cartas)) + 1;
      esta := existe(ni,contdor, balor);
  if esta = false then
  begin
     moverc[ni,contdor] := balor;
     contdor := contdor + 1;
  end;
  if contdor > cartas  then
  begin
    ni := ni + 1;
    contdor := 1;
  end;
  cth := cth + 1;
  until (ni > 4) or (cth > ((cartas * 4) * 5));
  contdor := 1;
  for cth := 1 to 4 do
  begin
    for ni := 1 to cartas  do
    begin
   case cth of
 1 : begin
        varaja[contdor][1] := chr(5);
        if moverc[cth,ni] in[2..10] then
        begin
        if moverc[cth,ni] in[2..9] then
        varaja[contdor][2] := chr(moverc[cth,ni] + 48)
     else
        begin
           varaja[contdor][2] := chr(((moverc[cth,ni] div 10) mod 10) + 48);
           varaja[contdor][3] := chr((moverc[cth,ni] mod 10) + 48)
        end;
      end;
        if moverc[cth,ni] = 1 then
        varaja[contdor][2] := 'A';
        if moverc[cth,ni] = 11 then
        varaja[contdor][2] := 'J';
        if moverc[cth,ni] = 12 then
        varaja[contdor][2] := 'Q';
        if moverc[cth,ni] = 13 then
        varaja[contdor][2] := 'K';
     end;
 2 : begin
        varaja[contdor][1] := chr(3);
        if moverc[cth,ni] in[2..10] then
        begin
        if moverc[cth,ni] in[2..9] then
        varaja[contdor][2] := chr(moverc[cth,ni] + 48)
     else
        begin
           varaja[contdor][2] := chr(((moverc[cth,ni] div 10) mod 10) + 48);
           varaja[contdor][3] := chr((moverc[cth,ni] mod 10) + 48)
        end;
      end;
        if moverc[cth,ni] = 1 then
        varaja[contdor][2] := 'A';
        if moverc[cth,ni] = 11 then
        varaja[contdor][2] := 'J';
        if moverc[cth,ni] = 12 then
        varaja[contdor][2] := 'Q';
        if moverc[cth,ni] = 13 then
        varaja[contdor][2] := 'K';
     end;
 3 : begin
        varaja[contdor][1] := chr(6);
        if moverc[cth,ni] in[2..10] then
        begin
        if moverc[cth,ni] in[2..9] then
        varaja[contdor][2] := chr(moverc[cth,ni] + 48)
     else
        begin
           varaja[contdor][2] := chr(((moverc[cth,ni] div 10) mod 10) + 48);
           varaja[contdor][3] := chr((moverc[cth,ni] mod 10) + 48)
        end;
      end;
        if moverc[cth,ni] = 1 then
        varaja[contdor][2] := 'A';
        if moverc[cth,ni] = 11 then
        varaja[contdor][2] := 'J';
        if moverc[cth,ni] = 12 then
        varaja[contdor][2] := 'Q';
        if moverc[cth,ni] = 13 then
        varaja[contdor][2] := 'K';
     end;
 4 : begin
        varaja[contdor][1] := chr(4);
        if moverc[cth,ni] in[2..10] then
        begin
        if moverc[cth,ni] in[2..9] then
        varaja[contdor][2] := chr(moverc[cth,ni] + 48)
     else
        begin
           varaja[contdor][2] := chr(((moverc[cth,ni] div 10) mod 10) + 48);
           varaja[contdor][3] := chr((moverc[cth,ni] mod 10) + 48)
        end;
      end;
        if moverc[cth,ni] = 1 then
        varaja[contdor][2] := 'A';
        if moverc[cth,ni] = 11 then
        varaja[contdor][2] := 'J';
        if moverc[cth,ni] = 12 then
        varaja[contdor][2] := 'Q';
        if moverc[cth,ni] = 13 then
        varaja[contdor][2] := 'K';
     end;
    end;
      varaja[contdor][0] := chr(3);
      contdor := contdor + 1;
   end;
  end;
    for ni := (cartas * 4) downto 2 do
    begin
      m := random(ni) + 1;
      mv := varaja[m];
      varaja[m] := varaja[ni];
      varaja[ni] := mv;
    end;
 end;
 
 procedure asignacioncartas;
 var
   num, cc : integer;
 begin
    num := (cartas * 4);
    cc := 1;
  repeat
     partida[cc].carta2[1] := varaja[num];
     num := num - 1;
     partida[cc].carta2[2] := varaja[num];
     num := num - 1;
     cc := cc + 1;
  until cc > jugadores;
  for cc := 1 to 3 do
  begin
  centrales[cc] := varaja[num];
  num := num - 1;
  end;
  restova := num + 1;
 end;
 
 
 
  begin
     clrscr;
     jenera_pantalla;
     varajear;
     asignacioncartas;
     for t := 1 to jugadores do
     begin
      case t of
  1 : begin gotoxy(53,11);write(partida[t].carta2[1],' ',partida[t].carta2[2]); end;
  2 : begin gotoxy(53,17);write(partida[t].carta2[1],' ',partida[t].carta2[2]); end;
  3 : begin gotoxy(43,22);write(partida[t].carta2[1],' ',partida[t].carta2[2]); end;
  4 : begin gotoxy(34,22);write(partida[t].carta2[1],' ',partida[t].carta2[2]); end;
  5 : begin gotoxy(25,22);write(partida[t].carta2[1],' ',partida[t].carta2[2]); end;
  6 : begin gotoxy(16,17);write(partida[t].carta2[1],' ',partida[t].carta2[2]); end;
  7 : begin gotoxy(15,11);write(partida[t].carta2[1],' ',partida[t].carta2[2]); end;
  8 : begin gotoxy(25,8);write(partida[t].carta2[1],' ',partida[t].carta2[2]); end;
  9 : begin gotoxy(34,8);write(partida[t].carta2[1],' ',partida[t].carta2[2]); end;
 10 : begin gotoxy(43,8);write(partida[t].carta2[1],' ',partida[t].carta2[2]); end;
    end;
       gotoxy(21,15);write('[',centrales[1],' ]   [',centrales[2],
       ']   [',centrales[3],']  [   ]  [   ]');
     end;
 
     readkey;
  end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

como hacer un juego de poker

Publicado por daicy (13 intervenciones) el 22/07/2014 09:35:47
Hola ramon muy agradecido por tu ayuda, sin embargo queria pedirte el favor si puedes resolverlo a traves de pilas y listas enlazadas , es que es la forma en que me piden resolverlo. ademas queria preguntarte en tu solucion a que modalidad de poquer esta enfocada tu solucion? gracias por todo ramon
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar