Kravspecifikation. Sammanfattning. Fyra i rad Javaprojekt inom TDDC32. Version 2.0. Datum Dokumentnummer

Relevanta dokument
Fyra i rad Javaprojekt inom TDDC32

Hexaflip. Analysis and Design Document. Version 2.0 α Last modified: Martin Larsson

JavaRats. Kravspecifikation. Version 1.1. Gustav Skoglund Marcus Widblom Senast ändrad: 13 / 05 / 08

HexaFlip. Kravspecifikation

Handbok Fyra i rad. Martin Heni Eugene Trounev Benjamin Meyer Johann Ollivier Lapeyre Anton Brondz Översättare: Stefan Asserhäll

Projektdokumentation för Othello

Handbok Othello. Clay Pradarits Utvecklare: Mario Weilguni Granskare: Lauri Watts Översättare: Stefan Asserhäll

Utförliga regler för TRAX

Handbok Othello. Clay Pradarits Utvecklare: Mario Weilguni Granskare: Lauri Watts Översättare: Stefan Asserhäll

Handbok Shisen-Sho. Dirk Doerflinger Eugene Trounev Frederik Schwarzer Granskare: Frerich Raabe Översättare: Stefan Asserhäll

Handbok Officersskat. Martin Heni Eugene Trounev Granskare: Mike McBride Översättare: Stefan Asserhäll

Sagaforms spelregler SCHACK, FIA MED KNUFF, BACKGAMMON, DOMINO

Genom att följa dessa steg lär du dig snabbt att spela onlinematcher... och som du kan se är det mycket enkelt, roligt och spännande!

DJUREN PÅ GÅRDEN (4-8 år) Swedish Media Art /

Kravspecifikation TDP005 Projekt: Objektorienterat system

BRIDGE MASTER 2000 SCANDINAVIA av Fred Gitelman

Handbok Solitär. Graeme Gott Ronny Yabar Aizcorbe Översättare: Stefan Asserhäll

MinMax Algoritmen Implementation och optimering. Joakim Östlund 15 juni 2004

PROJEKT- PRESENTATION

Handbok Mahjongg. John Hayes Eugene Trounev Översättare: Stefan Asserhäll

Redigering av dokument - SaveToServer

Nätverksprogrammering, EDA095

3. Välj den sprajt (bild) ni vill ha som fallande objekt, t ex en tårta, Cake. Klicka därefter på OK.

Handbok Kdiamant. Stefan Majewsky Översättare: Stefan Asserhäll

Handbok Hoppande kuben. Ian Wadham Eugene Trounev Matthias Kiefer Översättare: Stefan Asserhäll

Handbok KNetWalk. Fela Winkelmolen Eugene Trounev Översättare: Stefan Asserhäll

Handbok Picmi. Jakob Gruber Översättare: Stefan Asserhäll

Handbok Fyrkanter. Matt Williams Granskare: Eugene Trounev Översättare: Stefan Asserhäll

Handbok Svarta lådan. Nicolas Roffet Robert Cimrman Philip Rodrigues Lauri Watts Översättare: Stefan Asserhäll

Handbok Minröjaren. Nicolas Hadacek Michael McBride Anton Brondz Utvecklare: Nicolas Hadacek Granskare: Lauri Watts Översättare: Stefan Asserhäll

1 Kravspecifikation Snake App

Brädspelet Mulan. Håkan Berggren, Magnus Ellisson, Lars Kristiansson, Cheng-Huei Kuo, Eva Ljunggren, Joakim Viker. Göteborg 1999.

Handbok Potatismannen. Éric Bischoff Paul E. Ahlquist, Jr. Eugene Trounev Granskare: Lauri Watts Översättare: Stefan Asserhäll

Kravspecifikation. TDP005 Projekt: objektorienterade system. Version 4.0 Datum Anna Ahlberg Johan Almberg

Handbok Kigo. Sascha Peilicke Översättare: Stefan Asserhäll

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor

EU-resan En upptäcktsfärd. Så här spelar du

Att få inskannad text uppläst med talsyntes

TENTAMEN: Design och konstruktion av grafiska gränssnitt DAT215/TIG091

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI

Vad är det där? STEG 1: Få olika saker att visas på svarta tavlan

HI1024 Programmering, grundkurs TEN

Gran Canaria - Arbetsbeskrivning knapplänkar (Mediator 8)

Presentationsprogram - Kravspecifikation. Henrik Österdahl och Jenny Melander, D mars 2002

Introduktion till Matlab

Digital Choice 12 + MER, MER, MER!

Läslandet 2 Ord och meningar

Att använda talsyntesen ClaroRead Pro

