Pascal/Turbo Pascal - Ayuda con este ejercicio de dados! pascal

 
Vista:

Ayuda con este ejercicio de dados! pascal

Publicado por Juann (1 intervención) el 02/08/2017 23:41:09
Hola, quisiera saber si me pueden ayudar con este ejercicio, ya que no consigo hacerlo y necesito terminarlo:

El primer jugador tira los tres dados. Aparta luego el de mayor puntaje y vuelve a arrojar los otros dos. Nuevamente separa el número más alto y tira el dado restante, solo se puede jugar un dado por vez.
El jugador hace la suma de los tres dados y anota el total en la planilla,
Tiros premiados:
Sí en un tiro de tres dados se obtiene un triplete, éste se premia con 30 puntos. Si se saca un par en otro intento con dos dados, se premiará con 15 puntos.
En cada caso el jugador procede en la forma habitual. Por ejemplo, si un jugador saca tres 4 en su primer tiro, se anota 30 puntos. Luego tira dos dados. Si ahora saca dos 3, se anota 15 puntos más, lo cual da un total de 45 puntos. Luego saca un 6 en su última oportunidad. El puntaje final para esa vuelta será de 58 puntos, es decir 30 + 15 + 4 + 3 + 6, donde los últimos puntos se corresponden a los valores sacados en los tres tiros.
El jugador que alcance primero los 100 puntos gana.

Muchas gracias al que responda-.
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

Ayuda con este ejercicio de dados! pascal

