Högskolan på Åland serienummer 2013:42. Informationsteknik. Mariehamn 2013 ISSN

Storlek: px
Starta visningen från sidan:

Download "Högskolan på Åland serienummer 2013:42. Informationsteknik. Mariehamn 2013 ISSN 1458-1531"

Transkript

1 Nätpokerboten Mats Enqvist Högskolan på Åland serienummer 2013:42 Informationsteknik Mariehamn 2013 ISSN Mariehamn 2009

2 Examensarbete Högskolan på Åland Utbildningsprogram: Författare: Arbetets namn: Handledare: Uppdragsgivare: - Informationsteknik Mats Enqvist Nätpokerboten Agneta Eriksson-Granskog Abstrakt: Syftet med denna uppsats är att undersöka och utveckla olika metoder för att få en fungerande online pokerbot. En bot är ett automatiserat program som utför vad den blivit programmerad till att göra, utan att en användare behöver styra eller övervaka programmet. Även om det är en pokerbot som jag valt att fokusera på så är det meningen att uppsatsen skall ge en idé om hur man kunde automatisera andra program och inte bara ett pokerspel. Nyckelord (sökord): Robot, automation, minnesläsning, poker Högskolans serienummer: ISSN: Språk: Sidantal: 2013: Svenska 27 Inlämningsdatum: Presentationsdatum: Datum för godkännande:

3 Degree Thesis Högskolanpå Åland / Åland University of Applied Sciences Study program: Author: Title: Academic Supervisor: Technical Supervisor: - Information Technology Mats Enqvist Online poker bot Agneta Eriksson-Granskog Abstract: The purpose of this essay is to examine different methods to develop an online poker bot. A bot is a automated program that does what it has been programmed to do, without the need of control or supervision by the user. Even if the focus in this essay is poker, the point is to give an idea of how to automate other programs and not only a online poker game. Key words: Robot, automation, memory reading, poker Serial number: ISSN: Language: Number of pages: 2013: Swedish 27 Handed in: Date of presentation: Approved on:

4 INNEHÅLL 1. Inledning Motiv Syfte Metod Avgränsningar Spelet Texas hold'em Struktur och funktionalitet för pokerboten Åtkomst av data Skärmskrapning Exempel på skärmskrapning i Texas hold'em Minnesläsning Minnesläsning i Java Exempel: läsning av de gemensamma korten i pokerspelet Val av dataåtkomstmetod Kommunikation mot pokerklient Undvika upptäckt Metoder för att avslöja pokerbotar Speltid Timings Spionprogram i pokerklienten CAPTCHA Spelmönster Slutord Litteraturförteckning... 27

5 1. Inledning 1.1. Motiv Valet av en pokerbot är en kombination av flera intressen. Automation är ett intressant ämne och det är något som eftersträvas inom IT-branschen men även inom andra områden. Poker är något av ett fritidsintresse för mig och att utveckla en bot som automatiskt spelar poker kändes som en bra utmaning Syfte Syftet med detta arbete är att utveckla och dokumentera en pokerbot. En stor del av arbetet är att undersöka och testa olika metoder för att få boten att fungera. Även om jag valt att fokusera på en pokerbot är det meningen att uppsatsen skall ge en idé om hur man kan tillämpa dessa metoder och automatisera inom andra områden lika väl Metod Som programmeringsspråk kommer Java tillsammans med editorn NetBeans att användas. Valet kändes naturligt då jag har erfarenhet av Java och NetBeans men främst på grund av vissa inbyggda funktioner i Java, till exempel Robotklassen. Robotklassen innehåller funktionalitet såsom läsning av pixlar och styrning av mus och tangentbord som annars skulle vara tvunget att byggas upp från grunden eller lånas från externa bibliotek. Arbetssättet bygger på att undersöka teoretiskt, implementera och testa de olika metoderna som kan användas för att få funktionaliteten en pokerbot behöver för att fungera. Som litteratur används i första hand internet samt böcker inom området. 3

6 1.4. Avgränsningar På grund av projektets omfattning har vissa avgränsningar gjorts. En pokerbot kan göras på en hel del olika sätt och jag har valt att fokusera på gränssnittet från boten till omvärlden. Med andra ord hur boten tar reda på vad som händer i pokerprogrammet och hur den skall kommunicera tillbaka. En enkel pokerintelligens kommer att utvecklas för att testa boten i sin helhet men det är inget som kommer att nämnas i någon större utsträckning. Artificiell pokerintelligens är ett välstuderat området, teorier och studier kan hittas i mängder på nätet och böcker så jag valde därför att inte behandla det i uppsatsen. En del pokersidor förbjuder användningen av pokerbotar och därför kommer teorier för hur man undviker upptäckt att diskuteras och ligga i baktanke under utvecklingen av boten. Den här uppsatsen kommer inte ta någon ställning till användning av botar på sidor som förbjuder det. Eftersom det finns en hel del olika typer av pokerspel och ännu fler aktörer av online poker har jag valt att fokusera på ett specifikt spel, Texas hold'em, på en specifik pokersida. Att göra en pokerbot som kan spela olika spel på olika sidor skulle kräva oerhörda mängder av arbete. Men detta extra arbete skulle inte tillföra det här arbetet mycket eftersom det egentligen bara är små variationer som tas i beaktande från fall till fall och i grunden fungerar en pokerbot likadant oavsett spel eller vilken sida som används. 2. Spelet Texas hold'em För att förstå hur en pokerbot opererar och vad den skall klara av behövs lite pokerkunskap. Det finns flera olika pokerspel och ett av de populärare är Texas Hold'em (Glimne, 2005). Texas Hold'em är ursprungligen ett bordsspel men online versionen är i princip samma sak. Spelet finns i några varianter men alla fungerar på liknande sätt. Figur 1 visar en illustration av Texas hold'em. 4

7 Figur 1 Texas hold'em (Drm0hr, 2012) Texas Hold'em kan spelas med två till tio spelare. Spelet körs i omgångar, varje omgång börjar med att varje spelare tilldelas två kort. Dessa två kort kallas hålkort och spelarna får bara se sina egna kort. Dealerknappen (button i figuren) roteras medurs efter varje omgång. Spelarna direkt efter knappen måste betala en liten mörk och stor mörk (Small Blind och Big Blind i figuren). Spelaren efter stor mörk är alltid först att agera. Det finns fyra drag man kan göra: 1. Lägga sig. Detta gör man oftast om man har dåliga kort och inte vill vara med i omgången. 2. Syna. För att vara med i spelet måste man syna, alltså betala lika mycket som nuvarande insats ligger på. Om ingen har höjt insatsen är det stor mörk man måste betala. 3. Höja. Gillar man sina kort kan man höja insatsen. Då måste alla spelare som vill vara med betala samma insats. 4. Check. Om ingen har höjt insatsen kan t.ex. stor mörk välja att checka eftersom hon eller han redan betalat insatsen. När alla spelare antingen lagt sig eller synat kommer de första tre gemensamma korten. Dessa tre kort delas synliga och alla kan använda dessa kort för att bilda en pokerhand. En till runda av antingen checkar, höjningar, syn och läggningar görs och nästa 5

8 gemensamma kort delas ut. Ytterligare en omgång av samma val görs och sista kortet delas ut. Nu sker den sista omgången där man kan höja, checka, syna eller lägga sig. Om flera spelare är med i slutet visas korten och vinnaren avgörs. Vinnaren är den som har den starkaste femkortshanden av de fem synliga och de två egna hålkorten. Spelet behöver inte alltid komma så långt som till sista kortet och kan avgöras genom att få alla andra spelare att lägga sig. Då vinner man potten utan att behöva visa sina kort. Texas Hold'em fungerar likadant online och spelas oftast med ett pokerprogram som laddas ner från pokersidan man valt att spela på. Det grafiska gränssnittet i pokerklienten visar all information som finns tillgänglig och boten behöver läsa precis samma information som en person läser från pokerfönstret. Figur 2 nedan visar ett typiskt pokerfönster i en pokerklient. Vad en pokerbot behöver läsa från klienten beror på hur komplex den görs. En bot som bara lägger sig hela tiden behöver bara kolla när läggningsknappen går att trycka på. En mer avancerad bot vill så klart veta mycket mer än så. Följande information måste kunna läsas från pokerklienten: - Hålkorten och de gemensamma korten på bordet - Positionen av knappen - Hur många spelare som finns totalt på bordet - Hur många av dessa spelare som fortfarande är med i spelet - Potten (totala summan av insatserna) - Motståndarbeteende 6

9 Figur 2 Illustration av ett pokerfönster i en nätpokerklient Hålkorten (eller starthanden), de två korten som delas ut i början av rundan, måste läsas för att avgöra om det är värt att alls delta i omgången. Vad som är bra starthänder kan diskuteras men vissa händer har helt enkelt lägre chans att få en bättre hand än motståndarna. Positionen har en viktig roll i Texas Hold'em. Dealerknappens position avgör vem som är först att agera. Att agera sist är en stor fördel eftersom man får se vad alla andra gör före man själv gör sitt val. Antalet spelare som är med har en matematisk inverkan, ju fler spelare som är med ju större är chansen att någon har en bättre hand, vilket också påverkar hur spelet spelas. Om pokerboten inte är programmerad med strategier för varierat antal motståndare måste pokerboten byta bord eftersom strategier för ett spel mot en eller två motståndare skiljer sig avsevärt jämfört med ett fullt bord. 7