ANVÄNDARGUIDE. ViTex

Beskrivning av gesällprov RMI Chat Mikael Rydmark

Exempelprov. Matematik Del A, muntlig del. 1abc

Lathund till PowerPoint

Vad utmärker ett bra användargränssnitt?

Handbok Utbrytning. Fela Winkelmolen Stephanie Whiting Översättare: Stefan Asserhäll

ZÄTA FÄRGCHANSEN CHANSE 58:AN UTSPELET CHANSEN TREKLÖVERN ZÄTA CHANSEN 58:AN. Spelmeny ANGERED - ALINGSÅS.

SKAPA EN WWW-LÄNK I EN ARTIKELTEXT

TDDC74 - Projektspecifikation

Grundläggande Ordbehandling Microsoft Word

Sannolikheten att vinna ett spel med upprepade myntkast

Handledningsmaterial Visio 2010

Gränssnitt för FakeGranska. Lars Mattsson

Meteor 1.0. När man startat Meteor möts man av huvudmenyn:

Trivselregler. SPELREGLER (utdrag)

Handbok Kdots. Minh Ngo Översättare: Stefan Asserhäll

Handbok KBlocks. Mauricio Piacentini Översättare: Stefan Asserhäll

Game of 40. Regler och om sidan är in princip samma sak. Det som skiljer dem åt är att de inte har samma text.

Beskrivning av Gesällprov. Fia Med Knuff. Mikael Rydmark.

3.5 Visuell programmering

Regler för: getsmart Grön

LUVIT LMS Quick Guide LUVIT Composer

EasyProducer Kom igång guide

Bryt ditt. musberoende! Kortkommandon för alla situationer

Skoghall - Säffle - Hagfors

Grundkurs i PowerPoint 2003

7,5 högskolepoäng. Objektorienterad systemutveckling I Provmoment: Ladokkod: 21OS1B Tentamen ges för: Lycka till! /Peter & Petter

Handbok Shisen-Sho. Dirk Doerflinger Eugene Trounev Frederik Schwarzer Granskare: Frerich Raabe

Enkäter - Lärarmanual

Kom igång med Denna korta manual hjälper dig med att komma igång med programmen Vital och ViTex.

Tangentbord. Mike McBride Anne-Marie Mahfouf Översättare: Stefan Asserhäll

O, helga natt Gläns över sjö och strand. White christmas. We wish you a Merry Christmas. Goder afton Hosianna Nu ha vi ljus här i vårt hus

SPELREGLER. Delar i spelet. Antal spelare. Spelet i korthet

L-Advantage Solutions AB. WinMore Systems Hippo PC & MAC Start

Innehåll. WordWall låter dig som pedagog skapa övningar, aktiviteter och presentationer med några enkla klick.

RödGrön-spelet Av: Jonas Hall. Högstadiet. Tid: minuter beroende på variant Material: TI-82/83/84 samt tärningar

Att använda talsyntesen ClaroRead Pro Version 6

Produktionsstöd har erhållits från Specialpedagogiska skolmyndigheten

Grupper; Gruppindelningar; Vanliga inställningar för modul

Mitt hus och jag steg för steg instruktioner

Tentamen i Objektorienterad programmering E

Manual Demoväska RFID. Manual Demoväska. Sara Svensson/Monika Lindgren/Fredrik Karlsson Version BnearIT AB 1(17)

Kom igång. Readyonet Lathund för enkelt admin. Logga in Skriv in adressen till din webbsida följt av /login. Exempel:

Ladibug Bildbehandlingsprogram Bruksanvisning

Guide till att använda Audacity

Full koll på taggar i OS X Mavericks

Kortmanual Adato. Version Miljödata AB Ronnebygatan 46 Tel Karlskrona Org.nr

Nyheterna i Visma Tendsign 4.0

Lathund - Konfiguration av PLC och dator

SPRINT-HANDBOK (version 0.4)

Installationsanvisning för Su Officemallar 2003 För PC

Rüdiger Dorn TL XXXXX. Ett fängslande och äventyrligt brickläggningsspel för 2 4 skattjägare från 8 år.

Transkript:

Kravspecifikation Fyra i rad Javaprojekt inom TDDC32 Version 2.0 Datum 2008-05-19 Dokumentnummer 20080215 Sammanfattning Detta är en kravspecifikation över det klassiska spelet Fyra-i-rad programmerat i Java. Spelet kommer att ha ett grafiskt gränssnitt mot användaren. I spelet ingår tre moduler: grafiskt gränssnitt, regelverk och AI. Gruppen som utför projektet består av tre programmerare som ansvarar för varsin modul. Kravspecifikationen går detaljerat igenom de olika modulerna och tar även upp hur projektet skall genomföras och dokumenteras.

