Laboration 5: Rullande text och binära tal

Prolog:

Bussbolaget Buss AB har köpt in textskylten Rock n Scroll från Slas Ohlsson. Den ska sitta på bussens sida och visa reklamtexter och kundinformation när bussen står inne på busstationen. Skylten består av 256*8 ljuspunkter som kan tändas i olika färger. Janne, som varit entusiastisk inför denna förnyelse, kommer in med det avlånga paketet på kontoret. Nästan alla är samlade där för att dricka morgonkaffe. Trots den tidiga morgontimman är det uppsluppen stämning och spänd förväntan när Janne river av embalaget på paketet. Han kopplar sladden till skylten och håller upp den så att alla kan se. Se bild:

-Men texten står ju still!, säger Kurt. Skylten ska kunna visa text som scrollar från höger till vänster men trots att Janne trycker på reset-knappen upprepade gånger så står texten helt stilla. I den finstilta texten på paketet står det att mjukvaran för att åstakomma rullande text ej ingår!. Först blir det lite obehaglig stämning på bussbolagets kontor och blickarna vänds mot Janne, som har skött hela inköpsproceduren. Janne börjar svettas på överläppen och hostar fram ett:
-Så pass... Tänk, det fattade jag inte...
Då säger Janet att hon har gått en kurs i objektorienterad programmering och att hon kan fixa mjukvaran om någon annan kan köra nattbussen till Östersund t.o.r i natt. Blickarna vänds mot Janne, som inser att han är utvald för bussturen till Östersund. Janet tar den medföljande bruksanvisningen och CD-rom-skivan och går till en arbetsstation och börjar knåpa ihop mjukvaran...

Att göra:

(redovisning) Definiera en klass Screen som är exekverbar. (Dvs att den har en egen main-metod). En körning från kommandoprompten kan se ut så här:

java Screen -t "HOLA SOY UN PERDEDOR"

Det ska även gå att välja att ladda texten från en fil med kommandot:

java Screen -f mintextfil.txt

Det tredje funktionskravet är att hastigheten på scrollningen ska kunna ställas med att ange argumentet -s <paus i ms>, t.ex. så här:

java Screen -t "HOLA SOY UN PERDEDOR" -s 100

för att göra en 100 ms paus mellan varje scroll-förflyttning.

Denna funktionalitet tillsammans med en kommentar som beskriver programmet är laborationens krav för att få godkänt. Den som behöver extra tid för denna laboration ska höra av sig före deadline 11/3.

Det finns ingen fullständig mjukvara för att styra skylten men två klasser finns tillgängliga: Data.class och Display.class. Dessa kan vara till god hjälp i programmet. Display är själva ritytan, bl.a. med metoden setDot(int x, int y, java.awt.Color c) för att rita en punkt på din display. Position (0,0) är högst upp till vänster och position (255,7) längst ner till höger på display'en. Klassen Data innehåller typsnittsinformation för alfabetets stora bokstäver. Den som vill kan använda Data för att få typsnittsinformation. Det går också bra att hitta på en egen lösning för att skriva tecken på display.

Här finns klassfilerna för nedladdning: Data.class , Display.class

Extrafunktioner

För hugade spekulanter:

Tips på vägen:

Denna laboration är en revidering av en laboration utarbetad av:

(C) Tomas klockar 2004
Orginal-laborationen

Lycka till! /Urban Liljedahl 2004-03-02