2. Guia 2: autòmats

2.5. Sistemes autònoms

2.5.1. Introducció

Tal com hem dit al principi, l’art generatiu és aquell que ha estat creat, totalment o en part, usant un sistema autònom. L’artista automatitza d’alguna manera la producció d’algunes parts de la seva obra. Per a fer-ho, crea unes regles de producció (com les que hem vist en els exemples anteriors) i les implementa amb algun llenguatge de programació o en forma de màquina o d’algun automatisme físic.

Snap! té una característica interessant que ens ajuda a automatitzar accions. Podem crear els nostre propis blocs (en informàtica això ho anomenem funcions). En l’àrea dels blocs d’instruccions, a sota de cadascun dels menús hi ha el botó «Crea un bloc», que ens obre aquesta finestra:

Podem escollir el menú on afegirem el nou bloc (moviment, so, llapis, etc.) i el tipus de bloc (generalment escollirem «Comanda», però també podríem crear predicats que ens servissin de condicions).

Vegem-ho amb un exemple. Crearem un nou bloc que dibuixi un quadrat. En la guia 1 vam aprendre a dibuixar un quadrat. Ara veurem com automatitzar aquesta acció perquè cada vegada que necessitem un quadrat puguem senzillament fer servir la nova instrucció «quadrat».

Triarem el menú «Llapis», li posarem per nom «quadrat» i triarem «Comanda». En prémer «D’acord» se’ns obrirà una finestra, que és l’editor de blocs. Fent clic al símbol «+» del costat dret del quadrat, podrem afegir un paràmetre, al qual anomenarem «mida». D’aquesta manera, quan vulguem fer un quadrat el podrem fer de la mida que el vulguem (o fer que sigui aleatori amb la instrucció que ja hem après abans).

Un cop creat el paràmetre «mida», podem definir exactament què farà la instrucció «quadrat» cada vegada que la cridem. Ho farem creant la seqüència d’instruccions necessària («repeteix 4 cops, mou-te endavant i gira 90°»). Quan afegim el bloc «mou-te», en comptes d’escriure-hi un nombre concret de passos, posarem a dins la variable «mida», que ja se’ns ha creat automàticament i que podem arrossegar. Al final del procés hauríem de tenir quelcom semblant a això:

Acabats tots aquests passos, si anem al menú «Llapis» trobarem una nova instrucció com aquesta:

A partir d’ara podem fer servir aquesta instrucció en els nostres programes cada cop que vulguem dibuixar un quadrat. 

Per exemple, fem un programa que dibuixi cent quadrats en llocs aleatoris de l’escenari, i que cada quadrat tingui una mida també aleatòria (entre 10 i 50 passos).

Codi del programa

Si volguéssim, podríem crear més d’un paràmetre i, a part de «mida», tenir també «color», «gruix de línia», etc.

D’aquesta manera, podem repetir l’exemple anterior però dibuixant cent quadrats que, a part de tenir posició i mida aleatòria, tinguin colors i mides diferents.

Codi del programa