Innehållsförteckning 1 Introduktion... 3 2 Dokumentkonventioner... 3 3 Systembeskrivning... 3 4 Systemfunktioner... 4 4.1 Grafiskt gränssnitt... 4 4.2 Regelverket... 4 4.3 AI... 4 4.4 Användargränssnitt... 5 5 Ej funktionsrelaterade kravspecifikationer... 6 6 Permanent datalagring... 6 7 Begränsningar... 6 2

1 Introduktion Fyra i rad är ett klassiskt spel som de flesta någon gång stött på. Spelet är strategiskt och går relativt fort att spela eftersom spelytan är begränsad. Detta medför att en spelomgång är över när ytan blir full eller när någon spelare får fyra i rad. Fyra i rad är enkelt att spela men kan samtidigt vara knivigt att vinna beroende på hur avancerad motståndare man har. Det är till och med så att det för den spelare som börjar finns en optimal strategi så att denne alltid kan vinna. Tanken är dock inte att den datorstyrda motspelaren ska vara så duktig. Vidare ska möjligheten finnas att kunna spela mot en annan spelare vid samma dator. Tanken är att det ska vara enkelt att spela och förstå samtidigt som det ska vara snyggt och trivsamt. Spelet ska byggas upp på så vis att det inte blir alltför krångligt för oss som programmerar vilket även innebär att koden ska vara lättförståelig för andra som kan JAVAspråk. 2 Dokumentkonventioner Dokumenthanteringen i projektet kommer att skötas på följande sätt: Varje textdokument i projektet ges ett namn och ett dokumentnummer som är datumet för den dag dokumentet först skapas (ÅÅÅÅMMDD) samt ett versionsnummer som ursprungligen är 0.0 och sedan ökar på höger sida om punkten med ett steg i taget enligt 0.1, 0.2... 0.11, 0.12 etc. Varje gång ett dokument skickas in till ledningen för kursen TDDC32 nollställs höger sida om punkten och den vänstra sidan ökar med ett t.ex. 1.0, 2.0 etc. Efter granskning kommer versionsnumret sedan fortsätta att öka på höger sida enligt tidigare. Detta görs direkt när filen öppnas för att på så sätt behålla gamla versioner av dokumenten vid eventuella filproblem. När arbetet med textdokumentet är klart kommer det att laddas upp på gruppens grupportal på http://groups.google.com/group/javaroligt för att komma hela gruppen till del. De klassdiagram som kommer att göras i detta projekt kommer att följa UML-standarden. All kommunikation i projektet kommer att vara på svenska. Ytterligare dokumentkonventioner kommer att tilläggas till detta dokument om och när behov uppstår 3 Systembeskrivning Systemet kan utföra spelet fyra-i-rad och man skall dels kunna spela två spelare mot varandra på samma dator och det ska även finnas en datormotståndare där man kan ställa in olika svårighetsgrader. Dessutom skall två datormotståndare med olika eller samma svårighetsgrad kunna spela mot varandra. Fyra-i-rad spelas på en spelplan med 7 lodräta rader där marker kan släppas ner och staplas upp till sex nivåer högt. Spelplanen har alltså 42 platser för marker och varje spelare har 21 marker vardera i varsin färg. Spelarna turas om att börja och lägger sedan en marker åt gången i valfri lodrätt rad till att antingen hela spelplanen fylls upp eller att en av spelarna har lyckats få minst 4 marker i rad, 3

