Sitio web de resúmenes de películas - E-sports - ¿Hay algún juego PASCAL? Es urgente.

¿Hay algún juego PASCAL? Es urgente.

PROGRAMA SameGame

{$ifdef UseGraphics}

{$ifdef Win32}

{$define Win32Graph}

{$apptype GUI}

{$endif}

{$endif}

Usos

{$ifdef Win32}

Windows,

{$endif}

{$ifdef Win32Graph}

WinCrt,

{$ else}

Crt,

{$endif}

Dos,

{$IFDEF UseGraphics}

Gráfico,

{$INFO GRAPH}

{$ENDIF}

GameUnit

CONST

{ $IFDEF UseGraphics}

GrFieldX = 10; {X arriba a la izquierda del campo de juego}

GrFieldY = 70; {Y arriba a la izquierda del campo de juego}

ScalerX = 22; ScalerX x Scaler y puntos

debe ser aproximadamente un cuadrado}

ScalerY = 20

{$ENDIF}

FieldX = 10; ; {Coordenadas del campo de juego superior izquierdo

en cuadrados (modo de texto)}

FieldY = 3; {Coordenadas del campo de juego superior izquierdo}

PlayFieldXDimension = 20; campo de juego}

PlayFieldYDimension = 15

{$IFDEF UseGraphics}

RowDispl = 15

MenuX = 480; >

MenuY = 120;

grNewGameLine = 'NUEVO JUEGO';

grHelpLine = 'AYUDA';

grEndGame = 'FIN DEL JUEGO'; /p>

{$ENDIF}

{Colores usados,PlayField,PlayFieldYDimension*(PlayFieldXDimension-X-1)); p>

INC(J);

{$ENDIF} p>

FIN;

FIN

SI J<>0 ENTONCES;