10 Även den totala pottstorleken har en matematiskt inverkan på spelet. Detta kan kanske enklast förklaras med ett exempel: Om den totala potten är 20 och någon höjer med ytterligare 20 måste 50% av den totala pottstorleken betalas för att fortsätta i spelet, om chansen att vinna är mindre än 50% är det då inte värt att fortsätta eftersom det helt enkelt inte kommer att vara lönsamt i längden att spela. Att följa med vem som synar och vem som höjer och samtidigt studera strukturen på de gemensamma korten kan ge ledtrådar om vilka kort dessa spelare sitter på, det är viktigt att studera spelarbeteende ifall de kan ge ledtrådar om deras handstyrka. För att få all denna information från pokerklienten och för att kommunicera tillbaka till klienten finns det en del möjliga metoder. Det är just dessa metoder som kommer att undersökas närmare i kommande kapitel. Vinstpotentialen för en pokerbot finns på grund av att en dator kan räkna exakta odds baserat på kort och annan information och göra matematiskt korrekta val. En vanlig mänsklig spelare kan eller hinner inte räkna ut samma information. Även om vinstmarginalerna kan vara små för en bot så blir den aldrig trött eller uttråkad och kan spela i all evighet. 8

11 3. Struktur och funktionalitet för pokerboten Körningen av en pokerbot kan beskrivas med tre faser: 1. Inläsning 2. Beräkning 3. Utförande Figur 3 visar ett tänkbart flödesschema för dessa tre faser i pokerboten. Figur 3 Pokerbotens tre faser 9

12 Inläsningsfasen består av att samla in all information som behövs för att boten skall kunna räkna ut korrekta odds. Ju mer information som kan samlas från pokerspelet desto bättre beslut kan räknas ut. Det finns en mängd olika metoder för att samla denna data och några av dessa kommer att undersökas närmare. Beräkningsfasen handlar om att räkna ut odds och därmed rätt beslut i pokerspelet. Utförandefasen handlar om att utföra beslutet i pokerklienten. Detta består av att göra drag i själva spelet men en helautonom bot måste också klara av att stänga och öppna nya bord. Eftersom en stor del av arbetet bygger på att prova olika metoder behövs ett modulärt angreppssätt. Målet är att lätt kunna byta ut en metod mot en annan utan att behöva koda om stora delar av programmet. Klassdiagrammet i figur 4 visar ett förslag på hur en pokerbot kunde byggas för att tillfredställa dessa krav. Det hela fungerar genom att skapa ett objekt av typen bot. Bot objektet använder sig av gränssnitten Gatherer och OutputHandler för att agera med pokerklienten. Vad t.ex. Gathererobjektet är av för typ spelar ingen roll, meningen är att den kan bytas ut mot valfri metod förutsatt att den implementerar gränssnittet. På så sätt kan man växla mellan t.ex. minnesläsning eller skärmskrapning. För mer information om objekt och gränssnitt i Java se (Niemeyer & Knudsen, 2005). Pokerklienter tillåter ofta att flera bord öppnas och spelas på samtidigt. För att maximera vinsten borde då också boten klara av flera bord på samma gång. För att göra detta skapas flera botobjekt, varje bot kör sin egen tråd och sköter sitt eget bord. En viss kommunikation krävs mellan botobjekten så de inte försöker göra drag i pokerklienten för snabbt eller samtidigt. Detta kan lösas genom att varje bot kollar med ett gemensamt tidsobjekt och ser till att tillräckligt lång tid har passerat från föregående drag. 10

13 Figur 4 Klassdiagram för pokerboten 11

14 4. Åtkomst av data 4.1. Skärmskrapning En vanlig metod för botar att samla information är skärmskrapning (eng. screen scraping) (Data Scraping, Wikipedia, 2013b). Detta innefattar att tolka det grafiska gränssnittet som presenteras av applikationen. Skärmskrapning består av två steg: 1) Hitta delarna av gränssnittet som är intressanta 2) Tolka det grafiska gränssnittet till data som boten kan hantera Det första steget är relativt enkelt i ett pokerspel eftersom elementen i spelet är helt statiska och inte byter position. Koordinater för viktiga positioner kan skrivas i t.ex. en XML-fil för att separera statiska variabler från programlogik. Om pokerboten spelar på fler bord samtidigt blir det dock väldigt många koordinater att hålla reda på, om det finns tio koordinater av intresse på ett bord och pokerboten spelar på nio bord samtidigt blir det 90 olika koordinater. För att lösa detta kan ett system av referenspunkter användas. Koordinaterna av intresse sparas utifrån en punkt på spelbordet, t.ex. övre hörnet till vänster, på så sätt behövs bara en koordinat för detta hörn på varje spelbord för att räkna ut resten av koordinaterna. Det andra steget innebär att tolka gränssnittet till rätt information. Detta består av att läsa enstaka pixlar men siffror och bokstäver måste också tolkas ur gränssnittet. Bildanalys av text kallas OCR (Optical Character Recognition) (Nimcomsoft). En bra implementerad optisk teckenläsare klarar av olika typer fonter och storlek på texten. Eftersom en kortlek endast består av siffrorna 2-10 och bokstäverna J,Q,K,A kanske det inte är nödvändigt att implementera en fullständig textigenkänningsalgoritm vid utveckling av en pokerbot. En naivare textläsare som bara klarar av en exakt teckenstorlek, ett teckensnitt och några få tecken skulle spara en hel del arbete om man inte planerar att använda pokerboten på många olika pokersidor. En primitiv optisk teckenläsare kunde implementeras på följande sätt: 12

15 Naiv metod 1) Räkna antalet pixlar varje tecken består av, spara värdena i en tabell för senare jämförelse. Naiv metod 2) Spara en bild på varje tecken som finns för att sedan jämföra med exakt bildmatchning. Dessa metoder fungerar naturligtvis bara under rätt omständigheter men de är enklare att implementera än en mer avancerad textläsningsalgoritm. Oavsett vilken metod som används så måste pixlar läsas från skärmen vilket är enkelt i Java med det inbyggda biblioteket jawa.awt.robot (Oracle, 2010). Kodexemplet nedan visar hur färgen på en bestämd pixel kan fås. Koordinaterna (x, y) anger vilken pixel som skall läsas. Ur Color-objektet kan RBG-värden (mängden rött, blått och grönt) hämtas för att kolla vilken färg pixeln är. import java.awt.robot; Robot robot = new Robot(); Color c = robot.getpixelcolor(x, y); Färgerna anges som vanligt med mängden rött, blått och grönt på en skala från En av de största fördelarna med läsning av pixlar är att det inte finns någon direkt kommunikation till pokerklienten. Pokerboten är bara ett program som läser vad som råkar finns på skärmen och för ingen direkt kommunikation med pokerklienten. 13

16 Exempel på skärmskrapning i Texas hold'em Dealerknappen kan endast finnas på tio olika positioner, dessa tio positioner är alltid samma och det är då enkelt att kolla om pixeln på knappositionen består av bakgrundsfärgen på bordet eller om den har en annan färg, vilket då tolkas som att knappen just då ligger där. Motståndarantal läses på liknande sätt. Om en motståndare är med eller inte representeras av två kort i spelet bredvid spelarens ikon. Om kortets färger inte kan hittas bredvid spelarens ikon, är han inte med i omgången. Spelkort kräver att två delar tolkas, valören och färgen på kortet. Färgen kan avgöras genom att kolla symbolen på kortet. Till skillnad från traditionella kortlekar har pokerklienter ofta valet att representera de fyra olika färgerna hjärter, klöver, spader och ruter med fyra olika färger istället för endast rött och svart. För att avgöra kortets färg kan RGB-värdena studeras: Hjärter (rött): Högt värde på rött, lågt på blått och grönt Ruter (blått): Högt värde på blått, lågt på rött och grönt Spader (svart): Lågt värde på samtliga färger Klöver (grönt): Högt värde på blått och grönt, lågt på rött Spelkortets valör eller rank skrivs med siffrorna 2 till 10 och J, Q, K, A och dessa måste urskiljas ifrån varandra med hjälp av optiskt teckenläsning. Potten representeras av ett par siffror och dessa måste också läses med optiskt teckenläsning. 14

17 4.2. Minnesläsning En alternativ metod till skärmskrapning är minnesläsning. Arbetsminnet eller RAMminnet är en viktig komponent i en dator, alla program som körs på en dator har ett allokerat minnesområde i RAM-minnet (Wikipedia, 2013d). I detta minnesområde lagras temporära datavariabler som används av program när de körs på datorn. Dessa variabler kan läsas och användas av en bot. Det finns en del utmaningar med minnesläsning: - Hur representeras data i minnet? - Var i minnet finns datan? Data kan lagras på många olika sätt och i olika variabeltyper och utan kunskap om programmets inre struktur kan det vara svårt att veta exakt hur data lagras. Om t.ex. ett datum eftersöks i minnet, lagras då datumet som en sträng, ett par heltal eller någonting helt annat? Detta beror helt på hur programmeraren har valt att göra programmet och ibland kan det vara svårt att veta hur specifik funktionalitet representeras i minnet. Eftersom man alltid inte vet exakt vad man letar efter är det också svårt att hitta det. Att manuellt söka genom minnet är inte heller praktiskt då tusentals rader av binär data inte är det lättaste att försöka förstå. För att få ett begrepp om hur minnet ser ut kan olika minnesläsningsprogram användas. Cheat Engine är ett sådant program (Cheat Engine). Med Cheat Engine kan minnesområdet för ett visst program öppnas, läsas och sökas igenom. Öppnas ordbehandlingsprogrammet jag använder i Cheat Engine kan vi hitta texten jag just nu sitter och skriver (se figur 4). Figur 5 En bit av minnet som används av ett ordbehandlingsprogram. 15

