Pascal/Turbo Pascal - MAXIMA AYUDA PORFAVOR

   
Vista:

MAXIMA AYUDA PORFAVOR

Publicado por eduardo (2 intervenciones) el 16/06/2014 17:43:44
desde ya perdon si no pueden no es necesario pero necesito muchisima ayuda al hacer este trabajo practico:.
El juego se desarrolla en un tablero de MAXFIL x MAXCOL, que se encuentra llenoeree de fichas de colores dispuestas aleatoriamente. El objetivo del juego es conseguir la mayor cantidad de puntos siguiendo las siguientes condiciones y reglas:
Existen fichas de 4 colores: Rojo, Verde, Azul y Blanco
Las fichas sólo pueden moverse de una posición y en dirección vertical u horizontal.
Cuando una ficha se mueve a una nueva posición se produce un intercambio con la ficha que actualmente está en esa posición.
La única manera de sumar puntos en el juego es poniendo al menos 3 fichas del mismo color, de manera consecutiva. Sólo son válidas las fichas consecutivas de manera vertical u horizontal.
La cantidad de puntos que se suma cuando se consigue colocar al menos 3 fichas de manera consecutiva horizontal o verticalmente, depende de su color. Esto es, cantidad de fichas del mismo color multiplicado por:
1 punto, si son fichas Rojas
2 puntos, si son fichas Verdes
3 puntos, si son fichas Azules
4 puntos, si son fichas Blancas.
Cuando al mover una ficha, se consigue hacer coincidir al menos 3 fichas, éstas se desintegran y el resto de las fichas que están sobre éstas caen llenando el espacio vacío que dejan. La misma cantidad de fichas que se desintegran ingresan a la matriz desde arriba. Los colores de estas nuevas fichas son generados aleatoriamente.
Todos estos movimientos indicados en el punto anterior pueden generar nuevas coincidencias que deben ser analizadas hasta que no se encuentre en toda la matriz ninguna secuencia de al menos tres fichas de igual color.

Otras consideraciones
Existe un ranking de los mejores 10 puntajes obtenidos.
El menú de la aplicación tiene 2 niveles:
Nivel 1:
Juego Nuevo: Esta opción pide al usuario que ingrese un Nick que lo represente en el ranking y luego presenta en pantalla el tablero lleno con nuevas fichas generadas aleatoriamente. Una vez hecho esto, el juego se desarrolla en el segundo nivel de menú.
Ranking: Esta opción muestra el ranking de los mejores 10 puntajes ordenado descendentemente. Muestra en cada línea: NicK – Puntaje
Salir: Esta opción da por terminada la ejecución del programa
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

MAXIMA AYUDA PORFAVOR

Publicado por Pedro (1 intervención) el 23/06/2014 23:25:27
Sos un tramposoo... tenes que hacerlo vos al codigo del color crush como vas a andar piediendo a los demas ATTE Ayudante asignado...
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

MAXIMA AYUDA PORFAVOR

Publicado por ramon (39 intervenciones) el 28/06/2014 01:09:59
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
{A ver si esto te ayuda}
 
program aajuegoc;
 uses
    crt, dos;
  const
     MAXFIL = 20;
     MAXCOL = 20;
     Rojo = 4;
     Verde = 2;
     Azul = 1;
     Blanco = 15;
 
   type
     tablero = array[1..maxcol,1..maxfil] of integer;
     fichas = array[1..(maxcol * maxfil)] of integer;
 
   var
     table : tablero;
     fich  : fichas;
      modo : Integer;
      regs : registers;
      raton : boolean;
 
   function raton_presente : boolean;
  begin
      regs.ah := $00;
      regs.al := $00;
      intr($33,regs);
      if regs.ax <> 0 then
      raton_presente := true
    else
      raton_presente := false;
  end;
 
  procedure muestra_raton;
  begin
      raton := false;
      if raton_presente then
      begin
          regs.ah := $00;
          regs.al := $01;
          intr($33,regs);
          raton := true;
      end;
  end;
 
  procedure oculta_raton;
  begin
      if raton = true then
      begin
         regs.ah := $00;
         regs.al := $02;
         intr($33,regs);
         raton := false;
       end;
  end;
 
  function posx_raton : word;
  begin
      posx_raton := 0;
      regs.ah := $00;
      regs.al := $03;
      intr($33,regs);
      posx_raton := regs.cx div 8
  end;
 
  function posy_raton : word;
  begin
      posy_raton := 0;
      regs.ah := $00;
      regs.al := $03;
      intr($33,regs);
      posy_raton := regs.dx div 8;
  end;
 
  function boton_raton : word;
  begin
      boton_raton := 0;
      regs.ah := $00;
      regs.al := $03;
      intr($33,regs);
      boton_raton := regs.bx
  end;
 
  procedure pon_posicion_raton(xp, yp : word);
  begin
      regs.ah := $00;
      regs.al := $04;
      regs.cx := xp * 8;
      regs.dx := yp * 8;
      intr($33,regs);
  end;
 
 
   procedure genera_fichas(var ff : fichas);
   var
     color, g1, g2 : integer;
   begin
       randomize;
     g1 := (maxcol * maxfil);
     g2 := 1;
   repeat
    color := random(19) + 1;
     case color of
   4,8,12,16,20 : fich[g2] := rojo;
   2,6,10,14,18 : fich[g2] := azul;
   1,5,9,13,17 : fich[g2] := verde;
   3,7,11,15,19 : fich[g2] := blanco;
  end;
    g2 := g2 + 1;
 until g2 > g1;
 end;
 
 procedure dibuja_tablero;
 var
   p, t1, t2 : integer;
   begin
      genera_fichas(fich);
      p := 1;
      writeln;
      writeln;
      for t1 := 1 to maxcol do
      begin
         write('    ');
         for t2 := 1 to maxfil do
         begin
           if fich[p] > 0 then
           begin
           textcolor(fich[p]);
           write('ÛÛ');
           end;
           p := p + 1;
         end;
         writeln;
       end;
   end;
 
  procedure tomacolor;
  var
    x, y : word;
  begin
     oculta_raton;
     x := (maxfil * 2) + 5 ;
     y := (maxcol div 2) + 3;
     pon_posicion_raton(x,y);
     muestra_raton;
   repeat
     if (x <> posx_raton) or (y <> posy_raton) then
     begin
       x := posx_raton;
       y := posy_raton;
     end;
   until boton_raton = 1;
   oculta_raton;
  end;
 
 
    begin
       modo := lastmode;
       textmode(c80);
       muestra_raton;
       if raton then
       begin
       clrscr;
       dibuja_tablero;
       tomacolor;
       end
    else
       begin
       writeln('  Falta El Mouse Pulse Una Tecla ');
       readkey;
       end;
       textmode(modo);
    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