Esimerkki: Merkki
|
// Ohjelman tehnyt: e-Oppi Oy
// 30.1.2017
int numero = 97+round(random(3)); // Arvotaan luku väliltä 97…100
void setup() {
size(600,300); // Asetetaan ikkunan koko
background(255); // Asetetaan taustaväriksi valkoinen
fill(0); // Asetetaan tekstin väriksi musta
textSize(32); // Asetetaan teksin kooksi 32
}
void draw() {
char merkki = char(numero); // Muutetaan arvottu numero merkiksi a,b,c tai d
if (merkki == 'a') { // Jos merkki on a-kirjain
text("Arvottu merkki on a",10,100);
}
if (merkki == 'b') { // Jos merkki on b-kirjain
text("Arvottu merkki on b",10,100);
}
if (merkki == 'c') { // Jos merkki on c-kirjain
text("Arvottu merkki on c",10,100);
}
if (merkki == 'd') { // Jos merkki on d-kirjain
text("Arvottu merkki on d",10,100);
}
}
Kun teet vertailulauseita, niin vertailtavat merkit on laitettava heittomerkkien väliin (' '). Arpominen on suoritettava heti ohjelman alussa, koska haluamme arpoa luvun vain kerran. Jos arpominen suoritettaisiin void draw () -lohkossa, niin silloin arpominen tapahtuisi jatkuvasti. Tässä numero-muuttuja on ns. globaalimuuttuja eli on voimassa kaikissa lohkoissa. Komento random(3) arpoo luvun väliltä 0..3. Kun tähän arvottuun lukuun lisäämme luvun 97, niin saamme välin 97..100. Koska numero muuttuja on kokonaislukumuuttuja, niin arvontakomennossa on lisäksi käytettävä pyöristyskomentoa round( ).
Komennolla: char(kokonaisluku); voimme muuttaa kokonaisluvun sitä vastaavaksi merkiksi. Kokonaisluvun ja merkin vastaavuus selviää ASCII-taulukosta, joka on kuvattu alla.
33 | ! | 52 | 4 | 71 | G | 90 | Z | 109 | m |
34 | " | 53 | 5 | 72 | H | 91 | [ | 110 | n |
35 | # | 54 | 6 | 73 | I | 92 | \ | 111 | o |
36 | $ | 55 | 7 | 74 | J | 93 | ] | 112 | p |
37 | % | 56 | 8 | 75 | K | 94 | ^ | 113 | q |
38 | & | 57 | 9 | 76 | L | 95 | _ | 114 | r |
39 | ' | 58 | : | 77 | M | 96 | ` | 115 | s |
40 | ( | 59 | ; | 78 | N | 97 | a | 116 | t |
41 | ) | 60 | < | 79 | O | 98 | b | 117 | u |
42 | * | 61 | = | 80 | P | 99 | c | 118 | v |
43 | + | 62 | > | 81 | Q | 100 | d | 119 | w |
44 | , | 63 | ? | 82 | R | 101 | e | 120 | x |
45 | - | 64 | @ | 83 | S | 102 | f | 121 | y |
46 | . | 65 | A | 84 | T | 103 | g | 122 | z |
47 | / | 66 | B | 85 | U | 104 | h | 123 | { |
48 | 0 | 67 | C | 86 | V | 105 | i | 124 | | |
49 | 1 | 68 | D | 87 | W | 106 | j | 125 | } |
50 | 2 | 69 | E | 88 | X | 107 | k | 126 | ~ |
51 | 3 | 70 | F | 89 | Y | 108 | l | 127 |
Vastaavasti komennolla: int('merkki'); voidaan merkki muuttaa sitä vastaavaksi kokonaisluvuksi. Kun teet if-lauseen, niin merkkejä on vertailtava siten, että merkki kirjoitetaan heittomerkkien (' ') väliin.
Kokeile ajaa ohjelma useamman kertaa. Joka kerralla pitäisi tulostua satunnaisesti eri teksti. Alla on esitetty kaksi ohjelman esimerkkiajoa.