SLUTRAPPORT: TEXAS HOLDEM 4 FRIENDS

Relevanta dokument
[SLUTRAPPORT: DRAWPIXLZ (ANDROID-APP)] Slutrapport. Författare: Zlatko Ladan. Program: Utvecklare av Digitala Tjänster 180P

LNU INDIVIDUELLT MJUKVARUUTVECKLINGSPROJEKT. Honey Hunter. Androidspel. Martin Karlsson 1/17/2014

Joakim Jonsson jj222kc. Minesweeper. Individuellt Mjukvaruprojekt Joakim Jonsson

Mina listor. En Android-applikation. Rickard Karlsson Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu.

Slutrapport för Pacman

SLUTRAPPORT RUNE TENNESMED WEBBSHOP

Erik Holmström Projektrapport- KalmarKendo Erik Holmström UD12 Individuellt mjukvaruutvecklingsprojekt

Slutrapport för SquareShooter

ToDo ios-applikation. Mikael Östman. Mikael Östman - mo22ez Linnéuniversitetet

Filhanterare med AngularJS

Slutrapport Get it going contracts

Mjukvaruprojekt Onlinebooks

Tepz klon. - Projektrapport. Linnéuniversitetet, Individuellt mjukvaruutvecklingsprojekt Janina Bergström, WP12 Distans

Ett spel skapat av Albin Wahlstrand

Slutrapport YUNSIT.se Portfolio/blogg

Collector en Android-app för att samla saker. Kim Grönqvist (kg222dk) Slutrapport

Erik Lundgren GarageLoppisen.se. Projekt i kursen Individuellt Mjukvaruutvecklingsprojekt, 1dv430

Slutrapport. Super Mario klon. Tomas Wallin tw222bv WP

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10

Rune Tennesmed. Oskar Norling 1DV430. Individuellt Mjukvaruutvecklingsprojekt 1DV430 Webbprogrammerare H12 Oskar Norling

SEGLAISOLEN.SE En Wordpres Webbsajt

Thomas Padron-Mccarthy Mobila applikationer med Android, 7.5 hp (Distans) (DT107G ) Antal svarande = 13. Svarsfrekvens i procent = 27.

Slutrapport Thunderbug

Dagbok Mikael Lyck

Projektarbete myshop. Sandra Öigaard so222es WP12 Individuellt mjukvaruutvecklingsprojekt

Gillakampen. av Merkur Hoxha WP

Space Invaders - Slutrapport

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI

Högskolan i Gävle. Introduktion till att skapa appar för Android VT Eat App! Jacob Gavin

Thomas Padron-Mccarthy Mobila applikationer med Android, 7.5 hp (Distans) (DT107G ) Antal svarande = 11. Svarsfrekvens i procent = 14.

GYMKEEPER ANDREAS SÖDERSTRÖM

SLUTRAPPORT. Sebastianlund.com. Individuellt mjukvaruutveckingsprojekt, 1DV430. Författare: Sebastian Lund WP11 Datum:

Slutrapport. Interaktiv Mjukvaruutvecklingsprojekt. HIF-Spelet. Ett XNA-spel. Christian Ulf

Thomas Padron-Mccarthy Datateknik B, Mobila applikationer med Android, 7.5 hp (Distans) (DT ) Antal svarande = 18

Objekt-orienterad Programmering och Design. TDA551 Alex Gerdes, HT-2016

Priskamp. En prisjämförelsesite Björn Larsson

Slutrapport för JMDB.COM. Johan Wibjer

Rafel Ridha Projektdefinition

Har du läst kursen på Campus eller distans Campus 8 53% Distans 7 47%

Den här guiden går därför genom de inställningar som kan göras för att underlätta användningen för en nybörjare och speciellt för seniorer.

SMULTRON. Fredrik Li, Ester, Anders, Jessica, Philip. Malmö Högskola Konst Kultur Kommunikation OOP5 - Mobile Applications IDK 05 - April/Maj 2007

Redogörelse för utvecklingsprocessen av spelet The Legend of Chalmers

hannalabom.se Alexandra Jonasson Aj222im

VIDEODAGBOKEN. Individuellt Mjukvaruutvecklingsprojekt. En dagbok i videoform online. Robert Forsgren (rf222ce) UD

Labrapport över Rumbokningssytemet Grupp:1

Idrottsapen. 1. Inledning. 2. Mål och syfte. 3. Projektbeskrivning

Objekt-orienterad Programmering och Design. TDA552 Alex Gerdes, HT-2018

Java Programmer for JDK Developer for Java 2 Platform 2002

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