18 Minnesläsning i Java Minnesläsning är något som inte finns inbyggt i Java. För att använda Windows specifika funktioner såsom minnesläsning måste externa bibliotek användas. Med biblioteket JNA, Java Native Access, kan funktioner anropas som inte annars finns tillgängliga i Java (Wikipedia, 2013c). För att läsa minnet för ett program måste dess minnesområde först öppnas för att sedan läsas, detta görs med två funktioner, OpenProcess (Microsoft, 2012a) och ReadProcessMemory (Microsoft, 2012b). HANDLE WINAPI OpenProcess( _In_ DWORD dwdesiredaccess, _In_ BOOL binherithandle, _In_ DWORD dwprocessid ); BOOL WINAPI ReadProcessMemory( _In_ HANDLE hprocess, _In_ LPCVOID lpbaseaddress, _Out_ LPVOID lpbuffer, _In_ SIZE_T nsize, _Out_ SIZE_T *lpnumberofbytesread ); parameterförklaring: dwdesiredaccess binherithandle dwprocessid hprocess lpbaseaddress lpbuffer nsize lpnumberofbytesread Behörighetsnivå, t.ex. läsa eller skriva Om värdet är sant ärvs processens handtag Alla processer identifieras av ett ID Pekare till processen som öppnats Adressen som skall läsas ifrån I buffern sparas data som läses Storlek på buffer Pekare till antalet bytes som läses 16

19 Exempel: läsning av de gemensamma korten i pokerspelet För att koda ett användbart minnesläsningsprogram måste vi först bekanta oss med pokerklienten med hjälp av Cheat Engine. Precis som vilket datorprogram som helst lagras data i variabler i pokerklienten. Det första steget är att ta reda på exakt vilka minnesadresser innehåller informationen som eftersöks. För att hitta det vi söker efter i pokerklienten måste vi förstå var och hur detta lagras i minnet. Att manuellt leta igenom minnet efter t.ex. ett kort i spelet skulle inte vara möjligt, det finns miljontals bytes och det skulle ta alltför lång tid. Det fina med Cheat Engine är att vi kan söka genom hela minnet efter ett visst värde. Om vi t.ex. vill hitta minnesadressen för det första gemensamma kortet på bordet kan vi med en specifik sökteknik hitta minnesadressen för kortet. Detta kort lagras högst antagligen någonstans i minnet och även om värdet på detta kort förändras förblir platsen densamma. Med lite tur lagras kortets valör direkt med motsvarande siffra i minnet, med andra ord, valören för klöver två lagras som en tvåa, ruter sju lagras med en sjua, etc. Knepet vi nu måste använda är att söka i föregående sökresultat: Om vi ser i pokerklienten att kortet vi letar efter just nu är ett kort med valören 7 kan vi söka igenom hela minnet för pokerklienten efter siffran 7. Högst antagligen kommer vi få tusentals med träffar, men det är okej eftersom vi sparar alla adresser som hade värdet 7 till nästa sökning. När kortet i spelet sedan ändras, säg till ett kort med valören 4, kan vi nu söka efter värdet 4. När vi nu söker bland föregående resultat har kanske 500 av dessa råkat få värdet 4. Nästa gång kortet ändras kanske vi får 100 resultat. Fortsätter vi så här och om allt går rätt finns det bara en adress kvar i slutet. När man bekräftat att värdet för denna minnesadress ändras samtidigt och till rätt värde som det ändras i pokerspelet kan man anta att detta är just den adressen som innehåller vad man letar efter. När vi nu hittat adressen kan vi med hjälp av Cheat Engine studera närliggande minnesområde (figur 6) för att se om vi kan hitta någonting annat. Figur 6 Community kortens valörer markerade med blått. 17

20 Det första kortet har adressen , kortet representeras av talen 4 och 64. Kortets valör visas med en 4:a och färgen med 64 (64 kan översättas till 'd' med en ASCIItabell, 'd' är kort för diamonds, ruter på engelska). Med andra ord första kortet är en fyra med färgen ruter. Även fast vi endast sökte efter det första kortet kan vi se att vi också har hittat de fyra andra korten. Det andra kortet representeras av C och 73, tredje av 3 och 63 o.s.v. Vi kan också se att korten ligger med jämna mellanrum ifrån varandra, vilket betyder om vi hittar det första kortet, kan vi hitta de andra. Vi har nu hittat fem adresser för de fem korten som ligger på bordet i spelet. Tyvärr kan inte dessa adresser användas rakt av. När pokerklienten startas om finns det ingen garanti att samma minnesområde används, det är med högsta sannolikhet helt nya adresser. Vi kan inte heller konstruera vår bot att använda ovanstående sökmetod, boten vet ju inte vilka kort den skall söka efter. Utmaningen med minnesläsning är att pokerboten själv ska dynamiskt hitta de minnesadresser den behöver, utan att användaren av boten behöver säga åt den var den skall leta. Det hela handlar om att hitta något som identifierar vilka minnesadresser som skall läsas. Detta kan vara ett mönster, på sättet informationen är lagrad eller något som unikt som identifierar rätt minnesområde. I det här fallet så kommer det alltid samma unika sekvens med bytes före själva korten. Vad denna sekvens av bytes är, eller varför den finns där är inte så viktigt, det viktiga är att den alltid förekommer på endast ett ställe, med ett precis antal bytes före platsen med korten. Så för att dynamiskt hitta korten behöver vi bara hitta sekvensen av bytes som har markerats i figur 7. Figur 7 Unik sekvens av bytes markerat i orange, efter denna sekvens kommer de fem sökta korten. 18

21 Öppnas fler pokerbord i pokerklienten skapas också denna sekvens av bytes på lika många ställen. För att pokerboten skall klara av att spela på fler bord samtidigt måste rätt kort kopplas till rätt bord. Detta kan lösas genom att öppna ett bord i taget. Efter att det första bordet har öppnats, leta fram adressen för det första bordet. Vartefter nya bord öppnas, hoppa över tidigare bords adresser så dessa inte beaktas i nya sökningar. På så sätt kan rätt minnesadress kopplas till rätt pokerbord. Förstås, vissa delar av pokerklienten kan vara svåra att hitta i minnet om man inte känner till dess inre struktur. Det kan vara svårt att veta vad man ska leta efter, veta hur allting representeras i minnet eftersom en viss funktionalitet kan programmeras på så många olika sätt. 19

22 4.3. Val av dataåtkomstmetod Skärmskrapning och minnesläsning har båda för- och nackdelar, vilken metod som borde användas beror på pokerklienten man har valt. Skärmskrapning fungerar väldigt bra för enklare läsning såsom position eller antal motståndare i pokerspelet, medans läsning av siffror och bokstäver kräver mer arbete, speciellt om pokerklientens grafiska gränssnitt ofta förändras i programuppdateringar. T.ex. om koordinater för relevant data måste uppdateras eller om teckenstorlek eller teckensnitt ändras kanske hela textigenkänningsalgoritmen måste programmeras om. Om så är fallet fungerar minnesläsning kanske bättre då det är mindre sannolik att inre programförändringar sker. Med andra ord, skärmskrapning fungerar bättre till enklare grejer som inte kräver mycket underhåll ifall gränssnittet skulle ändras och minnesläsning fungerar bättre för läsning av exakt data som siffror och bokstäver. Även fast det är fullt möjligt att exklusivt använda endast en metod kanske det är mindre arbete för en programmerare att använda en kombination av både minnesläsning och skärmskrapning. Förstås finns det även fler metoder än endast minnesläsning och skärmskrapning. Den enklaste formen skulle vara att läsa och tolka en logfil som pokerklienter oftast har. En logfil innehåller information om kort och andra händelser i pokerklienten. Logfilerna är dock ofta inte tillräckligt bra för att räcka för en mer komplicerad bot. De innehåller inte alltid all information som behövs eller så uppdateras de inte i real tid. En orsak till detta är antagligen för att just stoppa botar från att enkelt kunna läsa all information som behövs. Eftersom spelet körs online och mot en server måste information om kort, pott etc. komma utifrån via nätet. Denna nätverkstrafik kan i teorin avlyssnas när den kommer in till pokerklienten. Denna nätverkstrafik kan dock vara krypterad men pokerklienter vars kommunikation inte är kunde detta vara en möjlig metod. I slutändan beror valet av metod på pokerklienten, den metod som fungerar bäst eller som är enklast att implementera på just den pokerklienten. 20

