Datalogilaboration 1 - Spel

Den här labben måste göras på elektros unixdatorer. I fortsättningen får du gärna göra labbarna på din hemdator, men problem som då kan uppstå har lärarna inte möjlighet att lösa åt dej.

Registrera dej!

Dina resultat kommer att bokföras i programmet res. Lärarna kan föra in resultat som behövs om kursen ska kunna godkännas. För att du ska komma med i databasen måste du registrera dig via kurshemsidan. Fyll i formuläret noggrant. Numret på övningsgruppen är inte så viktigt - man får ju byta under kursens gång. Registrera även labbkamraten.

Skapa underkatalog!

Ge först kommandot ls och tryck retur. På din katalog finns underkataloger som Public och Mail. Skapa en ny underkatalog med kommandot mkdir datalogi och gör ls igen för att kolla att du lyckats. Vissa underkataloger, till exempel Private, bör bara du komma åt, men till datalogikatalogen vill du ge din labbkamrat fullständiga rättigheter. Filsystemets kommando för detta är
   fs sa datalogi e99_kul all 
om labbkamraten är e99_kul. Kolla sedan med
   fs la datalogi 
att det fungerat. Alla filsystemkommandon inleds med fs, sedan står sa för set access och la för list access. Rättigheterna är r=read, l=list, w=write osv.

Kopiera javafil!

Gå nu ner i datalogikatalogen med
   cd datalogi  
Här finns ännu inga filer, men du ska kopiera filen Spel.java från kurskatalogen. Kurskatalogens filer kan nås från webbsidan och i Netscapes filmeny kan du sedan välja "Save as". Men unixkommandot
   cp /info/prutt01//labbar/Spel.java .
gör samma sak snabbare, i alla fall om du använder automatisk ifyllning med TAB-tangenten (till vänster på tangentbordet). Efter /inf trycker man TAB och likaså efter /info/k och /info/kurser/d osv. Glöm inte punkten sist i kommandot - den säger att filen ska kopieras till aktuell katalog och behålla namnet Spel.java. Kolla med ls att kopieringen fungerat.

Fixa rätt Java!

Om inget speciellt görs är det osäkert vilken version av Java du kommer använda. Med kommandot module add jdk får du rätt version! Vill du slippa göra detta varje gång du loggar in kan du lägga till module add jdk sist i filen ~/.environment. Denna fil körs automatiskt vid inloggning. Med kommandot java -version får du reda på den aktuella Javaversionen. (Testa det!)

Kompilera javafil!

Kompileringskommandot är javac Spel.java och om det lyckas skapar det en eller flera class-filer. I det här fallet får man i stället felmeddelandet
   Spel.java:17: cannot resolve symbol
   symbol  : variable Mio  
   location: class FirstTo21 
eftersom Mio.getInt() används av Spel.java. Kopiera därför över även Mio.java och försök sedan exakt samma kompileringskommando igen. Nu skapas filerna FirstTo21.class och GissaTalet.class.

När man ska göra om samma eller nästan samma kommando som man gjort för inte så länge sedan använder man pilupptangenten en eller flera gånger. I det kopieringskommando du gav nyligen behöver du till exempel bara ändra Spel till Mio (använd vänsterpilen!).

Kör javaprogram!

Ge kommandot
   java FirstTo21
och försök vinna i spelet. Om det inte lyckas kan ni försöka java GissaTalet i stället. Eventuella vinster kan hämtas hos rektorn efter labbens slut.

Öppna nu filen Spel.java i Emacs och försök förstå lite av javakoden. Först står författarnamn och datum - sätt in egna namn i stället. Byt namn på dom båda klasserna, exempelvis till WinLaser och VinnLaser. Ändra slutligen koden så att programmen uppför sig som något av nedanstående (där alla tal vinner):

   Guess a number: 72651                   Gissa ett tal: 17
   Correct, you just won a ruby laser!     Rätt, du vann en rubinlaser!
Ni får sudda bort hela whileslingan utom själva Mio.getInt()-raden och ändra i utskrifterna, sedan är det klart. Spara den ändrade filen, kompilera den och provkör era program. Skriv sedan ut filen på papper, ta hem den och visa upp den för alla människor! Ni har ju just skrivit två egna javaprogram!

Logga ut och in!

När labbkompisen loggat in måste hon göra en länk till er gemensamma datalogikatalog med kommandot
   ln -s ~e99_dum/datalogi 
om e99_dum är den användare där katalogen finns. Det lilla spanska tecknet tilde sätts före användarnamn för att beteckna hemkatalogen.

^ Upp till kurssidan.


Sidansvarig: <henrik@nada.kth.se>
Senast ändrad 14 januari 2002
Tekniskt stöd: <webmaster@nada.kth.se>