Göm menyn

TDP007 Konstruktion av datorspråk

Seminarie 1: Introduktion till Ruby

Syftet med det första seminariet är att ni ska bli bekanta med språket Ruby och arbetssättet för laborationer och seminarier i kursen.

Vad ska man tänka på?

Innan ni börjar med uppgifterna, läs igenom Seminariesidan. Den förklarar hur ni ska redovisa era lösningar och hur ni ska förbereda er för seminaret. Förutom lösningar på uppgifter ska ni även lämna in enhetstester och utvecklarblogg. Läs igenom anvisningarna för dessa också.

Uppgiften

För seminarie 1 kommer du implementera Sokoban (igen!). Tanken här är att vi har ett bekant problem från TDP002 som vi redan löst en gång. Dels får vi nu möjlighet att utforska och bekanta oss med detta nya språk. Men vi har också möjlighet att på nytt tackla ett problem med en större verktygslåda (algoritmer, funktionsobjekt, oop, etc).

Instruktionerna för uppgiften är med avsikt något lösa, det låter dig själv träna på att bygga något från grunden utifrån instruktionen "implementera Sokoban i Ruby". Behöver du tillgång till kartor eller bli påmind om hur spelet fungerar eller lite hints om hur man kan börja så hänvisar vi till kurssidan för TDP002.

Släng gärna en titt på förberedelserna för första seminariet nedan för att se vad vi kommer göra med programmet ni skapar(vad en annan grupp kommer göra med er kod och vad ni kommer göra med en annan grupps kod).

Förberedelser för Seminariet

Utöver de generella instruktionerna för seminariet kommer här specifika punkter att fokusera på inför detta seminarie. Fokuset på detta seminarie är att vi byter språk igen. Med tanke på instruktionerna nedan är det bra om er användarblogg gör det enkelt för gruppen som granskar er kod att också ta upp de sakerna.
  • Övergripande beskrivning av spelets design. Tänk i samma banor som designspecifikationen där ni beskrev spelet i TDP005. Vilka klasser/ADTs eller dylikt är centrala.
  • Välj någon eller ett par intressanta konstruktioner i lösningen som skiljer sig från de konstruktioner vi är bekanta med från Python och C++. Vilka för- och nackdelar ser ni med dessa konstruktioner. Exempelvis skulle detta kunna vara Rubys iteratorer, möjlighet att utöka existerande klasser, hantering av block, etc.

Sidansvarig: Pontus Haglund
Senast uppdaterad: 2026-01-16