23 5. Kommunikation mot pokerklient När pokerboten väl samlat in all nödvändig information, bearbetat och gjort ett val måste valet också ageras. Boten behöver precis som en människa trycka på rätt knappar i pokerklienten. Det kanske enklaste sättet är att simulera rörelser och tryck med musen. Att styra musen är bekvämt i Java med hjälp av det inbyggda bibliotek, java.awt.robot. För att flytta på muspekaren krävs ett objekt av typen Robot och ett funktionsanrop. import java.awt.robot; import java.awt.event.inputevent; Robot robot = new Robot(); robot.mousemove(150, 200); Denna kod är allt som behövs i Java för att flytta musen till t.ex. pixel positionen (150, 200). För att sedan trycka ned och släppa musknappen för att simulera ett klick behövs följande kod: robot.mousepress(inputevent.button1_mask); robot.mouserelease(inputevent.button1_mask); Eftersom knapparna alltid ligger på samma ställe är det relativt enkelt att skriva ett par funktioner för att lägga sig, syna eller höja. Det går också att läsa var musen befinner sig, var den gör klick. Det är då inte heller helt orimligt att också pokerklienter läser musdata för att leta efter omänskligt beteende, för att stoppa botar. Det vore väldigt omänskligt att alltid trycka på exakt samma pixel varje gång så därför behövs ett mer slumpmässigt beteende. Eftersom knapparna har en viss storlek kan en koordinat slumpas fram som ligger nånstans inom knappens omkrets. Det är svårt att veta exakt hur olika pokerklienter analyserar musbeteende. För att vara på den säkra sidan borde också muskoordinater mellan knapparna simuleras istället för att musen konstant skulle hoppa från knapp till knapp. Att gå från punkt A till B i ett rakt sträck räcker knappast då en människa ofta flyttar musen i någon slags bågformad rörelse. 21

24 En metod att få en kurva mellan två punkter är att använda Bézierkurvan (Bézier curve, Wikipedia, 2013a). Formeln nedan är en kubisk Béizer. [x,y]=(1 t)3p0+3(1 t)2tp1+3(1 t)t2p2+t3p3 P0 och P3 är start och slutpunkten på kurvan. P1 och P2 bestämmer hur kurvan kommer att se ut beroende på hur de ligger i förhållande till P0 och P3. Figur 3 visar hur en kubisk Bézier fungerar. Genom att slumpa fram koordinaterna P1 och P2 (de gula punkterna i figur 3) kan vi få hyfsat realistiska och slumpmässiga kurvor för musen att följa. Figur 8 Kubisk Bézier (Tulleken, 2011) Människor klarar av korta avstånd utan större felmarginal men vid längre avstånd så missar vi mera när vi går från en punkt till en annan med musen. Detta är enkelt att 22

25 efterlikna om de slumpmässiga punkterna placeras baserat på hur lång sträcka musen måste flyttas. Ju längre bort de gula punkterna är från de orangea, ju större kurva kommer vi att få. Resultatet blir en mer mänsklig rörelse (figur 10) istället för att flytta musen i raka sträck. I figuren ser vi att båda metoderna träffar slumpmässigt inom knappen men med Bézier fås en mer mänsklig för själva rörelsen mellan knapp till knapp. Figur 9 Jämförelse av Bézier (övre delen av figuren) och att gå raka sträck mellan knappar 23

26 6. Undvika upptäckt 6.1. Metoder för att avslöja pokerbotar Det finns olika metoder för att avslöja pokerbotar men det är svårt att säga exakt vad som används av pokersidorna. En metod är bara effektiv så länge den hålls hemlig eftersom annars skulle ju botutvecklare göra allt för att kringgå metoderna. Nedan följer tänkbara metoder och hur dessa kan undvikas Speltid En av de kanske mest uppenbara metoderna är att titta på speltid för en spelare. Om en spelare sitter och spelar hela tiden, dag ut, dag in, väcker det nog varningsflaggor i systemet, och denne spelare kan sedan granskas noggrannare för att avgöra om det är en bot som spelar. Det gäller då helt enkelt att begränsa spelandet till mänskliga mängder så att boten inte körs hela tiden. Boten borde också ta pauser, även om det är mycket möjligt att spela t.ex. 12 timmar per dag är det nog ytterst svårt att göra det utan pauser i spelandet. En lösning skulle kunna innefatta en schemaläggare som kör boten på slumpmässiga intervall Timings En bot får inte utföra beslut för snabbt för det är knappast troligt att en människa skulle utföra knapptryck på hundradelar och fortfarande spela med vinst. Även om en dator har snabb beräkningsförmåga måste boten vänta tillräckligt länge mellan varje kommando den skickar till pokerklienten. Den måste också vänta slumpmässig tid så väntetiden inte blir samma för varje drag boten gör. Väntetiden mellan varje drag borde resultera en minimum tid plus en slumpmässig del Spionprogram i pokerklienten Pokerklienter kan innehålla spionprogram som letar efter egenskaper för kända pokerbotar genom att granska processer som körs på användarens dator, t.ex. Pokerstars nämner detta i deras användaravtal (Pokerstars, 2013). Kända pokerbotar upptäcks genom att leta efter namn på processen eller söka efter processer med samma storlek som kända botar. Fördelen med att utveckla sin egen bot är att den är unik från andra pokerbotar och kan inte upptäckas rakt av så länge den inte öppet distribueras. 24

27 6.5. CAPTCHA Captcha (Completely Automated Public Turing test to tell Computers and Humans Apart) har länge använts för att stoppa botar på internet och det är logiskt att använda dessa för att bekämpa pokerbotar. Problemet med Captcha för en bot är att först upptäcka att en ruta med en förfrågan dykt upp och sedan att skriva in rätt kod. Även om Captcha har knäckts är det en ganska svår uppgift. Istället för att försöka knäcka Captcha kunde en skärmdump tas och skickas till användarens smarttelefon där denne kan fjärrstyra pokerprogrammet och fylla i åt boten. Figur 10 Captcha, en metod att stoppa botar 6.6. Spelmönster Om en spelare har blivit misstänkt för användningen av en pokerbot men direkta bevis inte är tillräckliga kan spelmönster studeras. En pokerbot programmeras ofta att klara av specifika situationer på ett specifikt sätt och spelmönster uppstår eftersom boten alltid spelar efter programmerade regler. Även vid väldigt regelbaserat spel från mänskliga spelare uppstår variationer på grund av t.ex. misstag eller magkänsla som får spelare att avvika från sin nitiska strategi. För att få in ett mer slumpmässigt spelmönster måste pokerboten programmeras med t.ex. slumpmässiga bluffar i spelet för att bryta eventuella mönster. 25

28 7. Slutord Att bygga en pokerbot visade sig vara ett gigantiskt projekt. Fördelarna med att utveckla en egen bot är stora men det kräver också mycket arbete. Genom att själv bygga en bot har jag också fått en förståelse hur botar kan stoppas, eller åtminstone försvåra arbetet för botutvecklare. Utvecklingen i Java tillsammans med NetBeans har fungerat utmärkt, trots att minnesläsningen krävde ett externt bibliotek. Andra programmeringsspråk kanske hade fungerat smidigare för just minnesläsningsdelen men att programmera en bot i Java är fullt möjligt. Genom att avgränsa mig till kommunikationen mellan pokerboten och pokerklienten har jag kunnat undersöka och även implementera mina valda metoder noggrant, detta hade inte varit möjligt om pokerintelligensen också hade behandlats, då det är ett helt ämne i sig. Pokerintelligensen som inte har behandlats i detta arbete skulle vara nästa steg i utvecklingen av pokerboten. Förhoppningsvis har denna uppsats gett en liten bild över vad som krävs för att utveckla en pokerbot men också hur tekniker som minnesläsning, skärmskrapning och styrning av mus kan användas för att automatisera andra program och spel. 26

29 8. Litteraturförteckning Bézier curve, Wikipedia. (den a). Hämtat från Wikipedia: Cheat Engine. (u.d.). Cheat Engine. Hämtat från About Cheat Engine: den Data Scraping, Wikipedia. (den b). Hämtat från Wikipedia: den Drm0hr. (7 2012). File:Texas Hold'em Poker Table with Blinds.svg. Hämtat från Wikipedia: s.svg den Glimne, D. (2005). Pokerhandboken. BW. Microsoft. (den a). OpenProcess function. Hämtat från Microsoft: den Microsoft. (den b). ReadProcessMemory function. Hämtat från Microsoft: den Niemeyer, P., & Knudsen, J. (2005). Learning Java. Nimcomsoft. (u.d.). Optical Character Recognition (OCR) How it works. Hämtat från Nicomsoft: den Oracle. (2010). Class Robot. Hämtat från oracle.com: den Pokerstars. (2013). Användarvillkor för PokerStars onlinepokerprogram. Hämtat från Pokerstars: den Tulleken, H. (den ). Bézier Curves for your Games: A Tutorial. Hämtat från devmag.org.za: den Wikipedia. (den c). Java Native Access. Hämtat från Wikipedia: den Wikipedia. (den d). Random-access memory. Hämtat från Wikipedia: den

getsmart Grå Regler för:

getsmart Grå Regler för: (x²) 1 2 Regler för: getsmart Grå Algebra 8 _ (x²) 1 2 Algebra 4 (2 2³) 1 4 _ xy (2 2³) 1 4 _ xy (x²) 1 2 _ (2 2³) 1 4 _ xy (x²) 1 2 _ (2 2³) 1 4 _ xy 4 Algebra Algebra _ 8 Det rekommenderas att man börjar

Läs mer

Ett enkelt OCR-system

Ett enkelt OCR-system P r o j e k t i B i l d a n a l y s Ett enkelt OCR-system av Anders Fredriksson F98 Fredrik Rosqvist F98 Handledare: Magnus Oskarsson Lunds Tekniska Högskola 2001-11-29 - Sida 1 - 1.Inledning Många människor

Läs mer

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI NG STRESS LUNDS TEKNISKA HÖGSKOLA - 2013-05-22 Projektmedlemmar: Emil Apelgren adi10eap@student.lu.se Fredrik Helander gda10fhe@student.lu.se Jonathan Klingberg

Läs mer

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