Ta bort aviseringar genom att gå till inställningar och Aviseringar, gå genom tillsammans vilka appar som man vill att skall plinga till:

Haris Kljajic Individuellt mjukvaruprojekt. Projekt Rapport. Insatsplutonen. Haris Kljajic UD11

RemoteBud. Inlämnas: Patrik Johnsson, e01pjo Viktor Karlsson, e01vk

Endless shooter neon - Post mortem

STADSLEDNINGSKONTORET SOA SDK IT-AVDELNINGEN VERSION 2.1. Läs mig först. Stockholms stad SOA-plattform. Sida 1 (5)

TUTORIAL: SAMLING & KONSOLL

Process- och metodreflektion Grupp 5

Visuell GUI Testning

Skissa och gissa. Individuellt Mjukvaruutvecklingsprojekt, 1DV430. Christian Nilsson, cn222gc, WP

Projektanvisning. Webbsideprojekt. Författare: Johan Leitet Version: 2 Datum:

TDDC74 - Projektspecifikation

SLUTRAPPORT WEBBPROJEKT 1

Hi-Fi Prototyping + laborationsgenomgång & verktyg

Deltagarnas utvärdering av 23 saker

Röna fingrar e gött o ha:) SLUTRAPPORT BUDGETSYSTEM LNU

Grafisk profil för digitala gränssnitt MAJ 2019

Arbeta med bilder. Lathund kring hur du fixar till bilder från digitalkamera eller Internet så att de går att använda i ett kommunikationsprogram.

Laboration i datateknik

Opponenter: Erik Hansen Mats Almgren Respondent: Martin Landälv ioftpd-verktyg

Edlund, Louise Ekdahl, Johan Fernström, Jesper Jansson, Fredrik Larsson, Helene Malmén, Per Sölen, Baran Wiksten, Oskar

Thomas Padron-Mccarthy Datateknik B, Mobila applikationer med Android, 7.5 hp (Distans) (DT ) Antal svarande = 14

Mälardalens högskola

En Single-Page Application för små barn, barnens föräldrar samt en och annan mormor

Slutrapport - Intranät

Widgetguiden Vad är Publits widgetshop?

Javautvecklare. Utbildningsfakta. 400 YH-poäng, 2 år

Tor Sterner-Johansson Thomas Johansson Daniel Henriksson

Utveckling av ett 2d spel i Java. Examensarbete av: Rickard Borg, EDTD13 Examensår: 2016 Opponent: Jesper Larsson Handledare: Jimmy Jansson

PlantPuppy Räddaren för den som inte kan hålla växterna vid liv

Timo Tidtavla Marcus Reldin Industridesign 2007

