• Jueves 14 de Noviembre de 2024, 17:16

Autor Tema:  Domino  (Leído 3611 veces)

FOX_Knoppix

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Domino
« en: Miércoles 11 de Mayo de 2005, 08:13 »
0
Por favor si alguien me puede dar algunas ideas para crear un juego de domino.... :comp:

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Domino
« Respuesta #1 en: Jueves 12 de Mayo de 2005, 00:31 »
0
Lo mas importante: Conseguite las reglas del juego.

Sobre las fichas de domino: supongo que serán un arreglo de 2 elementos o un record con dos numeros.
EJ:
Código: Text
  1.  
  2. type
  3.   TFicha=array[1..2] of Byte;
  4.  
  5.  
  6.   TFicha=record
  7.      lado1: Byte;
  8.      lado2: byte;
  9.   end;
  10.  
  11.  
Realmente, ahora desconozco cual de las dos conviene.

Supongo que el Juego de las fichas sera un vector de tipo
Código: Text
  1.  
  2. TJuegoFichas = array[1..MAX] of TFicha.
  3.  
  4.  

Para mezclar la baraja, primero la creas ordenada y luego, la desordenas con algo como lo sig
Código: Text
  1.  
  2. procedure Mezclar;
  3. var
  4.    i: integer;
  5.    rand: integer;
  6.    temp: TFicha;  
  7. begin
  8.    for i:=1 to MAX do
  9.    begin
  10.        rand := Random(MAX)+1;
  11.        temp := JuegoFichas[i];
  12.        JuegoFichas[i] := JuegoFichas[rand];
  13.        JuegosFichas[rand] := temp;
  14.     end;
  15. end;
  16.  
  17.  
Con el codigo anterior, teoricamente estarias intercambiando el lugar de cada ficha con otra ficha.

La mesa de juego, es decir, las fichas colocadas sobre la mesa en linea, supongo que no tiene que ser guardado en un vector, es que no recuerdo bien las reglas pero la baraja si. Asi que lo que tendirias que hacer, es repartir del juego de dominos la cantidad necesaria a cada jugador y verificar cual es el ultimo numero de las fichas colocodas para sabar si la jugada es valida o algo por el estilo.

Lo mas importante, conseguite las reglas. :lightsabre:

Espero tus noticias. :hola:

FOX_Knoppix

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Domino
« Respuesta #2 en: Sábado 14 de Mayo de 2005, 07:59 »
0
gracias por la ayuda...
si las reglas yo las conosco pero el problema es hacer la interfaz grafica que no tengo ni minima idea de como hacerla...
Tengo algunas ideas de como trabajar algunas cosas pero lo que es la parte grafica estoy abajo....
del codigo que me mandaste para Mezclar:
Código: Text
  1.  
  2. procedure Mezclar;
  3. var
  4.    i: integer;
  5.    rand: integer;
  6.    temp: TFicha;  
  7. begin
  8.    for i:=1 to MAX do
  9.    begin
  10.        rand := Random(MAX)+1;
  11.        temp := JuegoFichas[i];
  12.        JuegoFichas[i] := JuegoFichas[rand];
  13.        JuegosFichas[rand] := temp;
  14.     end;
  15. end;
  16.  
  17.  
esta muy bien pero hay que tener en cuenta que Random genera numeros aleatorios y se pueden repetir y lo otro es que esta muy bien para un jugador pero para 4 hay que controlar las fichas repartidas del anterior jugador.....
bueno espero que me puedas dar algo de inf para haber si avanzo en algo ok...
espero tu ayuda.....

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Domino
« Respuesta #3 en: Sábado 14 de Mayo de 2005, 15:35 »
0
Citar
Random genera numeros aleatorios y se pueden repetir
Me falto la instruccion Randomize. Igualmente, aunque se repita el numero recuerda que estas intercambiando desde 1 hasta la maxima cantidad. O sea, por ejemplo: Intercambio el 5 con el 1 (5,x,x,x,1) y luego cuando quiero intercambiar la 6 me aparece 1, de esa manera quede 1,x,x,x,6,5  y sigue mezclado. Para aumentar la eficacia, podes ejecutar el codigo 2 veces.
Muy importatne es que no tienes que sacar todas las fichas al azar, sino que, creas un vector con todas las fichas ordenadas y las mezclas. Cuando entregaste 5 fichas por ejemplo, ejecutaras el codigo de mezcla con for i:=1 to MAX - 5, de manera que no mezclara esas fichas.
REspecto a las graficas, deberias buscar info en la ayuda de delphi  acerca de TCanvas que es la parte grafica de cualquier componente, Ya sea TForm o TImage. Usando ese propiedad, puedes pegar bitmaps (TBitMap) poner Pixels, lineas, etc.....

Esos son los metodos de TCanvas.
Citar
                        Draw
     DrawPoint
     DrawPoints
     Ellipse
     FillRect
     GetClipRegion
     LineTo
     MoveTo
     Pie
     PolyBezier
     PolyBezierTo
     Polygon
     Polyline
     Refresh
     ReleaseHandle
     ResetClipRegion
     RoundRect
     SetClipRect
     Start
     StretchDraw
     

FOX_Knoppix

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Domino
« Respuesta #4 en: Miércoles 18 de Mayo de 2005, 02:25 »
0
Ok gracias por la ayuda, estoy en busca de la informacion.... no mantenemos en contacto ok.....