Handbok Officersskat. Martin Heni Eugene Trounev Granskare: Mike McBride Översättare: Stefan Asserhäll Martin Heni Eugene Trounev Granskare: Mike McBride Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 2 Hur man spelar 6 3 Spelets regler, strategi och tips 7 3.1 Spelbordet..........................................

Läs mer

Osynlig pokerbot Teorier för att undvika detektering vid online-spelande med pokerbot

Osynlig pokerbot Teorier för att undvika detektering vid online-spelande med pokerbot Examensarbete 15 högskolepoäng Osynlig pokerbot Teorier för att undvika detektering vid online-spelande med pokerbot A stealth poker bot Theories for avoiding the detection of a poker bot during online

Läs mer

KURSMÅL WINDOWS STARTA KURSEN

KURSMÅL WINDOWS STARTA KURSEN KURSMÅL WINDOWS Detta är en introduktionskurs för dig som är nybörjare. Du kommer att få bekanta dig med datorns viktigaste delar och lära dig grunderna i operativsystemet Windows, vilket är en förutsättning

Läs mer

Ungefär lika stora tal

Ungefär lika stora tal Bilaga 2:1 Arbeta med jämförelser mellan tal Ungefär lika stora tal Jämför de tre talen här nedan: 234567 234566 234568 Alla siffrorna i talen är lika utom den sista, den högra, där siffrorna är 7,6 och

Läs mer

Introduktion till programmering, hösten 2011

Introduktion till programmering, hösten 2011 Föreläsning 1 Programmering är ett hantverk. Det betyder att man inte kan läsa sig till den förmågan, man måste träna och man tränar genom att skriva mer och mer avancerade program. Programmering förutsätter

