Home
Username:
Password:
Java: Introduction to Java Programming (Español) Tutorials

Cómo Dibujar y Pintar / Tablero Ajedrez/Soluc. Sombreado




Visitors to VTC.com will be able to view all introductory videos for each training course.
Free Trial Members will gain access to first three chapters for each training course.
Full Access Members have full access to VTC.com’s entire library of video tutorials.


Learn More

Subtitles of the Movie

En la lección anterior, he presentado un par de prácticas de programación; en ésta lección, encontraremos algunas de sus posibles soluciones. Recuerde que existen miles de programas que pueden satisfacer los requerimientos de éstas prácticas. Ésta es simplemente mi manera de hacerlo. Aquí tenemos el programa del tablero de ajedrez. Mi solución fue, en primer lugar, crear una ventana de 256 x 256 píxeles, la cual se puede dividir equitativamente en 16 rectángulos de 64 x 64 píxeles cada uno. Para crear un conjunto de cuatro rectángulos horizontal y verticalmente, he anidado un ciclo dentro de otro. El ciclo exterior se ejecuta cuatro veces, una vez por cada color del tablero. Cada vez que se ejecuta el ciclo exterior, el ciclo interior se ejecuta cuatro veces, una vez por cada fila en el tablero. Esto significa que éste bloque de código se ejecuta una vez por cada cuadrado en el tablero. Observe ésta sentencia "If". Aquí he realizado una acción que puede parecer engañosa. He decidido mostrar el color del fondo en la mitad de los cuadrados, así que sólo tuve que pintar la otra mitad de ellos. Ésta sentencia "If" determina si éste cuadrado en particular debe ser pintado o no. El valor de la variable "i" va desde el 0 hasta el 3 y el valor de la variable "j" va desde el 0 hasta el 3, así que he determinado que si la suma de los dos números da como resultado un número par, éste cuadrado debe ser pintado. Por ejemplo, si el valor de la variable "i" es el 2 y el de la variable "j" es el 1, la suma de estos dos números da como resultado el 3, es decir, un número impar. Por lo tanto, éste cuadrado no debe rellenarse con el color negro. El truco consiste en verificar si la suma da como resultado un número par o un número impar. Por ésta razón, he utilizado aquí un operador AND, el cual revisa los bits en los números a cada lado del mismo… y da como resultado un valor compuesto sólo por los bits con el valor 1 configurado en ambos números. Sólo los números impares tienen un orden de bit más bajo configurado en 1 bit, por lo tanto, al utilizar el operador AND en un número con el valor 1, el resultado será el valor 1 sólo si éste es un número impar. En caso de que éste sea un número par, el resultado de la operación AND es el valor 0, así que el código para pintar el cuadrado se ejecutará. Si éste es un número impar, no se realiza ninguna otra acción. La siguiente tarea consiste en determinar los valores de las variables "x" y "y". Ya que cada cuadrado tiene 64 píxeles de altura y 64 píxeles de ancho, simplemente debemos multiplicar el número del cuadrado por el valor 64 para encontrar su posición dentro de la ventana. Una vez conocemos su ubicación, un rectángulo de 64 x 64 píxeles se pinta de color negro. Al compilar y ejecutar el programa, éste es el resultado. Éste es el tablero de ajedrez de 4 x 4. Simplemente, al cambiar algunas constantes en el programa, podríamos modificarlo para que el tablero sea de cualquier tamaño, e incluso, que el tablero sea rectangular en vez de ser cuadrado. La segunda práctica consistió en crear una ventana que contuviera el sombreado de un color, de un lado al otro. Yo lo realicé inventando un color propio con unos valores del sistema RGB, los cuales me permitieron realizar muchos cambios. La apariencia del desvanecimiento del color se logra rellenando una sucesión de rectángulos ubicados unos junto a otros y cada uno con un color ligeramente distinto. En la parte superior del Método "paint", las dimensiones de cada rectángulo están configuradas de acuerdo a la altura de la ventana completa, pero sólo con 2 píxeles de ancho. He definido un color utilizando algunos valores del sistema RGB, los cuales he modificado a medida que el programa avanza; éste ciclo se ejecuta repetidamente hasta que el valor de la variable "x" haya alcanzado el lado derecho de la ventana. En la parte superior de éste ciclo, tenemos un llamado al Método "setColor", el cual hace que un rectángulo se rellene en la posición actual. Luego, se ajusta el valor de la variable "x" de acuerdo al ancho del rectángulo, a la espera de rellenar el siguiente. A continuación, se extraen los valores de los colores rojo, verde y azul del color actual, así que podemos ajustar las configuraciones y crear un nuevo color de un tono más claro. Se ha agregado el valor 1 a cada una de las configuraciones de los tres colores primarios, asegurándonos de no exceder el máximo valor válido de 255. En la parte inferior, se crea un nuevo color, el cual se almacena en la Referencia "Color", lo cual significa que el nuevo color va a reemplazar al color actual. En éste punto, el ciclo se reinicia, se dibuja un rectángulo con el nuevo color y se realizan los mismos ajustes nuevamente. Si estuviésemos desvaneciendo algún otro color diferente al blanco, estos números se ajustarían con los valores correspondientes del otro color y no podríamos exceder a éste. Dejaré que éste ejercicio lo realice usted mismo. Éste es el resultado. Observe que el color cambia a través de la ventana, desde su configuración original hasta llegar al color blanco. Ya que el ancho de los rectángulos es sólo de 2 píxeles de ancho, la transición luce muy suavizada. Es imposible notar los bordes rectangulares porque el cambio del color en el rectángulo contiguo es muy leve. notar los bordes rectangulares porque el cambio del color en el rectángulo contiguo es muy leve.

Tutorial Information

Course: Java: Introduction to Java Programming (Español)
Author: Arthur Griffith
SKU: 33644
ISBN: 1-932808-86-8
Release Date: 2005-09-22
Duration: 8.5 hrs / 92 lessons
Captions: Available on CD and Online University
Compatibility: Vista/XP/2000, OS X, Linux
QuickTime 7, Flash 8

VTC Sign up & Benefits

  • Unlimited Access
  • 98,729 Video Tutorials (23,265 free)
  • Video Available as Flash or QuickTime
  • Over 1026 Courses
  • $30 for One Month Access
  • Multi-User Discounts Available