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 --

    Source: geocities.com/siliconvalley/bridge/1910

               ( geocities.com/siliconvalley/bridge)                   ( geocities.com/siliconvalley)