Läs mer

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET UMEÅ UNIVERSITET Datavetenskap 010824 TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET Datum : 010824 Tid : 9-15 Hjälpmedel : Inga Antal uppgifter : 7 Totalpoäng : 40 (halva poängtalet krävs normalt

Läs mer

UPPGIFT 1 V75 FIGUR 1.

UPPGIFT 1 V75 FIGUR 1. UPPGIFT 1 V75 FIGUR 1. Varje lördag året om spelar tusentals svenskar på travspelet V75. Spelet går ut på att finna sju vinnande hästar i lika många lopp. Lopp 1: 5 7 Lopp 2: 1 3 5 7 8 11 Lopp 3: 2 9 Lopp

Läs mer

Genetisk programmering i Othello

Genetisk programmering i Othello LINKÖPINGS UNIVERSITET Första versionen Fördjupningsuppgift i kursen 729G11 2009-10-09 Genetisk programmering i Othello Kerstin Johansson kerjo104@student.liu.se Innehållsförteckning 1. Inledning... 1

Läs mer

Implicita odds och omvända implicita odds

Implicita odds och omvända implicita odds Kapitel sju Implicita odds och omvända implicita odds Under de tidiga satsningsrundorna och satsningsrundorna i mitten sänks vanligtvis pottoddset avsevärt om du behöver syna framtida satsningar, och du

Läs mer

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll FrontPage Express I programpaketet Internet Explorer 4.0 och 5.0 ingår också FrontPage Express som installeras vid en fullständig installation. Det är ett program som man kan använda för att skapa egna

Läs mer

Chapter 4: Writing Classes/ Att skriva egna klasser.

Chapter 4: Writing Classes/ Att skriva egna klasser. Chapter 4: Writing Classes/ Att skriva egna klasser. I dessa uppgifter kommer du att lära dig om hur man definierar egna objekt genom att skriva klasser. Detta är grunden för att förstå objekt orienterad

Läs mer

Words and Sentences Träna engelska!

Words and Sentences Träna engelska! Words and Sentences Träna engelska! Av LäraMera Program AB och Leripa AB Grafik Musik Röst Kristina Grundström Erik truedsson Helen Melhuish 1 Innehållsförteckning WORDS AND SENTENCES 1 Words and Sentences

Läs mer

Programmering B med Visual C++ 2008

Programmering B med Visual C++ 2008 Programmering B med Visual C++ 2008 Innehållsförteckning 1 Repetition och lite nytt...5 I detta kapitel... 5 Programexekvering... 5 Loop... 5 Källkod... 6 Verktyg... 6 Säkerhetskopiera... 6 Öppna, kompilera,

Läs mer

Pottstorleksfilosofin ett exempel

Pottstorleksfilosofin ett exempel Kapitel fem Pottstorleksfilosofin ett exempel Säg att du spelar ett no limit-spel med mörkar på $2-$5 och $500 stora stackar. Du sitter i stora mörken med Någon inleder satsandet ur mittenposition med

Läs mer

Sidpanelen och gadgetar De är nya. De är smarta. Lär dig hur du använder dem.

Sidpanelen och gadgetar De är nya. De är smarta. Lär dig hur du använder dem. Kap 03.indd 444 KAPITEL TRE Sidpanelen och gadgetar De är nya. De är smarta. Lär dig hur du använder dem. Gadgetar och den nya Sidpanelen är nog mina favoriter bland de nya funktionerna i Windows Vista.

Läs mer

Instruktioner. Innehåll: 1. Vad är Kimsoft Control (SIDA 2) 3. Hem (SIDA 2)

Instruktioner. Innehåll: 1. Vad är Kimsoft Control (SIDA 2) 3. Hem (SIDA 2) 1 Instruktioner Innehåll: 1. Vad är Kimsoft Control (SIDA 2) 2. Logga in (SIDA 2) 3. Hem (SIDA 2) 4. Skapa/redigera sidor (SIDA 3) 41. Lägg till ny sida (SIDA 3) 42. Avancerat (SIDA 4) 5. Texteditor (SIDA

Läs mer

Att skriva på datorn

Att skriva på datorn Att skriva på datorn Innehåll: Inledning 1 Tangentbordet 2 Att skriva i Word 4 Att skriva på Internet 7 Övningar 8 2 Inledning Välkommen till steg 2 av Internetkursen för nybörjare! Vid detta kurstillfälle

Läs mer

Recap Mera om nya typer Kort Fält. Programmering. Sommarkurs 2007 www.hh.se/staff/vero/programmering. Verónica Gaspes. IDE-sektionen.

Recap Mera om nya typer Kort Fält. Programmering. Sommarkurs 2007 www.hh.se/staff/vero/programmering. Verónica Gaspes. IDE-sektionen. Programmering Sommarkurs 2007 www.hh.se/staff/vero/programmering Verónica Gaspes IDE-sektionen Juni 14 Utkast 1 Recap 2 Mera om nya typer 3 Kort 4 Fält Recap Man kan ge namn till typer. Vi undersökte enum

Läs mer

Skärmtangentbordet som är enkelt att använda både med mus, touchskärmar och interaktiva whiteboards

Skärmtangentbordet som är enkelt att använda både med mus, touchskärmar och interaktiva whiteboards Skärmtangentbordet som är enkelt att använda både med mus, touchskärmar och interaktiva whiteboards Tel: 031-769 00 60 info@frolundadata.se www.frolundadata.se Introduktion WizKeys är flexibelt och kostnadseffektivt

Läs mer

IT-körkort för språklärare. Modul 9: Rätta skrivuppgifter

IT-körkort för språklärare. Modul 9: Rätta skrivuppgifter IT-körkort för språklärare Modul 9: Rätta skrivuppgifter Innehåll I. Rätta uppgifter i Word... 3 Markera fel med färger snabbt och enkelt... 3 Använd Words rättningsverktyg skriv kommentarer... 4 Gör ändringar

Läs mer

Internet. En enkel introduktion. Innehåll:

Internet. En enkel introduktion. Innehåll: Internet En enkel introduktion Innehåll: Datorns olika delar Starta datorn Så gör du om du kan webbadressen Så gör du om du inte kan webbadressen Kortfattad repetition Alingsås bibliotek, 2012 2 3 4 6

Läs mer

Grunder. Grafiktyper. Vektorgrafik

Grunder. Grafiktyper. Vektorgrafik 2 Grunder All vår början bliver svår eller hur det nu brukar heta, och detta är något som gäller även Flash. För den som är ovan vid Flash gäller det säkert extra mycket, då det kan vara knepigt att förstå

Läs mer

BRIDGE MASTER 2000 SCANDINAVIA av Fred Gitelman

BRIDGE MASTER 2000 SCANDINAVIA av Fred Gitelman BRIDGE MASTER 2000 SCANDINAVIA av Fred Gitelman installeras från det fönster, som automatiskt kommer upp, när CD-skivan sätts i datorn: Klicka till höger om INSTALLATION på flaggan för den version, som

Läs mer

Länka in bilder från webben hjälper dig att använda bilder som du inte har sparade på din egen dator.

Länka in bilder från webben hjälper dig att använda bilder som du inte har sparade på din egen dator. Länka in bilder från webben hjälper dig att använda bilder som du inte har sparade på din egen dator. Webben är en outsinlig källa av bildmaterial och somligt får du använda gratis! Verktyget Länka in

Läs mer

7-2 Sammansatta händelser.

7-2 Sammansatta händelser. Namn: 7-2 Sammansatta händelser. Inledning Du vet nu vad som menas med sannolikhet. Det lärde du dig i kapitlet om just sannolikhet. Nu skall du tränga lite djupare i sannolikhetens underbara värld och

Läs mer

Programmeringsteknik med C och Matlab

Programmeringsteknik med C och Matlab Programmeringsteknik med C och Matlab Kapitel 6: Filhantering Henrik Björklund Umeå universitet 13 oktober 2009 Björklund (UmU) Programmeringsteknik 13 oktober 2009 1 / 22 Textfiler Filer är sekvenser

Läs mer

Snabbstartguide för McAfee VirusScan Plus

Snabbstartguide för McAfee VirusScan Plus Nödvändigt datorskydd McAfee VirusScan innehåller anti-virus- och anti-spywareskydd för din dator. McAfee Total Protection innehåller även dator- och nätverksverktyg samt McAfee SiteAdvisor för säker surfning.

Läs mer

Projekt i bildanalys Trafikövervakning

Projekt i bildanalys Trafikövervakning Projekt i danalys Trafikövervakning F 99 F 00 Handledare : Håkan Ardö Hösten 3 vid Lunds Tekniska Högskola Abstract Using traffic surveillance cameras the authorities can get information about the traffic

Läs mer

och Lär dig surfa på Internet Bilden nedan föreställer Södertälje kommuns hemsidans startsida Adressen till hemsidan

och Lär dig surfa på Internet Bilden nedan föreställer Södertälje kommuns hemsidans startsida Adressen till hemsidan Utgåva 1 och Lär dig surfa på Internet Sammanställd av: SeniorNet i Södertälje November 2008 Vi använder här Microsofts surfprogram: Windows Internet Explorer På skrivbordet högerklickar du på ikonen:

Läs mer

Nyheterna i Visma Tendsign 4.0

Nyheterna i Visma Tendsign 4.0 Användarmanual Nyheterna i Visma Tendsign 4.0 Uppdaterad 2014-05-21 VISMA COMMERCE AB +46 13 47 47 500 tendsignsupport@visma.com www.tendsign.com Innehållsförteckning 1. Visma TendSign 4.0... 2 2. Grafiskt

Läs mer

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

SMULTRON. Fredrik Li, Ester, Anders, Jessica, Philip. Malmö Högskola Konst Kultur Kommunikation OOP5 - Mobile Applications IDK 05 - April/Maj 2007 SMULTRON av Fredrik Li, Ester, Anders, Jessica, Philip Malmö Högskola Konst Kultur Kommunikation OOP5 - Mobile Applications IDK 05 - April/Maj 2007 - När man har turen att hitta en plats där man trivs

Läs mer

Win95/98 Nätverks Kompendium. av DRIFTGRUPPEN

Win95/98 Nätverks Kompendium. av DRIFTGRUPPEN Win95/98 Nätverks Kompendium av DRIFTGRUPPEN Sammanfattning Vad håller jag i handen? Detta är en lättförståelig guide till hur man lägger in och ställer in nätverket i Windows 95 och 98 Efter 6 (sex) enkla

Läs mer

Examensarbete. 15 högskolepoäng. Pokerboten. Behandlar teorier för att ta fram algoritmer till en bot som spelar poker

Examensarbete. 15 högskolepoäng. Pokerboten. Behandlar teorier för att ta fram algoritmer till en bot som spelar poker Malmö Högskola, Malmö den 10 februari 2011 Examensarbete 15 högskolepoäng Pokerboten Behandlar teorier för att ta fram algoritmer till en bot som spelar poker Stefan Borgström och Marcus Nilsson Högskoleingenjörutbildningen

Läs mer

Kortdokumentation. Avancerade Wordfunktioner

Kortdokumentation. Avancerade Wordfunktioner Kortdokumentation Avancerade Wordfunktioner Olika typer av mallar När man arbetar med ett ordbehandlingsprogram finns det egentligen tre typer av mallar man kan använda för att automatisera sitt arbete;

Läs mer

Kapitel 1 Introduktion

Kapitel 1 Introduktion Kapitel 1 Introduktion ZoomText 9.1 är en kraftfull programlösning för synskadade. Innehåller två olika teknologier förstoring och skärmläsning ZoomText tillåter dig att se och höra allting som visas på

Läs mer

Lär dig POWERPOINT. Lars Ericson datorkunskap.com

Lär dig POWERPOINT. Lars Ericson datorkunskap.com Lär dig POWERPOINT Lars Ericson datorkunskap.com POWERPOINT D A Programmet Microsoft PowerPoint används till att skapa grafiska presentationer till bildspel, presentationer mm. När du öppnar upp PowerPoint

Läs mer

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

Handbok Othello. Clay Pradarits Utvecklare: Mario Weilguni Granskare: Lauri Watts Översättare: Stefan Asserhäll Clay Pradarits Utvecklare: Mario Weilguni Granskare: Lauri Watts Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 2 Hur man spelar 6 3 Spelets regler, strategi och tips 7 3.1 Spelets grunder.......................................

Läs mer

1(15) Bilaga 1. Av Projekt Neuronnätverk, ABB Industrigymnasium, Västerås Vt-05

1(15) Bilaga 1. Av Projekt Neuronnätverk, ABB Industrigymnasium, Västerås Vt-05 1(15) Bilaga 1 2(15) Neuronnätslaboration Räknare Denna laboration riktar sig till gymnasieelever som går en teknisk utbildning och som helst har läst digitalteknik samt någon form av styrteknik eller

Läs mer

Manual för din hemsida

Manual för din hemsida Manual för din hemsida Dynamiska hemsidor är en lösning för att man på ett enkelt sätt skall kunna lägga till, ändra och ta bort sidor på sin hemsida. För att detta skall vara möjligt bygger lösningen

Läs mer

Microsoft Office Excel, Grundkurs 1. Introduktion

Microsoft Office Excel, Grundkurs 1. Introduktion Dokumentation - Kursmaterial Innehåll 1. Introduktion 1.1. Programfönster 1.2. Inskrift och redigering 1.3. Cellformat 1.4. Arbeta med formler Kursövning E1.xlsx Egna Övningar E1E.xlsx - OnePRO IT, Bengt

Läs mer

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng TENTAMEN I PROGRAMMERING Ansvarig: Jan Skansholm, tel 7721012 Betygsgränser: Hjälpmedel: Sammanlagt maximalt 60 poäng. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng Skansholm,

Läs mer

Paneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2

Paneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2 Paneler - VCPXX.2 Programmeringsmanual för VCP-paneler Revision 2 Innehållsförteckning Innehållsförteckning... 2 1 Symbolfiler för kommunikation via IndraLogic... 3 2 Uppsättning i IndraWorks... 6 3 Programmering

Läs mer

Välkommen till Ipad för nybörjare

Välkommen till Ipad för nybörjare Välkommen till Ipad för nybörjare Detta häfte kommer innehålla Alla knappars funktioner Simplare och hjälpsamma sätt att kunna använda och ta sig runt i en Ipad Mindre genom gång av appar och dess betydelse

Läs mer

Skapa mapp. * Gör så här: Det finns många sätt att skapa mappar, men det enklaste sättet brukar vara följande.

Skapa mapp. * Gör så här: Det finns många sätt att skapa mappar, men det enklaste sättet brukar vara följande. Ideell IT-förening där äldre lär äldre Skapa mapp Det finns många sätt att skapa mappar, men det enklaste sättet brukar vara följande. * Gör så här: 1. Se till att du befinner dig på den plats i datorn

Läs mer

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach Föreläsning 1: Intro till kursen och Kursens hemsida http://www.it.uu.se/edu/course/homepage/prog1/esvt10 Studentportalen http://www.studentportalen.uu.se Kursmaterial Kursbok Kursprogramvara Tips: Installera

Läs mer

3.5 Visuell programmering

3.5 Visuell programmering 3.5 Visuell programmering Alla våra program hittills har varit C# Console Applications (sid 41) inkl. programmet MessageBox fast det genererade en grafisk meddelanderuta. Nu vill vi utnyttja grafikens

Läs mer

Regler för: - Räkna med sedlar og mynt!

Regler för: - Räkna med sedlar og mynt! Regler för: getsmart Kids - Räkna med sedlar og mynt! Det rekommenderas att man börjar med att se på powerpoint-reglerna när man ska lära sig olika spel med kortleken! Kolla in hemsidan för fler powerpoint

Läs mer

Vad behöver du för att kunna spela? Jo, du och din motståndare behöver varsin egen kortlek med 60 kort, ett mynt att singla slant med och några

Vad behöver du för att kunna spela? Jo, du och din motståndare behöver varsin egen kortlek med 60 kort, ett mynt att singla slant med och några Vad behöver du för att kunna spela? Jo, du och din motståndare behöver varsin egen kortlek med 60 kort, ett mynt att singla slant med och några polletter för att markera skador på era Pokémon. Ni kan använda

Läs mer

Instruktion Programmeringsapp och gränssnitt

Instruktion Programmeringsapp och gränssnitt Instruktion BT och Programmerings-app v. 0. Sida 1 av 5 Instruktion Programmeringsapp och gränssnitt Observera, instruktionen bearbetas och uppdateras fortfarande. Kolla då och då www.mollehem.se/doc/instuktion/instruktion_programmering.pdf

Läs mer

Planering Programmering grundkurs HI1024 HT 2015 - data

Planering Programmering grundkurs HI1024 HT 2015 - data Planering Programmering grundkurs HI1024 HT 2015 - data Föreläsning V36 Föreläsning 1 Programmering Kurs-PM Programmeringsmiljö Hello World! Variabler printf scanf Föreläsning 2 Operatorer Tilldelning

Läs mer

Kom igång med. Windows 8. www.datautb.se DATAUTB MORIN AB

Kom igång med. Windows 8. www.datautb.se DATAUTB MORIN AB Kom igång med Windows 8 www.datautb.se DATAUTB MORIN AB Innehållsförteckning Grunderna i Windows.... 1 Miljön i Windows 8... 2 Startskärmen... 2 Zooma... 2 Snabbknappar... 3 Sök... 4 Dela... 4 Start...

Läs mer

Lathund till Publisher TEXT. Skriva text. Importera text. Infoga text. Dra och släpp

Lathund till Publisher TEXT. Skriva text. Importera text. Infoga text. Dra och släpp Lathund till Publisher TEXT Pekverktyget använder du när du ska markera en ram som du vill förändra på något sätt. Klicka på textverktyget. Placera muspekaren på den tomma dokumentytan, det spelar ingen

Läs mer

Snabbmanual version: 5.2

Snabbmanual version: 5.2 dicompacs Snabbmanual version: 5.2 1. Musknappar funktioner Vänster musknapp Mus hjul Höger musknapp Funktion för vänster musknapp I navigeringsfönstret: -Om du klickar på en bild i navigeringsfönstret

Läs mer

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10 Projekt Rapport RaidPlanner Jeanette Karlsson UD10 Abstrakt: Denna rapport handlar om mitt projekt i kursen Individuellt Mjukvaruutvecklings projekt. Rapporten kommer att ta upp hur jag gått tillväga,

Läs mer

Lathund CallCenter 2010

Lathund CallCenter 2010 Lathund CallCenter 2010 Innehållsförteckning Reservation Bokningstotalen Försäljning med kortbetalning Lägg till platser Lägg till platser Ändra pristyp Ta bort platser Ta bort hel bokning Ändra dag i

Läs mer

Jaktpejl.se. Användarmanual. Av: Erik Åberg

Jaktpejl.se. Användarmanual. Av: Erik Åberg Jaktpejl.se Användarmanual Av: Erik Åberg Innehållsförteckning Vad är Jaktpejl?... 3 Vad krävs för att använda Jaktpejl?... 3 Premiumfunktioner... 3 Release noteringar... 4 Version 2.01... 4 Version 2.0...

Läs mer

Mörkpoker Strategi. 2003 Christian Eriksson och Mikael Knutsson Uppdaterad 2004-01-26

Mörkpoker Strategi. 2003 Christian Eriksson och Mikael Knutsson Uppdaterad 2004-01-26 Mörkpoker Strategi 2003 Christian Eriksson och Mikael Knutsson Uppdaterad 2004-01-26 Innehåll 1 GRUNDLÄGGANDE VISDOM...2 1.1 SATSNINGSRUNDOR...3 1.2 TÄNK IGENOM SITUATIONEN!...4 1.3 DISCIPLIN...5 1.4 BLUFFANDE/VARIERAT

Läs mer

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Kort om klasser och objekt En introduktion till GUI-programmering i Java Kort om klasser och objekt En introduktion till GUI-programmering i Java Klasser En klass är en mall för hur man ska beskriva på något. Antag att vi har en klass, Bil. Den klassen innehåller en lista på

Läs mer

Nya webbservern Dvwebb.mah.se

Nya webbservern Dvwebb.mah.se Nya webbservern Dvwebb.mah.se Bakgrund: BIT (Bibliotek och IT) beslutar att ta ner Novell systemet 28/3 som är en katalogtjänst som styr bland annat alla studenter s.k. hemkataloger på Malmö högskola såväl

Läs mer

NetBeans 7. Avsikt. Projektfönster

NetBeans 7. Avsikt. Projektfönster NetBeans 7 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till

Läs mer

Elias Castegren. (Version 1, 2012)

Elias Castegren. (Version 1, 2012) Liten Emacs-referens Elias Castegren (Version 1, 2012) Det här är en kort genomgång av några väldigt grundläggande kommandon i Emacs. Dokumentet är inte utförligt eller ens särskilt pedagogiskt, utan jag

Läs mer

Bilaga 2. Layoutstöd för examensarbeten och uppsatser

Bilaga 2. Layoutstöd för examensarbeten och uppsatser Bilaga 2 Layoutstöd för examensarbeten och uppsatser Lärstöd Karlstads universitetsbibliotek ht 2007 Layoutstöd examensarbeten och uppsatser ht -07 Innehåll 1. Inledning...1 1.1 Dispositon...2 2. Om omslag...3

Läs mer

Programmering. Den första datorn hette ENIAC.

Programmering. Den första datorn hette ENIAC. Programmering Datorn är bara en burk. Den kan inget själv. Hur får man den att göra saker? Man programmerar den. Människor som funderar ut program som fungerar. Datorn förstår bara ettor och nollor och

Läs mer

Robotfotboll med Arduino

Robotfotboll med Arduino Robotfotboll med Arduino Av Staffan Melin och Martin Blom Bild & form-skolan, Masthugget, Göteborg 2015 Staffan Melin, staffan.melin@oscillator.se Martin Blom, martinblomblom@hotmail.com Detta verk är

Läs mer

Datorn från grunden. En enkel introduktion. Innehåll: Inledning 1 Vad är en dator? 2 Datorns olika delar 3 Starta datorn 5 Stänga av datorn 7

Datorn från grunden. En enkel introduktion. Innehåll: Inledning 1 Vad är en dator? 2 Datorns olika delar 3 Starta datorn 5 Stänga av datorn 7 Datorn från grunden En enkel introduktion Innehåll: Inledning 1 Vad är en dator? 2 Datorns olika delar 3 Starta datorn 5 Stänga av datorn 7 2 Inledning Välkommen till Söderköpings bibliotek! Vid detta

Läs mer

LiTH. WalkCAM 2007/05/15. Testplan. Mitun Dey Version 1.0. Status. Granskad. Godkänd. Reglerteknisk projektkurs WalkCAM LIPs

LiTH. WalkCAM 2007/05/15. Testplan. Mitun Dey Version 1.0. Status. Granskad. Godkänd. Reglerteknisk projektkurs WalkCAM LIPs Testplan Mitun Dey Version 1.0 Status Granskad Godkänd 1 PROJEKTIDENTITET Reglerteknisk projektkurs, WalkCAM, 2007/VT Linköpings tekniska högskola, ISY Namn Ansvar Telefon E-post Henrik Johansson Projektledare

Läs mer

ETT FÖRSTORINGSPROGRAM PÅ DATORN ANVÄNDARHANDLEDNING

ETT FÖRSTORINGSPROGRAM PÅ DATORN ANVÄNDARHANDLEDNING ETT FÖRSTORINGSPROGRAM PÅ DATORN ANVÄNDARHANDLEDNING 2007 Innehåll Innehåll...1 1. Om Lightning...2 2. Systemkrav...2 3. Installera och använda Lightning...2 4. Lightnings kontrollpanel...3 5. Ändra förstoringsgrad...3

Läs mer

NetBeans 5.5. Avsikt. Projektfönster

NetBeans 5.5. Avsikt. Projektfönster NetBeans 5.5 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till

Läs mer

Fältnamn /Rubrik Fältnamn /Rubrik Fältnamn /Rubrik Fältnamn /Rubrik Data Data Data Data Data Data Data Data

Fältnamn /Rubrik Fältnamn /Rubrik Fältnamn /Rubrik Fältnamn /Rubrik Data Data Data Data Data Data Data Data Datahantering i Excel Grundbegrepp I alla typer av databaser finns alltid en tabell där informationen i databasen fysiskt finns lagrad. Tabellen har samma enkla uppbyggnad som en tabell i ordbehandlingsprogrammet

Läs mer

Laboration 4: Digitala bilder

Laboration 4: Digitala bilder Objektorienterad programmering, Z : Digitala bilder Syfte I denna laboration skall vi återigen behandla transformering av data, denna gång avseende digitala bilder. Syftet med laborationen är att få förståelse

Läs mer

FÖR DATORER. Historiskt arkiv. Användarguide. För Vasabladet

FÖR DATORER. Historiskt arkiv. Användarguide. För Vasabladet FÖR DATORER Historiskt arkiv Användarguide För Vasabladet Innehåll Arkivet via webbläsare Välkommen till Vasabladets historiska arkiv! Så här fungerar vårt historiska arkiv Teckna en prenumeration 4 Enkel

Läs mer

Rullningslisten. Klicka på rullningslistpilar (pil upp eller pil ner) 1 för att förflytta dig i önskad riktning, en liten bit i taget.

Rullningslisten. Klicka på rullningslistpilar (pil upp eller pil ner) 1 för att förflytta dig i önskad riktning, en liten bit i taget. Rullningslisten Om informationen i fönstret inte ryms på skärmen skapas automatiskt en rullningslist i fönstrets högra kant. Med rullningslisterna kan du snabbt och enkelt flytta dig i fönstret 1 Klicka

Läs mer

Distribuerade affärssystem

Distribuerade affärssystem Distribuerade affärssystem Kursens mål Bygga upp, strukturera och programmera distribuerade system med en flerskiktsarkitektur Beskriva och förklara teorier och uttryck som används inom affärskritiska

Läs mer

HUR ÄR DET ATT UPPLEVA VÄRLDEN ANNORLUNDA? 11 övningar att använda i klassen

HUR ÄR DET ATT UPPLEVA VÄRLDEN ANNORLUNDA? 11 övningar att använda i klassen HUR ÄR DET ATT UPPLEVA VÄRLDEN ANNORLUNDA? 11 övningar att använda i klassen Hur kan det kännas att uppleva världen på ett annorlunda sätt? Hur enkelt är det att följa en rak linje på golvet om du har

Läs mer

Användarstudie utav GRIM på SFI (Svenska För Invandrare)

Användarstudie utav GRIM på SFI (Svenska För Invandrare) Användarstudie utav GRIM på SFI (Svenska För Invandrare) Per-Olof Gatter ing01@kth.se 1 ...Abstract This document is made as an assignment in the course Speech and Gramming checker tools. It is an continuation

Läs mer

Ordlista. Aggressiv / Överaggressiv När en spelare satsar eller höjer en stor eller väldigt stor andel av gångerna. Motsats till passiv/svag-tajt.

Ordlista. Aggressiv / Överaggressiv När en spelare satsar eller höjer en stor eller väldigt stor andel av gångerna. Motsats till passiv/svag-tajt. Ordlista Alla kommer inte att känna till samtliga termer jag använder i den här boken. Särskilt vissa Omaha-specifika termer eller ord som förekommer på höga nivåer är kanske inte självklara för alla.

Läs mer

Talsystem Teori. Vad är talsystem? Av Johan Johansson

Talsystem Teori. Vad är talsystem? Av Johan Johansson Talsystem Teori Av Johan Johansson Vad är talsystem? Talsystem är det sätt som vi använder oss av när vi läser, räknar och skriver ner tal. Exempelvis hade romarna ett talsystem som var baserat på de romerska

Läs mer

Kryptering. Av: Johan Westerlund Kurs: Utveckling av webbapplicationer Termin: VT2015 Lärare: Per Sahlin

Kryptering. Av: Johan Westerlund Kurs: Utveckling av webbapplicationer Termin: VT2015 Lärare: Per Sahlin Kryptering Av: Johan Westerlund Kurs: Utveckling av webbapplicationer Termin: VT2015 Lärare: Per Sahlin Inledning Den här rapporten ska hjälpa en att få insikt och förståelse om kryptering. Vad betyder

Läs mer

Snabbstartsguide. Visa eller växla mellan onlinekonton Klicka på ditt konto-id för att ändra inställningar eller växla mellan konton.

Snabbstartsguide. Visa eller växla mellan onlinekonton Klicka på ditt konto-id för att ändra inställningar eller växla mellan konton. Snabbstartsguide Microsoft OneNote 2013 ser annorlunda ut jämfört med tidigare versioner, så vi har skapat den här guiden för att hjälpa dig minimera din inlärningskurva. Växla mellan pekskärm och mus

Läs mer

Institutionen för matematik och datavetenskap Karlstads universitet. GeoGebra. ett digitalt verktyg för framtidens matematikundervisning

Institutionen för matematik och datavetenskap Karlstads universitet. GeoGebra. ett digitalt verktyg för framtidens matematikundervisning Karlstads GeoGebrainstitut Institutionen för matematik och datavetenskap Karlstads universitet Mats Brunström Maria Fahlgren GeoGebra ett digitalt verktyg för framtidens matematikundervisning Invigning

Läs mer

Nyheter i Mikromarc 2.6.1

Nyheter i Mikromarc 2.6.1 Nyheter i Mikromarc 2.6.1 Bibliotekscentrum Sverige AB, Växjö, oktober 2006 INNEHÅLLSFÖRTECKNING Inledning... 3 Websök... 4 Ämnesord... 4 Flytta lån... 4 Uniform titel... 5 Högertrunkering... 5 Övriga

Läs mer

Datorns delar DATORLÅDA CD/DVD-SPELARE/BRÄNNARE SKÄRM. DISKETT-STATION Finns sällan i nya datorer. TANGENTBORD

Datorns delar DATORLÅDA CD/DVD-SPELARE/BRÄNNARE SKÄRM. DISKETT-STATION Finns sällan i nya datorer. TANGENTBORD Datorns delar På en skivspelare kan du spela olika sorters musik som till exempel pop, rock, jazz, och klassiskt. Utan skivor är skivspelaren inget att ha. För att du ska kunna använda en dator måste du

Läs mer

INSPIRA. Microsoft. Word 2007 Grunder

INSPIRA. Microsoft. Word 2007 Grunder INSPIRA Microsoft Word 007 Grunder Del 1 1. Introduktion till Word 8. Hantera dokument 15 3. Redigera text 30. Format 53 3 REDIGERA TEXT REDIGERA TEXT Flytta insättningspunkten 30 Markera text 31 Redigera

Läs mer

Användarhandledning Version 1.2

Användarhandledning Version 1.2 Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...

Läs mer

The Grid 2. Grunderna för hur du kommer igång och arbetar med The Grid 2. Habilitering & Hjälpmedel

The Grid 2. Grunderna för hur du kommer igång och arbetar med The Grid 2. Habilitering & Hjälpmedel The Grid 2 Grunderna för hur du kommer igång och arbetar med The Grid 2 Habilitering & Hjälpmedel Starta programmet För att starta Mind Express manuellt, klickar du på Startknappen du hittar längst ner

Läs mer

Manual TorTalk version 1.3

Manual TorTalk version 1.3 Manual TorTalk version 1.3 Introduktion TorTalk är ett program vars funktion är att läsa upp text med talsyntes. Målet är att det ska var så enkelt som möjligt att använda. Därmed har antal funktioner

Läs mer

Föreläsnings 11 - GUI, Händelsestyrda program, MVC

Föreläsnings 11 - GUI, Händelsestyrda program, MVC Föreläsnings 11 - GUI, Händelsestyrda program, MVC Josef Svenningsson Tisdag 20/11 Boken Denna föreläsning går igenom följande sektioner i boken: 10.1 och 10.2 11.1 Notera att kapitel 11 inte finns i boken

Läs mer

Användarmanual icad Arkiv

Användarmanual icad Arkiv Användarmanual icad Arkiv Ett webbaserat ritningsarkiv från Astacus Användarmanual för icad Arkiv Ver 1.2 1 Förutsättningar: icad är ett digitalt ritningsarkiv som hanteras via ett webbgränssnitt. Ritningsarkivet

Läs mer

Vanliga frågor för VoiceXpress

Vanliga frågor för VoiceXpress Vanliga frågor för VoiceXpress 1) Hur stort ordförråd (vokabulär) innehåller VoiceXpress? VoiceXpress innehåller ett mycket omfattande ordförråd, och svaret på frågan varierar en aning beroende på hur

Läs mer

KAPITEL 5 Användbara program. Tillbehör. WordPad. Paint

KAPITEL 5 Användbara program. Tillbehör. WordPad. Paint KAPITEL 5 Användbara program Som jag nämnde i inledningen är Windows mycket mer än bara ett operativsystem. Det följer även med ett antal användbara program som är mycket användbara. Du har fått bekanta

Läs mer

QR-KODER. En kort guide till hur du bör tänka när du använder QR-koder i dina kampanjer.

QR-KODER. En kort guide till hur du bör tänka när du använder QR-koder i dina kampanjer. QR-KODER En kort guide till hur du bör tänka när du använder QR-koder i dina kampanjer. Vad är QR-koder? QR-koder, (Quick Response-koder), har blivit oerhört populära på senare tid. Varför? QR-koden har

Läs mer

Copema Supertoto, manual

Copema Supertoto, manual Copema Supertoto, manual Innehåll Sidan Bättre vinstchanser 2 Starta programmet 3 Create system, exempel 1 4 exempel 2 7 exempel 3 10 Ladda upp systemet 12 Rätta systemet 12 Odds 14 Print 15 Supertoto

Läs mer

Föreläsning 15: Repetition DVGA02

Föreläsning 15: Repetition DVGA02 Föreläsning 15: Repetition DVGA02 Vad handlar kursen om? Kursen kan i grova drag delas upp i tre delar: 1. Objekt-orienterad programmering 2. Grafiska användargränssnitt 3. Datastrukturer Dessutom genomsyras

Läs mer

Användarhandbok för användning med Windows-datorer. Kompatibla produkter: C-Pen 20/3.0/3.5

Användarhandbok för användning med Windows-datorer. Kompatibla produkter: C-Pen 20/3.0/3.5 Användarhandbok för användning med Windows-datorer Kompatibla produkter: C-Pen 20/3.0/3.5 VIKTIGT: C-Pen 3.5 innehåller ett uppladdningsbart Lithium-jon-batteri. Denna batteri-typ bör inte ligga oladdad

Läs mer

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas. Eclipse Avsikt Att bekanta dig med Eclipse programmeringsmiljö, dvs att med hjälp av Eclipse 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till byte-kod

Läs mer

Nya Aquila använder senaste versionen av våra verktyg: UniPaaS 1.9 (tidigare Magic), samt Crystal Reports version 12 (idag kör ni på version 8).

Nya Aquila använder senaste versionen av våra verktyg: UniPaaS 1.9 (tidigare Magic), samt Crystal Reports version 12 (idag kör ni på version 8). Beskrivning av nya Aquila 3 Nya Aquila använder senaste versionen av våra verktyg: UniPaaS 1.9 (tidigare Magic), samt Crystal Reports version 12 (idag kör ni på version 8). Aquila 3 är helt kompatibel

Läs mer

Användarhantering Windows 7 I denna laboration kommer vi att skapa nya användare och grupper och titta på hur man hantera dessa.

Användarhantering Windows 7 I denna laboration kommer vi att skapa nya användare och grupper och titta på hur man hantera dessa. Användarhantering Windows 7 I denna laboration kommer vi att skapa nya användare och grupper och titta på hur man hantera dessa. Antal: Enskilt Material: En dator med Windows 7 (Vista, Windows 8 eller

Läs mer