CURSO DE PROGRAMACION DE VIDEO JUEGOS: TEXTO #2.
---------------------------------------------------
Ok, ya estoy de vuelta. Espero que se hayan podido conseguir el
Turbo Pascal.
Ahora vamos a ver lo que son los procedimientos y las funciones
y su diferencia con las palabras reservadas.
1.- Los procedimientos.
Los procedimientos son un peque¤o subprograma que realiza una
tarea espec¡fica. Por ejemplo, la instrucci¢n WRITE, que vimos
en el n£mero anterior, nos permit¡a imprimir algo en la pantalla
de nuestro computador, bueno, esta instrucci¢n no es precisamente
una palabra reservada sino m s bien es un procedimiento, o sea,
un peque¤o subprograma que esta guardado por ah¡ en la memoria
del Turbo Pascal y que por medio de otras instrucciones imprime
algo en la pantalla.
Un procedimiento consta siempre de un nombre para poder llamarlo
y de informaci¢n con la cual lo llamamos. Aclaremoslo con un ejemplo,
el procedimiento WRITE tiene un nombre (write) y para llamarlo le
entregamos cierta informaci¢n que es lo que queremos que escriba en
la pantalla, a esta informaci¢n se le llama PARAMETROS del procedi-
miento. En conclusi¢n la forma de un procedimiento es as¡:
nombre( parametros )
Ej: write( texto );
readln( variable );
-- o --
2.- Las funciones.
Las funciones son pr ctimente lo mismo que un procedimiento, s¢lo
que ‚stas devuelven un valor cuando terminan de hacer lo que hacen.
¨ C¢mo que devuelven un valor ?. Veamos un ejemplo:
Supongamos una funci¢n que se llame MULTIP y que la tarea que realiza
es multiplicar 2 n£meros, el valor que dever¡a devolver esta funci¢n
es el resultado.
Una funci¢n tiene la siguiente forma:
nombre( parametros ): tipo de valor que devuelve
Ej: multip( n1, n2 ): real;
-- o --
3.- Veamos un resumen de lo que hemos aprendido en estos 2 primeros capi-
tulos:
* Para hacer un programa primero escribimos su CODIGO FUENTE, luego
lo COMPILAMOS y luego lo ENLAZAMOS para crear el archivo ejecuta-
ble (.EXE).
* Para escribir el c¢digo fuente de un programa se utilizan diversas
palabras que nos entrega el lenguaje de programaci¢n: las PALABRAS
RESERVADAS (var, begin, end, etc...), los PROCEDIMIENTOS (write,
writeln, read, readln, etc...), las FUNCIONES, y las VARIABLES
que las creamos nosotros para guardar cosas (textos y n£meros
b sicamente).
* El c¢digo fuente de los programas se divide en 2 partes:
- La declaraci¢n de las variables (lo que viene despu‚s de
la palabra reservada VAR).
- y el programa principal (lo que est entre las palabras
reservadas BEGIN y END.).
* Los procedimientos son peque¤os subprogramas metidos en alguna
parte que realizan una tarea espec¡fica y que los podemos llamar
desde el programa principal.
* Las funciones son peque¤os subprogramas metidos en alguna parte
que realizan una tarea espec¡fica y devuelven un valor como resul-
tado de lo que hicieron.
* Para llamar a los procedimientos y a las funciones a veces es nece-
sario entregarles cierta informaci¢n llamada PARAMETROS. Por ejemplo,
para llamar a una funci¢n que multiplique dos n£meros y devuelva su
resultado es necesario enviarle como parametros los dos n£meros que
debe multiplicar.
Nota: Es importante el punto numero 3, ya que vamos a ir agregando
cada vez m s partes a nuestro c¢digo fuente.
-- o --
4.- La palabra reservada IF.
Hagamos un peque¤o programa para entender mejor lo que hemos apren-
dido. El programa consiste en un juego para dos jugadores en que
primero uno ingresa un n£mero y luego el otro debe adivinar que
numero es. Es un juego muy simple que nos va a ayudar a aprender
muchas nuevas palabras y procedimientos del Turbo Pascal.
------------------------------------------------------------------------------
USES CRT;
var
n1, n2; integer;
begin
CLRSCR;
write( 'Player 1: Ingrese un n£mero entero: ' );
readln( n1 );
CLRSCR;
write( 'Player 2: ¨Que n£mero ingreso el player 1?: ' );
readln( n2 );
writeln;
IF n1=n2 THEN writeln( 'FELICITACIONES ADIVINASTE' );
end.
------------------------------------------------------------------------------
Bueno, analicemos el programa:
(Las palabras que no conocemos estan con mayusculas)
- la primera linea (USES CRT;) la vamos a dejar para m s adelante,
por ahora conciderenla necesaria para poder usar la linea 5 y la
linea 8 (CLRSCR;)
- la segunda linea (var) es la palabra reservada para indicar que a
partir de esta linea vamos a declarar las variables que vamos a ocu-
par en nuestro programa.
- en la tercera linea (n1, n2: integer;) declaramos 2 variables de
tipo entero que llamamos n1 y n2, donde n1 es para guardar el valor
que ingresa en jugador 1 y n2 es para guardar el valor que ingresa
el jugador 2.
- en la cuarta linea (begin) comenzamos el programa principal.
- en la quinta linea (CLRSCR;) llamamos a un procedimiento llamado
clrscr cuya tarea es borrar lo que hay en la pantalla de nuestro
computador, notemos que este procedimiento no necesita parametros.
Para poder utilizar este procedimiento debemos incluir la primera
linea del programa (USES CRT;) (en unos capitulos m s adelante vamos
a ver por qu‚).
- luego en 2 las lineas el computador espera a que el jugador 1
ingrese un n£mero con el teclado, el cual queda guardado en la
variable n1.
- en la linea siguiente se borra la pantalla para que el jugador 2
no vea el n£mero que ingres¢ el jugador 1. Para ‚sto se llama nueva-
mente al procedimiento clrscr.
- en las siguientes 2 lineas el computador permite que el jugador 2
ingrese un n£mero, el cual guarda en la variable n2.
¨ Est claro hasta aqu¡ ?. Ahora viene lo m s importante del programa.
- En la siguiente linea se utiliza una nueva palabra reservada llamada
IF, que nos permite que el computador verifique si algo es verdadero o
falso, si es verdadero realiza una tarea, si es falso no la realiza
y sigue con la siguiente linea del programa.
Veamos una especie de traducci¢n de la forma en que se usa la palabra
IF:
IF verdadero THEN hace esto;
traducci¢n:
SI esto es verdadero ENTONCES hace esto;
En el programa:
IF n1=n2 THEN writeln( 'FELICITACIONES ADIVINASTE' );
traducci¢n:
SI n1 es igual a n2 ENTONCES escribe en la pantalla FELICI..
, o sea si el numero que ingreso el jugador 1 es igual al n£mero que
ingreso el jugador 2 entonces escribe felicitaciones.
-- o --
5.- C¢mo probar los programas de este curso.
En los distintos capitulos de este curso vamos a "encerrar" los pro-
gramas completos entre ---- (como en el programa anterior). Si los
quieren probar sigan los siguientes pasos (anotenlos):
1) Entren a IDE del Turbo Pascal (TURBO.EXE).
2) Abran el archivo del capitulo. Ej.: JP_C2.TXT.
3) Ubiquen el programa que quieren copiar.
4) Coloquense sobre la primera linea del programa.
5) Mantengan presionada la tecla SHIFT (la que tiene la flechita hacia
arriba) y bajen el cursor hasta la ultima linea del programa.
( Debe quedar todo el programa marcado con blanco ).
6) Presionen CONTROL e INSERT.
7) Luego seleccionen en los menus de arriba FILE/NEW.
( Se debe abrir otra ventana ).
8) Presionen SHIFT e INSTERT.
9) Seleccionen en los menu RUN/RUN.
-- o --
6.- La funci¢n RANDOM.
Supongamos que quieren hacer el mismo juego pero para jugarlo contra
el computador.¨ C¢mo hacer que el computador elija un n£mero ?.
Para est¢ utilizamos la funci¢n RANDOM del Turbo Pascal.
------------------------------------------------------------------------------
USES CRT;
var
n1, n2: integer;
begin
RANDOMIZE;
n1 := RANDOM( 10 );
CLRSCR;
writeln( 'El computador ya eligio un n£mero entre el 0 y el 9.' );
write( 'Elija el suyo: ' );
readln( n2 );
IF n1=n2 THEN writeln( 'ADIVINASTE!!' );
end.
------------------------------------------------------------------------------
Analisis:
- En la quinta linea de nuestro programa encontramos una llamada
a un nuevo procedimiento llamado RANDOMIZE. Este procedimiento no
necesita parametros para ser llamado y se utiliza para, eeh, mmmhh,
no se cual es precisamente su funci¢n (sorry) pero se que hay que
llamarlo UNA SOLA VEZ en el programa para poder utilizar la funci¢n
RANDOM ( si no se llama este procedimiento la funci¢n RANDOM nos va
a arrojar siempre el mismo valor ).
- En la siguiente linea utilizamos la funci¢n RANDOM, la tarea
de esta funci¢n es devolver un valor entero al azar (al achunte)
y recibe como parametros el valor m ximo que puede devolver. Por
ejemplo, si llamamos a la funci¢n as¡:
RANDOM( 113 ); , la funci¢n va a arrojar un valor al azar
entre 0 y 112.
He aqu¡ algo que se me hab¡a olvidado explicarles: cuando llamamos
a un procedimiento, s¢lo basta con colocar su nombre e indicarle los
parametros (si es necesario) y el procedimiento realiza su tarea. En
cambio para llamar a las funciones, como ‚stas devuelven un valor,
debemos hacer algo con ellas, por ejemplo, en el programa ¨ qu‚ vamos
a hacer con el valor que devuelve la funci¢n RANDOM ?, simple, lo
vamos a almacenar en la variable n1 ( a la variable n1 le asignamos
el valor que arroja la funci¢n RANDOM ):
n1 := RANDOM( 10 );
Bueno, el resto del programa ya lo habiamos explicado.
¨ Facil no ?.
-- o --
Bueno, ya vamos aprendiendo algo ¨no?. Es importante que pr ctiquen
con lo que llevamos aprendido. con ‚sto pueden hacer muchas cosas.
Una tarea interesante ser¡a tratar de hacer un men£ antes de empezar
el juego que nos permita elejir si queremos jugar contra al computa-
dor o contra otro jugador. S¢lo basta agregar una nueva variable e
imprimir un men£ en la pantalla. Incluso se puede dar a elejir el
nivel de dificultad del juego contra el computador s¢lo aumentando
el parametro con que llamamos a la funci¢n RANDOM.
Eso es todo por este capitulo. En el pr¢ximo espero que veamos las
operaciones con las variables, una lista de los procedimientos, fun-
ciones y palabras m s usadas, m s programas, etc...
CHAO, PRACTIQUEN...
JPLL
pc-jlopez@entelchile.net
-- o --
               (
geocities.com/siliconvalley/bridge)                   (
geocities.com/siliconvalley)