|
Alinei
La principo
Ni devas desegni 216 rektangulojn, kiuj povos stari sur 12 linioj de po 18 rektanguloj.
Por fari tion, ni deklaros variablon por variigi la ordinaton [int ordinato = 0;] kaj registrilan variablon [int registrilo = 0;] , al kiu oni adicios 1 je ĉiu iteracio [registrilo += 1;] . Kiam tiu variablo ricevos la valoron 19 (je la dek-oka iteracio), ni petos, ke la programo komencu novan linion per ŝanĝo ne de la absciso, sed de la ordinato [ordinato += 12;] , kiu ĝis tiam konservis la valoron 0.
Ni ne devos forgesi redoni al la absciso kaj al la registrilo la valoron 0, por ke la nova linio komenciĝu de la maldekstra bordo de la retprograma zono, kaj finiĝu denove post la dek-oka rektangulo.
Instrukcio if()
Kiel diri al la programo, ke, kiam la registrila variablo ricevos valoron pli grandan ol 18, ĝi faru tion aŭ tion ĉi ?
Unu solvo estas la uzo de instrukcio if().
Tiu instrukcio ebligas testi la verecon de propozicio (se estas vere, ke tiu variablo havas tiun valoron...) kaj konsekvence daŭrigi la programon (...tiam mi faras tion, se ne mi faras tion ĉi).
Jen la kodo de la retprogramo kun tiu instrukcio :
import java.awt.*;
public class apleto10 extends java.applet.Applet
{
public void paint (Graphics g)
{
int absciso, ordinato, registrilo;--- maniero deklari sur unu linio plurajn variablojn
absciso = 0;--- tamen estas preferinde ilin pravalorizi unu post la alia
ordinato = 0;
registrilo = 0;
for (int R=0;R<256;R+=51)
{
for (int G=0;G<256;G+=51)
{
for (int B=0;B<256;B+=51)
{
g.setColor(new Color(R,G,B));
g.fillRect(absciso,ordinato,10,10);
absciso+=12;
registrilo +=1;
if (registrilo == 18)--- atentu la signon == , kiu esprimas egalecon
{
registrilo = 0;
absciso = 0;
ordinato += 12;
}//if
}//for B
}//for G
}//for R
}//paint
}
La rezulto estas :
La uzpreta kodo
Restas nun fari ĉiun el tiuj rektanguletoj surklakebla. Tio estos por ni la okazo profiti, dum la venontaj paŝoj, la objekteman econ de la Ĝava lingvo.
|