FillChar(PlayField,J*PlayFieldYDimension,#3

INC(Puntuación,CubesToScore)

Mostrar puntuación

END; ;

END;

PROCEDIMIENTO BuildScreen;

{Algunos procedimientos que construyen la pantalla}

var s : String; >

INICIAR

IN

{$IFDEF UseGraphics}

setbkcolor(negro

setviewport(0,0,getmaxx,getmaxy,clipoff); p>clearviewport;

{$ELSE}

ClrScr

{$ENDIF}

Puntuación:=0; >

Mostrar puntuación

Mostrar botones

Mostrar puntuación alta

Mostrar ratón

{$IFDEF UseGraphics}

SetTextStyle(0,Horizdir,2);

OuttextXY(10,10,'SameGame v0.03, (C) de Marco v/d Voort.

SetTextStyle(0,Horizdir,1);

OuttextXY(50,40,'Una demostración de las unidades FPC RTL y API Crt,(MS)Mouse y Graph'); {$ELSE}

GotoXY(1,1);

TextColor(Amarillo)

Escribir('SameGame v0.02'); >

TextColor(Blanco);

Write(' Una demostración de '

TextColor(Yellow); p>TextColor(White); Write(' Unidad API o MsMouse. Por Marco van de Voort'

SetDefaultColor

{$ENDIF}

; SI LastScore<>0 ENTONCES

COMENZAR

{$Ifdef UseGraphics}

SetTextStyle(0,Horizdir,1

Str); (LastScore,S);

OuttextXY(50,40,'La puntuación del último juego fue :'+S

{$else}

GotoXY(10,20);

Write('El puntaje en el último juego fue :',LastScore

{$endif}

END); ;

DisplayPlayField(PlayField);

MarkField:=PlayField

FIN

PROCEDIMIENTO DoMainLoopMouse; >{El bucle principal del juego. Todo el juego se ejecuta en este procedimiento, el resto es

inicialización/finalización (como cargar y guardar puntuaciones altas, etc.)}

VAR X,Y,

MX,MY,MState,Dummy: LONGINT

EndOfGame:

LONGINT;

S : Cadena

COMENZAR

ALEatorizar

REPETIR

FillPlayField

BuildScreen;

EndOfGame:=0;

REPETIR

GetMouseState(MX,MY,MState); $IFDEF UseGraphics}

X:=2*((MX-GrFieldX) DIV ScalerX) +FieldX

Y:=((MY-GrFieldY) DIV ScalerY) +FieldY- 1;

{$ELSE}

X:=MX SHR 3

Y:=MI SHR 3; ENDIF}

IF PlayFieldPiecesLeft=0 ENTONCES

COMENZAR

INC(Score,1000

EndOfGame:=1; p>

COMENZAR

INC(Puntuación,1000);

EndOfGame:=1

p>

FIN

ELSE;

COMENZAR

{$IFDEF UseGraphics}

IF (MX>=MenuX) AND ( MX<(MenuX+16*Length(GrNewGameLine))) ENTONCES

COMENZAR {X en el área en la que se puede hacer clic}

SI (MY>=MenuY) Y (MY<(MenuY+RowDispl *3+2)) ENTONCES

BEGIN

X:=65; {X no importa siempre que sea 60..69}

Y:=((MY-MenuY) DIV RowDispl)+4 ;

FIN;

FIN

{$ENDIF}

SI (X>=60) Y (X<=69 ) ENTONCES

COMENZAR

SI (MEstado Y Botón L) <>0 ENTONCES {Si se presiona el botón izquierdo,}

COMENZAR

SI Y =4 ENTONCES

EndOfGame:=1

SI Y=6 ENTONCES

EndOfGame: =2

SI (EndOfGame> 0) Y (PlayFieldPiecesLeft=0) ENTONCES

INC(Score,1000

SI Y=5 ENTONCES

COMENZAR

MostrarAyuda;

BuildScreen

FIN

{$IFDEF Linux}

SI Y=7 ENTONCES

COMENZAR

escribir(#27+'(K');

BuildScreen;

FINALIZAR;

{$ENDIF}

FIN;

FIN;

SI (X>=(CampoX-2)) Y (Y>=(CampoY-2)) ENTONCES

COMENZAR

DEC(X,CampoX-1

DE);

C(Y,FieldY-1);

X:=X SHR 1;

IF (X

COMENZAR

SI MarkField[X,Y]<>4 ENTONCES

COMENZAR

MarkField:=PlayField

MarkAfield(X, Y);

DisplayPlayField(MarkField);

{$ifdef UseGraphics}

SetFillStyle(SolidFill,negro); 420,440,540,460);

SetTextStyle(0,Horizdir,1);

Str(CubesToScore,S);

OuttextXY(420,440,'Marcado: '+S);

{$else}

TextColor(Blanco);

GotoXY(20,22); :20);

GotoXY(20,22);

Escribir('Marcado :',CubesToScore

{$endif}

);

END;

IF (MarkField[X,Y]=4) AND ((MState AND LButton) <>0) THEN

{Si se presiona el botón izquierdo,} p>

COMENZAR

REPETIR {esperar hasta que se suelte

El momento de presionar cuenta}

GetMouseState(X,Y,Dummy) ;

HASTA (Dummy AND LButton)=0;

Colapsar

MarkField:=PlayField

DisplayPlayField(MarkField);

p>

FIN

FIN

FIN

SI se presiona la tecla ENTONCES

COMENZAR

p>

X: =GetKey;

SI (CHR(X) IN ['X','x','Q','q']) O (X=27) ENTONCES

Fin del Juego :=2;

FIN;

FIN;

HASTA el Fin del Juego>0;

X:= SlipInScore(Puntuación);

SI X<>0 ENTONCES

COMENZAR

HideMouse

ShowHighScore;

{$IFDEF UseGraphics}

Str(Puntuación:5,S

OutTextXY(HighX+150,HighY+LineDistY*( 10-X),S) ;

GrInputStr(S,AltoX,AltoY+LineDistY*(10-X),16,12,10,FALSO,AlfaB

eta);

{$ELSE}

InputStr(S,AltoX,AltoY+12-X,10,FALSE,AlfaBeta); }

Puntuación más alta[X-1].Nombre:=S;

MostrarMouse

FIN

Última puntuación:=Puntuación;

HASTA EndOFGame=2

END;

CONST FileName='samegame.scr'; /p>

{$IFDEF UseGraphics}

gd,gm : INTEGER

Amigo : Tipo de paleta

{$ENDIF}

COMENZAR

{$IFDEF UseGraphics}

{$ifdef Win32}

ShowWindow(GetActiveWindow,0

{); $endif}

gm:=vgahi

gd:=vga

InitGraph(gd,gm,''); >si GraphResult <> grOk entonces

comenzar

Writeln('Controlador de gráfico ',gd,' modo gráfico ',gm,' no compatible'); >Detener(1);

fin;

SetFillStyle(SolidFill,1);

GetDefaultPalette(Pal); Pal);

{$ENDIF}

SI NO MousePresent ENTONCES

COMENZAR

Writeln('No se encontró ningún mouse. Hay un mouse). ¡requerido!');

HALT;

END;

PARA I:=0 A 9 HACER

HighScore[I]. Puntuación:=I*1500;

LoadHighScore(Nombre de archivo);

InitMouse;

{$ifndef Win32Graph}

CursorOff; /p>

{$endif}

{$IFDEF UseGraphics}

HighX:=450; HighY:=220; >

{$else}

HighX:=52; HighY:=10; {la posición de la tabla de puntuación más alta}

{$endif}

DoMainLoopMouse;

HideMouse;

DoneMouse;

{$ifndef Win32Graph}

CursorOn; $endif}

Guardar puntuación alta

{$IFDEF UseGraphics}

CloseGraph;

>{$ENDIF}

{$ifndef Win32Graph}

ClrScr

Writeln;

Writeln('Últimos juegos'#39 ' la puntuación fue: ',Puntuación);

{$endif}

END. ,v $

Revisión 1.3 2002/02/22 21:41:22 carl

* corrección de error de verificación de rango

Revisión 1.2 2001/11/11 21 :09:50 marco

* Gameunit, Fpctris y mismo juego arreglados para win32 GUI

Revisión 1.1 2001/05/03 21:39:33 peter

* movido al módulo propio

Revisión 1.2 2000/07/13 11:33:09 michael

+ registros eliminados

}