Publicado por ramon (2158 intervenciones) el 10/08/2017 11:39:54
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
{A  ver si esto ayuda }
 
 program dados;
  uses
     crt;
   const
      triple = 30;
      par = 15;
      max = 100;
 
   type
      jugador = record
          nombre : string[12];
          tirada : integer;
          puntos : integer;
        end;
 
 
   var
     t1, t2, t3, t4, num, dado1,  dado2, dado3 : integer;
     puntaje, puntaje1, puntaje2, puntaje3, puntaje4 : integer;
     jugadores : array[1..4] of jugador;
     tec : char;
 
     function premio1(v1, v2, v3 : integer) : integer;
     begin
       premio1 := 0;
       if (v1 = v2) and (v1 = v3) then
       premio1 := triple;
     end;
 
     function premio2(v1, v2 : integer) : integer;
     begin
       premio2 := 0;
       if v1 = v2 then
       premio2 := par;
     end;
 
     procedure tiradanu1(var d1, d2, d3 : integer);
     begin
        d1 := random(34) + 1;
        d2 := random(34) + 1;
        d3 := random(34) + 1;
    case d1 of
  1..5 : d1 := 1;
  6..11 : d1 := 2;
  12..17 : d1 := 3;
  18..23 : d1 := 4;
  24..29 : d1 := 5;
  30..35 : d1 := 6;
  end;
  case d2 of
  1..5 : d2 := 1;
  6..11 : d2 := 2;
  12..17 : d2 := 3;
  18..23 : d2 := 4;
  24..29 : d2 := 5;
  30..35 : d2 := 6;
  end;
  case d3 of
  1..5 : d3 := 1;
  6..11 : d3 := 2;
  12..17 : d3 := 3;
  18..23 : d3 := 4;
  24..29 : d3 := 5;
  30..35 : d3 := 6;
  end;
  if (d1 > d2) and (d1 > d3)  then
  puntaje := d1;
  if (d2 > d1) and (d2 > d3)  then
  puntaje := d2;
  if (d3 > d1) and (d3 > d2) then
  puntaje := d3;
  puntaje := puntaje + premio1(d1,d2,d3);
  end;
 
  procedure tiradanu2(var d1, d2 : integer);
     begin
        d1 := random(34) + 1;
        d2 := random(34) + 1;
    case d1 of
  1..5 : d1 := 1;
  6..11 : d1 := 2;
  12..17 : d1 := 3;
  18..23 : d1 := 4;
  24..29 : d1 := 5;
  30..35 : d1 := 6;
  end;
  case d2 of
  1..5 : d2 := 1;
  6..11 : d2 := 2;
  12..17 : d2 := 3;
  18..23 : d2 := 4;
  24..29 : d2 := 5;
  30..35 : d2 := 6;
  end;
  if d1 > d2 then
  puntaje := puntaje + d1
  else
   puntaje := puntaje + d2;
   puntaje := puntaje + premio2(d1,d2);
 end;
 
 procedure tiradanu3(var d1 : integer);
     begin
        d1 := random(34) + 1;
    case d1 of
  1..5 : d1 := 1;
  6..11 : d1 := 2;
  12..17 : d1 := 3;
  18..23 : d1 := 4;
  24..29 : d1 := 5;
  30..35 : d1 := 6;
  end;
  puntaje := puntaje + d1
  end;
 
  procedure tirada_jugador(n : integer);
  begin
      clrscr;
      writeln('  Primera Tirada');
      tiradanu1(dado1,  dado2, dado3);
      writeln('  ',dado1,'     ',dado2,'     ',dado3);
      writeln;
      writeln('  Segunda Tirada');
      tiradanu2(dado1,  dado2);
      writeln('  ',dado1,'     ',dado2);
      writeln;
      writeln('  Tercera Tirada');
      tiradanu3(dado1);
      writeln('  ',dado1);
      writeln;
      writeln('  Jugador N. : ',n);
      case n of
   1 : begin
        puntaje1 := puntaje1 + puntaje;
        writeln('  Los Puntos Son = ',puntaje1);
        jugadores[1].tirada := t1;
        jugadores[1].puntos := puntaje1;
        t1 := t1 + 1;
        end;
   2 : begin
         puntaje2 := puntaje2 + puntaje;
         writeln('  Los Puntos Son = ',puntaje2);
         jugadores[2].tirada := t2;
        jugadores[2].puntos := puntaje2;
        t2 := t2 + 1;
         end;
   3 : begin
        puntaje3 := puntaje3 + puntaje;
        writeln('  Los Puntos Son = ',puntaje3);
        jugadores[3].tirada := t3;
        jugadores[3].puntos := puntaje3;
        t3 := t3 + 1;
        end;
   4 : begin
        puntaje4 := puntaje4 + puntaje;
        writeln('  Los Puntos Son = ',puntaje4);
        jugadores[4].tirada := t4;
        jugadores[4].puntos := puntaje4;
        t4 := t4 + 1;
       end;
     end;
      writeln;
      writeln('  Pulse Una Tecla');
      readkey;
      clrscr;
      end;
 
   procedure presenta_jugadas;
   var
     i : integer;
   begin
      writeln('  El Estado De Las Jugadas Es');
      writeln;
      for i := 1 to 4 do
      begin
      write(jugadores[i].nombre,'  ',jugadores[i].tirada,
      '  ',jugadores[i].puntos);
      writeln;
      end;
   end;
 
 
     begin
         randomize;
         clrscr;
         t1 := 1;
         t2 := 1;
         t3 := 1;
         t4 := 1;
         writeln('  Entre Nombres De Los 4 Jugadores');
         writeln;
         write('  Jugador N. 1 = ');
         readln(jugadores[1].nombre);
         write('  Jugador N. 2 = ');
         readln(jugadores[2].nombre);
         write('  Jugador N. 3 = ');
         readln(jugadores[3].nombre);
         write('  Jugador N. 4 = ');
         readln(jugadores[4].nombre);
         clrscr;
         num := 1;
       repeat
         writeln('   Juega El Jugador N. ',num);
         writeln;
         writeln('  Pulse Una Tecla [ESC]=Final');
         tec := readkey;
         if tec <> #27 then
         begin
         clrscr;
         tirada_jugador(num);
     case num of
  1 : puntaje := puntaje1;
  2 : puntaje := puntaje2;
  3 : puntaje := puntaje3;
  4 : puntaje := puntaje4;
    end;
         num := num + 1;
         if (puntaje < max) and (num > 4) then
         num := 1;
         end;
       until (puntaje >= max) or (tec = #27);
       clrscr;
       presenta_jugadas;
       writeln;
       writeln('  Pulse Una Tecla');
       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
1
Comentar

Ayuda con este ejercicio de dados! pascal

Publicado por Juann (2 intervenciones) el 11/08/2017 00:11:28
muchas gracias 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