Bloggdesign { ALEXANDRA 299:- 359:- Lilla Designpaketet. Designpaketet Mellan. Prislista: Designpaket

TETRIS. LTH, Campus Helsingborg EITA15 Digitala System

ZWCAD har stöd för VBA och Lisp program så alla funktioner som ni tidigare har skapat kan användas direkt utan anpassning.

Slutrapport. APFy.me

TPFD - TestPlan Före Design BESKRIVNING AV AKTIVITETER

Träningsdagbok. Av Erik Stintzing. Inom ämnet Idrott och hälsa

Strukturering och Planläggning

Utveckling av Läsaren

HexaFlip. Kravspecifikation

ECOKEY. Ecokey - Nyckeln till en bättre miljö.

Datatal Flexi Presentity

Enchipsdatorer med tillämpningar LABORATION 7, ROBOT

Generering av L-system fraktaler med Processing.js

HJÄLPFIL: ELEVAPPLIKATIONEN

Linux som utvecklingsmiljö

Syfte : Lära sig objektorienterad programmering Syfte : Lära sig programmering i ett OO-språk vilket?

Designteam 9 s designförslag

Universe Engine Rapport

Projektuppgift - Biblioteket

Talsystem Teori. Vad är talsystem? Av Johan Johansson

Rapport Digitala Projekt EITF11 Grupp 4 Axel Sundberg, Jakob Wennerström Gille Handledare: Bertil Lindvall

Transkript:

SLUTRAPPORT: TEXAS HOLDEM 4 FRIENDS Individuellt Mjukvaruutvecklingsprojekt (Utvecklare av digitala tjänster) Den 1 juni 2011

ABSTRAKT Rapporten tar upp positiva och negativa erfarenheter som jag erhållit då jag under 10 veckor har arbetat med att skapa en pokerapplikation för att spela Texas holdem på Androidenheter. Det som särskiljer min applikation från de som redan finns att få tag på idag är att jag har skapat en applikation som gör det möjligt att spela flera personer på en Androidenhet. Genom det här projektet har jag fått erfara hur viktigt det är med bra testrutiner. Det kan leda till stora problem och vara väldigt tidskrävande att hitta buggar för en funktion flera veckor efter att man har implementerat funktionen. Jag har även fått ökade kunskaper om versionshantering, att uppskatta tid och hur man arbetar rent allmänt inom mjukvaruprojekt. Projektet har ökat mina kunskaper om Android-plattformen avsevärt och resulterat i en produkt med stora vidareutvecklingsmöjligheter. 2

FÖRORD Idén om att göra en Androidapplikation där flera personer kan spela Texas holdem på en enhet kom jag på några veckor innan kursen Individuellt Mjukvaruutvecklingsprojekt startade. Då jag upptäckte att det inte fanns någon liknande applikation bestämde jag mig för att skapa en applikation för detta under den ovan nämnda kursen. 3

INNEHÅLLSFÖRTECKNING Inledning/bakgrund 5 Positiva Erfarenheter 6 Negativa Erfarenheter 7 Sammanfattning 8 4

INLEDNING/BAKGRUND Projektets mål har varit att skapa en applikation för att spela Texas holdem ( namngiven Texas Holdem 4 Friends ) som sedan kan vidareutvecklas efter projektets slut. Ett annat mål med projektet var att få ökad kunskap inom Androidutveckling och hur man kan skapa applikationer med enkel 2d grafik anpassad för mobila skärmar. Applikationen skrevs i programmeringspråket java med specialanpassade api:er anpassade för Androidsystemet. Jag använde utvecklingsmiljön Eclipse (vilken rekommenderas av Google som står bakom Android) tillsammans med pluginet ADT som anpassar Eclipse för Androidutveckling och kopplar ihop Android SDK med Eclipse. För att testa applikationen på olika Androidversioner och skärmstorlekar har jag använt mig av ett verktyg för att skapa emulatorer som följer med Android SDK. Gränsnittet i applikationen är uppstrukturerat i XML och för att visa de mer grafiska bitarna (d.v.s pokerbordet, korten och spelarinformation) används ett biliotek i Android anpassat för att skapa enklare 2d grafik. De två första veckorna av projektet arbetade jag med att lära mig mer om hur Androidutveckling går till, hur Androidsystemet är uppbyggt och skapade lite olika prototyper. När jag väl började implementationen av själva applikationen jobbade jag först med att få ett fungerande grundläggande spelflöde vilket bland annat bestod av att generera kort, implementera de olika val som en spelare ska kunna göra och byta mellan spelare efter ett mönster enligt Texas holdems regler. Sedan arbetade jag med funktionen för att avgöra en vinnare efter varje hand samtidigt som jag tittade på olika grafiska alternativ. Då jag hade skapat en fungerande funktion för att avgöra vinnaren av en hand påbörjade jag implementationen av grafiken. Avslutningsvis utnyttjades de sista två veckorna av projektet mest till finputsning och att fixa diverse buggar. Eftersom att inte tiden räckte till för att göra en korrekt implementation av hur en situation då en spelare vill syna en höjning som spelaren inte har råd att syna ska hanteras fick jag lösa detta genom att göra en specialversion som innebär att en spelare kan sätta sig i skuld (d.v.s få ett negativt antal pokermarker) genom att syna en höjning som han eller hon egentligen inte har råd att syna. Detta är inte helt i linje med Texas holdems regler men göra applikationen spelbar på ett relativt rättvist sätt. 5

POSITIVA ERFARENHETER Innan projektet startade hade jag endast gjort små enkla prototyper i Android och hade väldigt ytliga kunksaper i hur plattformen fungerade. Efter att nu har jobbat med Android under 10 veckor kan jag påstå att jag har börjat känna mig mer bekväm i hur systemet är uppbyggt och hur man kan utveckla applikationer med enklare 2d grafik för plattformen. Även fast jag är ganska dålig på design och färger samt att grafiken är väldigt enkel så anser jag att denna del gick smidigt och då jag inte använt några bilder över huvud taget (förutom till ikonen) i applikationen utan ritar allt direkt i applikationen i relationen till enhetens höjd och bredd med hjälp av olika simpla former som finns att tillgå i ett Android-bibliotek för 2d grafik blir det lättare att skala grafiken för att det ska se bra ut på olika enheter (visualiseringen av de olika valörerna på korten löste jag genom att använda ett typsnitt som innehåller de olika symbolerna) och även om slutresultatet på denna punkt blev långt ifrån perfekt blev det bättre än om jag hade använt bilder. Anledningen till varför den grafiska biten visade sig gå smidigt är troligtvis för att jag var väl förberedd innan jag började implementationen genom att jag hade tittat på många exempel och tutorials på internet och läst om 2d-grafik för Android i böcker. Till framtida projekt ska jag därför i allmänhet bli bättre på att göra lite research och planering innan jag börjar skriva kod. Jag uppfattar även att implementationen som helhet var lyckad och förutom vid implementationen för att avgöra vinnaren av en hand fastnade jag aldrig på något specifik moment under en längre tid. Anledningen till varför implementationen gick relativt smidigt bedömer jag har att göra med att jag hela tiden strävade efter att ha en väl strukturerad och kommenterad kod med bra klass, metod och variabelnamn så att jag senare ska kunna gå tillbaka och enkelt förstå vad till exempel en specifik metod gör. Jag har även insett hur oerhört viktigt det är att ha bra förståelse för den kod man skriver och att det inte fungerar att försöka sitta och skriva av kod från internet som man inte har koll på vad den gör. 6

NEGATIVA ERFARENHETER Innan jag började med projektet trodde jag att jag skulle ha en fungerande spelbar version av applikationen efter ungefär fyra veckors tid och att jag resten av tiden skulle kunna sitta och finputsa på grafiken. Detta visade sig vara ett grovt felaktigt antagande och det var först efter 8 veckor som jag lyckades få fram en hyffsat fungerande spelbar version som dock fotfarande var väldigt buggig. Utifrån detta har jag lärt mig att i framtida projekt ha en mer realistisk syn då jag startar upp projektet på hur långt tid saker och ting faktiskt kommer att ta. Det var inte möjligt som jag först hade väntat mig att sitta 40 timmar i veckan med detta projektet och fortfarande hinna med övriga skolarbeten. Ett stort problem under projektet har varit testning, jag har haft problem med att testa så att de funktioner jag implementerat verkligen fungerar i alla olika tillfällen och lägen som applikationen kan befinna sig i. För att jämföra kort och avgöra vinnaren för en hand skrev jag ett ganska omfattande enhetstest vilket gjorde det möjligt att testa funktionen automatiskt. Men enhetstestningen tog långt tid att skriva och med begränsad tid och kunskap hade jag inte möjlighet att skriva fler enhetstester som testade mer avancerade funktioner som spelflöde, att stora och lilla mörken tilldelas rätt o.s.v vilket har inneburit att jag har haft problem att testa dessa funktioner. Jag har använt mig av ett testfall som är skrivet för att ge en beskrivning för hur jag ska testa spelflödet väldigt flitigt och då det visade sig att man får in en stor mängd funktionallitet och olika kombinationer av funktioner har det testfallet varit till stor hjälp. Testfallet täcker dock inte allt, vilket har inneburit att jag i efterhand då jag har spelat spelet hittat en mängd olika konstiga buggar som jag inte vet vad i koden de kommer ifrån och det har gått åt onödigt mycket tid för att hitta sådana fel och rätta till dem. Lärdomen av detta är att i framtida projekt skriva fler testfall som är lätta och tar kort tid att genomföra (gärna ganska snarlika men med några betydande skillnader så att man lätt kan hitta vad olika fel beror på). Sedan kanske det hade visat sig så att även om avancerade enhetetstester tar långt tid att skapa så hade jag kanske sparat in den tiden genom att lätt hitta fel i applikationen och var i koden felet finns. 7

SAMMANFATTNING Jag tycker att det har varit ett lyckat projekt då jag har uppnått samtliga av mina krav (även om det finns utrymme för förbättring) och lyckats göra en spelbar version av Texas holdem i min applikation vilket är ett resultat jag är nöjd med. Jag tror att det finns en marknad och stor utvecklingspotential (både vad gäller finslipning av redan existerande funktioner och tillägg av nya) för den produkt som jag har skapat. Exempel på en funktioner som hade varit intressanta att skapa är en funktion som gör det möjligt att koppla ihop ett antal enheter och sedan spela på var sin enhet istället för att alla ska spela på en enda. Sedan finns det en del funktioner som redan finns i spelet men som skulle kunna förbättras, som att göra det möjligt för användaren att ställa in inställningar själv för saker som lilla och stora mörken, hur många marker varje spelare ska börja med o.s.v. Detta är funktioner jag vill implementera i framtiden och tanken är att jag ska fortsätta utveckla applikationen och så småningom lägga ut den på Android Market. 8