Mozes to da resis na vise nacina, ali je princip da niti moraju da imaju neke shared objekte, tj. objekte koji su dostupni svim nitima. To sto si uradio nije glupo, ali treba da poboljsas resenje. Problem je relativno jednostavan, zato sto samo jedna nit (ta sto prati tastaturu) menja vrednost, a ona druga (sto pomera tackicu) samo cita, bez ikakvih izmena. Dakle, mozes da koristis i staticki niz, s tim sto svaka tackica mora da zna gde da pogleda za svoj pravac. Ipak, evo ti par stvari o nitima koje su zanimljive kada dve ili vise niti treba da sinhronizuju pristup i komunikaciju.
Deo koda koji pristupa zajednickim objektima se u teoriji (i praksi) zove kriticna sekcija. Taj pristup mora da se sinhronizuje, tako da nema zabune kada dve (ili vise) niti pristupaju (ili menjaju) zajednickom objektu. Sinhronizacija se postize uz pomoc kljucne reci synchronized. Mozes da je stavis oko kriticne sekcije ili pak kada deklarises metod. Onda je ceo metod kriticna sekcija i samo jedan thread moze da izvrsava taj metod u jednom trenutku. Takodje, ako imas dve ili vise kriticne sekcije definisane u klasi, samo jedna nit moze da izvrsava bilo koju od njih (na jednom objektu), a ostale moraju da cekaju na signal da je prva nit zavrsila posao.
Konkretno kod tebe, ako imas jos neku nit koja moze da promeni pravac, mozes da napravis niz koji ce da cuva vrednosti za svaku tackicu i da sinhronizujes u odnosu na aplet ili klasu apleta (napises synchronized(instanca_klase_tvog_apleta){ ...//menjanje vrednosti u nizu za tackice }
Onda svakom objektu klase tackica das njegov index u nizu i sam niz gde ce da gleda za promenu pravca. Aplet je u tvom slucaju zgodan, jer imas tu jednu instancu klase fiksiranu. Inace mozes da koristis singleton pattern ili bilo sta za sta znas da postoji samo jedna instanca klase (na primer Class objekat). Ti objekti koje stavljas u synchronized se zovu monitori i problemi izmedju niti se resavaju serijalizacijom pristupa tim monitorima.
Posto malo zurim, napisao sam ovo zbrda-zdola. Ako ti nije najjasnije, pitaj, pa cu da elaboriram veceras (ili mozda neko drugi ko zna) :)
A computer once beat me at chess, but it was no match for me at kick boxing.