antingen vågrätt, lodrätt eller diagonalt. Det ska även vara möjligt att starta om spelet utan att någon av spelarna vunnit eller att spelplanen blivit full. 4 Systemfunktioner Systemet kommer att delas upp i tre moduler: 1. Grafiskt gränssnitt som sköter själva presentationen av spelet för användare. Se användargränssnitt nedan. 2. Regelverk som styr spelplanen och kontrollerar att endast tillåtna drag utförs samt när spelet är slut och då vem som vunnit eller om det blivit oavgjort. 3. AI som gör det möjligt att spela mot en datormotståndare. Mellan det grafiska gränssnittet och regelverket kommer det att ske kommunikation genom att användaren använder det grafiska gränssnittet för att styra spelet. Regelverket talar sedan om för användaren vad som händer genom det grafiska gränssnittet. Spelet skall gå att använda med endast dessa två moduler om man bara vill spela mot en annan person. Vid spel mot en datormotståndare ingår den tredje modulen, AI, som kommunicerar med regelverket för att tala om hur datorn vill göra sina drag. 4.1 Grafiskt gränssnitt Till att börja med behövs det funktioner för att rita upp den statiska grafiken, startläget för spelet. Sedan behövs funktioner för att ta emot användarens musklick på knapparna samt funktioner för att följa musmarkörens rörelser över spelbrädet för att styra brickorna. Dessutom behövs funktioner som uppdaterar brädet genom att rensa och placeras ut nya brickor samt ändra utseende vid vinst. Vid de fåtal tillfällen man får fem i rad kommer dock endast fyra marker att markeras. 4.2 Regelverket Till att börja med behövs funktioner som hanterar spelbrädet, någon form av matris som håller reda på brickornas läge, samt hanterar brickorna, vilken bricka som tillhör vilken spelare. Sedan behövs funktioner som lyssnar på spelarens input och kontrollerar om det är ett tillåtet val spelaren har gjort. Därefter skall det finnas funktioner som skapar ett nytt spel utifrån de val spelaren har gjort. Till slut måste det finnas funktioner för att kontrollera om någon spelare har vunnit, om brädet är fullt och det blivit oavgjort eller om spelet kan fortsätta. 4.3 AI AI:n delas in i tre delar som tar hand om varsin svårighetsgrad. Den lättaste svårighetsgraden kommer endast att slumpmässigt lägga ut brickorna. För detta behövs en funktion som talar om för regelverket vilken kolumn som väljs. Dessutom behöver AI:n kunna ta emot information från regelverket om kolumnen är full och göra ett nytt val. De två andra svårighetsgraderna behöver dessutom ha funktioner som på något sätt värderar olika möjliga drag och samtidigt tar hänsyn till hur motståndaren spelar. Det behövs alltså även en funktion som tar emot information från regelverket om hur motståndaren spelar. 4

4.4 Användargränssnitt Bilden nedan visar hur gränssnittet kommer att se ut. Spelaren börjar med att ange motståndare Dator Lätt, Dator Medel, Dator Svår eller Människa, därefter trycker man på knappen Starta nytt spel. Initialt börjar Spelare 1 som är förinställt på människa och Spelare 2 är förinställt som Dator Lätt (se demonstration av inställningar i figur 2). Vill användaren spela med annorlunda inställningar måste detta väljas genom att trycka på Spel, välja Spelare 1 och Spelare 2 och sedan trycka på knappen Starta nytt spel innan spel med nya inställningar kan genomföras. En dialogruta kommer då upp som frågar om man vill avsluta pågående spel för att börja ett nytt; denna dyker även upp användaren trycker på Starta nytt spel (figur 2) under ett pågående spel. Figur 1. Starta nytt spel Figur 2. Inställning av spelare I menyn Hjälp kan man trycka på Spelregler som tar fram en kort text om de allmänna reglerna eller Om som ger kort information om spelet. Dessa kan man trycka på när som helst, de påverkar inte ett pågående spel. I figur 3 nedan illustreras hur Hjälp ska se ut och som exempel visas informationsrutan för Spelregler. Figur 3. Hjälpmenyn och information om spelregler Detta spel styrs helt och hållet med musen förutom två kortkommandon som finns för Starta nytt spel och Avsluta, dessa visas i figur 1. Alla knappar styrs med musklick och när spelet är igång styrs brickorna med musen. Innan en bricka har släppts ner kommer den att dyka upp ovanför spelbrädet över en kolumn. Brickan följer musmarkören i x-led ovanför brädet oavsett var i kolumnen användaren har musmarkören. När användaren klickar med musen ramlar bricka ner i aktuell kolumn förutsatt att den inte är full med brickor redan, skulle det vara fallet kommer ett felmeddelande upp. 5

Efter att brickan släppts ner byter brickan som är över brädet färg för att illustrera motståndarens tur vilket upprepas fram till vinst eller oavgjort spel. Vid vinst eller oavgjort spel ser det ut enligt figur 4 nedan. Figur 4. Utseende vid vinst respektive oavgjort spel 5 Ej funktionsrelaterade kravspecifikationer Den datorstyrda spelaren bör ej ta för god tid på sig. 6 Permanent datalagring Detta är inte aktuellt för detta projekt eftersom spelresultat inte ska lagras. 7 Begränsningar Spelets AI kommer att ha tre svårighetsgrader där den svåraste inte kommer vara den optimala lösningsgången i fyra i rad. Vi kommer alltså inte lägga fokus på att hitta den matematiskt optimala spelstilen för AI. GUI:t kommer ej innehålla animationer för när markerna ramlar ned. Det kommer inte att finnas någon funktion som lagrar highscore från olika spelomgångar med olika spelare eftersom att det inte delas ut någon poäng i spelet. 6