CURSO DE PROGRAMACION DE VIDEO JUEGOS:  TEXTO #1.
          ---------------------------------------------------

1.- Descripci¢n del curso.

    Primero quiero que me disculpen por mis faltas de ortograf¡a y 
    problemas de redacci¢n, pero bueno, esto es un curso de progra-
    maci¢n no de castellano.
    A los lectores que no sepan absolutamente nada de programaci¢n
    que no se preocupen, porque voy a tratar de explicar desde  lo 
    m s b sico, los que ya sepan algo y quieran complementar sus co-
    nocimientos deben tener un poco de pasiencia.
    Algunas cosas que vaya a explicar en este curso pueden estar un 
    poco malas pero si puedo hacer juegos con lo que s‚ ustedes no
    deber¡an tener problemas en hacerlo.
    Cualquier comentario, sugerencia o pregunta mandenme un email y
    voy a tratar de contestarlo.

    Para los que piensan programar juegos para Window 95, o juegos estilo
    Quake o con gr ficas impresionantes no se espanten, ya que lo que yo
    les voy a ense¤ar es la base para llegar a eso y deben tener pasiencia.

    Los juegos que yo hago son un poco estilo Nintendo (£ltimamente salen
    un poco mejor que eso) pero con un poco m s de dedicaci¢n se pueden
    lograr muy buenos resultados.

                                   -- o --

2.- Requisitos para tomar el curso.

    - Obviamente un computador PC.
    - Turbo Pascal 6.0 (o 7.0 preferentemente).
    - Saber un poco de computaci¢n (DOS, que son los archivos, etc...).

    Yo trabajo con un tarro 486 DX, 40Mhz, 8 Mb. RAM, DOS 6.0, Turbo
    Pascal 7.0. Pero espero cambiarlo pronto.
    
                                   -- o --

    Tambi‚n s‚ programar C++ y me acuerdo un poco de Basic pero hace
    hace poco he tenido algunos problemas programando C++ asi que lo
    dej‚ por el Turbo Pascal.

    Para los que quer¡an programar C++ porque escucharon por ah¡ que
    los juegos se hac¡an en este lenguaje les digo que para aprender a
    programar es mucho mejor empezar con un lenguaje un poco m s simple
    como el Turbo Pascal, hacer algunos juegos en este lenguaje y luego
    se les va a hacer mucho m s facil y r pido aprender C++.

    Actualmente la programaci¢n esta a un nivel mucho m s alto de lo que
    les voy a ense¤ar, se programa en Watcom C++ bajo Window 95(98) se
    usan controladores Active X, etc... Pero eso lo podemos aprender m s
    adelante (yo tambi‚n estoy muy atrasado en mi nivel de programaci¢n
    pero voy aprendiendo).

    Bueno empecemos con el curso:

    (...Receso... voy a ver Dragon Ball Z.)

    ...Ok, ya volv¡. Veamos como trabaja un lenguaje de programaci¢n.

    Un lenguaje de programaci¢n se divide b sicamente en dos partes:
    un COMPILADOR y un ENLAZADOR (COMPILER y LINKER en ingles).

    Nuestro programa no es m s que un archivo de texto (as¡ como el que
    estas leyendo ahora) en que cada linea de texto es una instrucci¢n 
    que le dice al computador lo que tiene que hacer, a este texto se
    le llama CODIGO FUENTE. Para escribir el codigo fuente de un progra-
    ma podemos utilizar cualquier porcesador de texto como el Word, Write,
    Word Perfect o incluso el editor del DOS, lo importante es grabarlo
    en un archivo de texto (as¡ como ‚ste).

    Cuando tenemos escrito nuestro codigo fuente y guardado en un archivo
    ocupamos el compilador de nuestro lenguaje de programaci¢n para tarns-
    formar nuestro programa a un "idioma" que pueda entender el computador
    creando un nuevo archivo que se llama CODIGO OBJETO.

    Luego ocupamos el enlazador (linker) para agregar algunos ingredientes
    necesarios a nuestro codigo objeto y transformarlo en un archivo ejecu-
    table (.EXE) con el que podamos correr (hacer funcionar) nuestro pro-
    grama.

    ¨ Complicado ?. No tanto, veamos un esquema.

      --------                 --------               ------------
       Codigo       ---->       Codigo      ---->       Archivo
       Fuente       ---->       Objeto      ---->      ejecutable
      --------    compilador   --------    linker     ------------

    Con esta descripci¢n puede ser un poco complicado hacer un programa
    pero existe lo que se llama IDE que hace tiempo viene con los lenguajes
    de programaci¢n, esto es un entorno gr fico (una pantalla con men£s y
    cositas) que nos permite escribir el codigo fuente de nuestro programa
    y con s¢lo elegir una opci¢n en un men£ podemos compilar, enlazar y 
    ejecutar nuestro programa sin mayor esfuerzo.

    Para entrar a este entorno con el Turbo Pascal solo ejecutamos el archivo
    TURBO.EXE.

    Si hasta ahora no han entendido nada no se preocupen, no es tan necesario
    saber esto, con el tiempo lo van a entender de todos modos.

                                   -- o --

    ¨ Como fabricamos nuestros programas ?

    Para fabricar el codigo fuente de nuestros programas el lenguaje de
    programaci¢n nos proporciona una serie de palabras claves llamadas
    PALABRAS RESERVADAS. Adem s de otras palabras llamadas procedimientos
    y funciones que veremos en el capitulo siguiente.

    Veamos un peque¤o programa:
                               
    BEGIN
    WRITE( 'Programa mula.' );
    END.

    Este es un programa muy b sico, lo que hace es imprimir en la pantalla
    la frase "Programa mula". Las palabras reservadas estan con mayusculas
    la palabra BEGIN le indica al computador cuando tiene que comenzar a
    ejecutar las instrucciones, la palabra WRITE permite imprimir mensajes
    en la pantalla y la palabra END indica el final del programa.

    ¨ Facil no ?.

    Cada palabra reservada tiene una SINTAXIS, que es la forma como debe
    utilizarse. Por ejemplo, la sintaxis de la palabra BEGIN es:

    BEGIN

    ...la sintaxis de la palabra WRITE es
                                               
    WRITE( mensaje );

    ...donde el mensaje debe ir entre comillas simples ''. 

    Adem s de las palabras reservadas existen la llamadas VARIABLES. Ima-
    ginemos un peque¤o caj¢n que puede contener cualquier cosa, ese caj¢n
    tiene un nombre £nico que no lo tiene otro caj¢n, bueno esos cajones
    los inventamos nosotros, nosotros les ponemos nombre y los ocupamos
    en nuestro programa para guardar cosas, eso es una variable.

    Para crear estas variables se utiliza una palabra reservada llamada
    VAR. Cuando creamos una variable debemos indicar que tipo de valor va
    a guardar en su interior (puede ser un n£mero entero, un n£mero real,
    una letra, etc...).

    Veamos un ejemplo:

    VAR Numero: INTEGER;
        Letra: CHAR;
        n1, n1: REAL;

    Aqu¡ declaramos (creamos) 4 variables: la variable Numero que es de
    tipo entero (INTEGER), la variable Letra que es de tipo caracter (CHAR)
    y las variables n1 y n2 que son de tipo REAL. 
    Igual que en el ejemplo anterior las palabras reservadas est n con
    letras may£sculas. Bueno veamos la sintaxis para declarar variables:

    VAR
       nombre de la varible: tipo de valor que guarda;

    La palabra VAR abre una secci¢n dentro de la cual se pueden declarar
    las variables.

    Ahora ¨ Como utilizamos estas variables ?.

    Para guardar algo en una variable se ocupa la siguiente sintaxis:

    nombre de la variable := lo que queremos guardar;

    Ejemplo:   Numero := 7;
               Letra := 'f';

    ...a esto se le llama asignarle algo a la variable. Lo que le asignamos
    a una variable debe ser algo que pueda guardar, de acuerdo a como 
    hayamos definido la variable. Por ejemplo, si declaramos la varible
    como INTEGER (entero) no podemos asignarle un valor de tipo CHAR (una 
    letra).

    Adem s las variables se pueden ocupar con las palabras reservadas,
    se puede imprimir su valor en la pantalla o leerlo desde el teclado.

    Por Ejemplo, WRITE( Score ); imprime el valor de una variable que 
    se llama Score.

    Es importante que noten la diferencia entre WRITE( 'Score' ); y
    WRITE( Score );. La primera va a imprimir la palabra Score en la
    pantalla, mientras que la segunda va a imprimir el valor de una
    variable llamada Score en la pantalla.

    Veamos un ejemplo en un programa completo:

    VAR Nombre: STRING;
        NumProg: INTEGER;

    BEGIN
      NumProg := 2;
      WRITE( 'Ingrese su nombre: ' );
      READLN( Nombre );
      WRITELN( 'Hola ', Nombre );
      WRITE( 'Este es el programa n£mero ', NumProg );
    END.
       
    En este programa se definen dos variables, la primera es de tipo
    STRING (guarda una linea de texto) y la segunda es de tipo entero.
    Luego comienza el programa con la palabra BEGIN como siempre, luego
    a la variable NumProg le asigna el valor 2, despu‚s se imprime en
    la pantalla el texto "ingrese su nombre" por medio de la palabra
    reservada WRITE que ya habiamos visto antes. Luego se utiliza una 
    palabra que no habiamos usado, la palabra READLN permite leer algo
    desde el teclado y asignarselo a la variable que lleva entre paren-
    tesis, veamos su sintaxis:

    READLN( nombre de la variable );

    Luego ocupamos otra palabra clave llamada WRITELN, su uso es igual
    que el de la palabra WRITE s¢lo que est  despu‚s de escribir en la
    pantalla se salta a la linea siguiente. El programa va a escribir 
    en la pantalla la frase "HOLA " y el nombre que hayamos ingresado,
    luego se salta a la linea siguiente y escribe "Este es el programa
    numero 2", donde el 2 es el valor de la variable NumProg.

    Un ejemplo de la ejecuci¢n de este programa se ver¡a algo as¡ en tu
    monitor:

    
   ------------------------------ 
    Ingrese su nombre: Jaime
    Hola Jaime
    Este es el programa numero 2
   ------------------------------

                                   -- o --
   
    Si, es verdad, esta es la parte m s fome y complicada pero con unas
    cuantas leidas lo puedes aprender bien, sino en el pr¢ximo capitulo
    vamos a ver otros ejemplos y a ejecutar algunos programas.
    
    Esta es la base de un programa, es lo m s basico que debemos saber,
    ahora nos queda aprender algunas palabras reservadas y ya podemos
    hacer nuestro primer programa de pr ctica. 

    No se aburran y no dejen este curso que se va a poner mejor.

    Cualquier sugerencia, comentario o pregunta, ya saben...

        JPLL
        pc-jlopez@entelchile.net

    Me avisan si estoy ocupando terminos muy complicados, la idea es
    que aprendan. Ha y consiganse el Turbo Pascal y practiquen.

                                   C H A O

                                   -- o --

    Source: geocities.com/siliconvalley/bridge/1910

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