Förslag på pseudokod till kortspelet Datagurka

From Datagurka
Jump to: navigation, search


Förslag 1

Komplett förslag finns på: http://datagurka.wiki/index.php/Datagurka_0.2


Förslag 2

Datagurkan behöver ändras så att man lägger de högsta korten först så att man till sist har så lågt kort som möjligt. Dock måste datagurkan följa regler som alla andra spelare.

Man måste förbättra algoritmen

Algoritmen kan vara att datagurkan ska sortera korten så att det högsta kortet är en prioritering. När det sedan är dags för datagurkan att lägga ett kort ska den kolla igenom det lägsta korten som då är sorterat först. Om det kortet inte lyder reglerna går den vidare till nästa o.s.v. tills det hittar det bästa kortet.

Först måste man ha en algoritm där datagurkan sorterar värden på korten så att det högsta är först. Den gör det genom att jämföra två i taget om den minsta är först byter man plats på siffrorna så att den högsta kommer först. Sedan ska den fortsätta att göra så och börja om och om igen ända tills inga siffror behöver byta plats d.v.s. är den första kortet först och det lägsta kortet sist. Det första kortet som är högst är det datagurkan alltid ska lägga. Dock måste man följa regler. Då behöver vi en till algoritm. När man skriver in värdet på kortet spelaren till höger har spelat ska datagurkan jämföra den med det första kortet. Om datagurkans första kort är högre än det kortet som spelats ska datagurkan spela det kortet. Om kortet är lägre ska datagurkan jämföra det kortet med datagurkans andra kort ända tills det hittar rätt. Om det är så att datagurkan inte har ett kort som är högre än det som spelats ska datagurkan spela det sista kortet alltså det lägsta.

Förslag 3

  1. Tar upp alla mina kort
  2. Sortera korten
  3. Lägga minsta korten på en sida och största på den andra sidan
  4. Titta på det första kortet som är lagt
  5. Om det första lagda kortet är lågt så lägger jag mitt "mittemellankort"ex:mellan 7 och 9 är 8
  6. Om det första lagda kortet är högt så lägger jag ett högre kort (om jag har det)
  7. Om jag inte har högsta kort så följer jag efter hens istruktionen

Förslag 4

Min strategi är att alltid spela näst högsta kortet om jag kan. Här är ett exempel:

  1. Anta att jag har korten 2,4,7,11,14
  2. Och någon lägger kortet 10.
  3. Då lägger jag 11 istället för 14 för i detta läget så är det smart att spara den höga kortet.
  4. För ifall någon efter lägger 13 så har du 14 kvar men om du hade slösat den så skulle du va tvungen att lägga dina lägsta

Förslag 5

  1. förbered dig på att hålla ordning på i vilken ordning du får dina kort
  2. förbered dig på att hålla ordning på vilket kort spelaren före dig i omgången lägger
  3. förbered dig på att hålla ordning på hur du sorterar dom kort du har på hand
  4. registrera korten du får i den ordning du får dom
  5. registrera vilket kort spelaren före dig lägger första varvet
  6. om du har högre kort då du ska spela ditt närmast högre kort

Förslag 6

  1. Ta upp korten
  2. Jämför kort 1 och 2
  3. Flytta lägsta ett steg till höger
  4. Jämför kort 2 och 3
  5. Flytta lägsta ett steg till höger
  6. Jämför kort 3 och 4
  7. Flytta lägsta ett steg till höger
  8. Jämför kort 4 och 5
  9. Flytta lägsta ett steg till höger
  10. Repetera tills inget kort går att flytta
  11. Kolla värdet på kortet som person 1 spelat
  12. Är värdet på kortet som spelats av person 1 högre än kortet längst till vänster? Spela då kortet längst till höger.
  13. Spela annars kortet längst till vänster
  14. Repetera tills 4 av dina kort har spelats

http://koda.nu/arkivet/24574539

Reviderad kod till förslag 6 finn här: kod till förslag 6

Förslag 7

Algoritmen måste förbättras på följande sätt. Man lägger det högsta korten först så att man till sist har så lågt kort som möjligt och dessutom måste data gurkan följa reglerna som alla andra spelare. Data Gurkan som finns nu spelar ut de kort med lägst värde först så att man blir kvar med de korten med högst värde. Man måste därför vända på proceduren. Spela ut högst kort först och på så sätt bli kvar med de lägsta korten Ett par ändringar man kan skapa skulle kunna vara att skriva in en bokstav på kortets värde istället för siffra. Det skulle underlätta det för spelarna. Ex. skriva B istället för 15. Men huvudsakligen skall man göra så att data gurkan prioriterar att spelar ut de korten med högst värde först och hålla kvar de som har lågt värde. Data Gurkan kan ex. lägga en 6a ifall det finns en 8a på bordet fast det lägsta värdet av korten som personen har är 4a. Det räknas då som fusk och därför måste man koda in rätt regel när man kodar


  1. Kom ihåg att alltid prioritera att lägga det näst största kortet.
  2. Ta upp alla mina kort.
  3. Sortera korten från lägst till störst värde.
  4. Registrera alla mina kort
  5. Registrera vad personen innan dig la ut
  6. Kolla på mina kort
  7. Om det första spelade kortet är lågt så spelar jag mitt “ mittemellan kort “ ex. Mellan 6 och 8 är 7 ett bra val.
  8. Om det första kortet är högre en mitt näst största kort lägger jag mitt största kort
  9. Om det första kortet är högre en mitt största kort lägger jag det minsta.
  10. Spela mitt första kort
  11. Registrera vad personen innan dig spelade i andra rundan
  12. Repetera procedur i steg 6- 8
  13. Spela ditt andra kort
  14. Spela så tills spelet är slut ( ca 4 gånger )
  15. Nu är spelet slut


Min pseudokod förbättrar spelet på följande sätt. Man vinner och därmed blir spelet roligare. Om man kollar på steg 7-8 i min pseudokod så ser man att de stegen förbättrar spelandet genom att förklara reglerna och tankesättet för spelaren. Ex. Anta att jag har korten 2,4,7,11,14 och att någon lägger kortet 10. Då lägger jag 11 istället för 14 för i detta läget så är det smart att spara den höga kortet eftersom ifall någon efter mig lägger 13 så har jag 14 kvar men om jag hade slösat kortet så skulle jag vara tvungen att lägga mitt lägsta kort som skulle resultera i att jag förlorar och spelet skulle inte vara kul.


Förslag 8

När jag spelar Datagurka brukar jag ta alla mina kort och lägga dem från högst till minst i händerna så att när spelaren innan mig lägger ett kort kan jag gå genom mina kort från höger till vänster och det första kortet som jag kan använda kommer jag att använda,troligtvist kommer kortet vara det största kortet som är användbart. vid slutet av rundan kommer man då ha minsta kortet som man troligen kunde få.

tanken bakom min förbättring är att få datagurkan att fungera med logiken av sortering (som t.e.x bubblesort), då sorteras korten från högst till minst, som kommer göra att kortet som kommer finnas kvar kommer troligtvist vara det minsta bästa. detta kan så klart göras med hjälp av att lägga in en sorterings algorithm in till Datagurka 0.1 som kommer göra att kortet som den automatiskt använder kommer att vara det största kortet som är användbart

Pseudokod för mitt förslag

runda 1

  1. FÖrst när du får korten titta genom värden på varje kort
  2. sortera sedan korten från högst till minst från höger till vänster
  3. håll öga på vilket kort spelas från spelaren innan dig
  4. beroende på vilket kort som spelades, gå från höger till vänster och använd första kortet som är användbart

Förslag 9

Datagurkan tänker för mycket som en dator. Den kan förbättras genom att man gör att den tänker mer som en människa. Datagurkan väljer alltid det största kortet. Istället borde den behålla det minsta kortet och lägga den näst största kortet. Ifall den hade spelat såhär så hade den haft det minsta och högsta kortet kvar på slutet.

Förslag 10

Tanken bakom min förbättring är att få datagurkan att fungera som en sorterings maskin som kommer göra att kortet som kommer finnas kvar troligtvis kommer vara det minsta bästa. Detta kan så klart göras med hjälp av att lägga in en sorteringsalgoritm in till Datagurka 0.1 som kommer göra att kortet som den automatiskt använder kommer att vara det största kortet som är användbart

Förslag 11

  1. Ta emot dina kort
  2. Sortera dina kort i den ordning du får dem i, från lägst till störst
  3. Registrera dina kort i den ordning du får dem
  4. Spelaren före dig lägger ett kort i första varet
  5. Registrera kortet som hen har lagt
  6. Kolla på dina givna kort
  7. Om ditt första kort är högre i värde än kortet som din medspelare la, ska du
    1. spela ditt högsta kort
  8. Sedan ska din medspelare lägga ett kort i andra varvet
  9. Registrera kortet som hen har lagt
  10. Om ditt andra kortet är lägre i värde än kortet som din medspelare la ska du
    1. spela ditt lägsta kort
    2. Notera vilket kort du just lagt i ordning
  11. Registrera vilket kort din medspelare har lagt in i tredje varvet
  12. Om ditt tredje kort är högre i värde än kortet som din medspelare la, ska du
    1. spela ditt kortet
  13. Om kortet som din medspelare har högre i värde än ditt tredje kort, ska du
    1. Spela ditt lägsta kort
    2. Notera vilket kort du just lagt i ordning
  14. Spelaren före dig lägger ett kort i fjärde varvet
  15. Om ditt fjärde kort har ett högre värde, ska du
    1. spela ditt fjärde kort
  16. Om ditt fjärde kort är lägre i värde än kortet som din medspelare la, ska du
    1. Spela ditt lägsta kort
    2. Notera vilket kort du just lagt i ordning
  17. Registrera vilket kort din medspelare lägger i femte varvet
  18. Avsluta spelet


Förslag 12

  1. runda 1
    1. om du kan , lägg ditt näst högsta kort
    2. om du inte kan och kortet din motståndare lägger är högren din lägsta så lägger du något högre.
  2. runda 2
    1. om du kan , lägg ditt högsta kort
    2. om du inte kan och kortet din motståndare lägger är högren din mellersta kort så lägger du något högre.
  3. runda 3
    1. om du kan, lägg ditt näst högsta kort.
    2. om du inte kan lägga ditt näst högsta kort ska du
      1. om det verkligen är nödvändigt ska du lägga ditt lägsta kort
      2. om det inte är nödvändig ska du lägga ditt näst högsta kort
  4. runda 4
    1. om du kan lägg ditt högsta kort eftersom detta är sista rundan och du vill ha kvar ditt lägsta kort.
    2. om du inte kan så är du tvungen att lägga ditt lägsta kort som gör så att du har en högre chans att förlora eftersom då måste du gå ut med ditt högsta.

kodning pågår : http://koda.nu/arkivet/94871794

Förslag 13

Förbättring av datagurka: Det som är viktigt att tänka på när du spelar datagurka är att alltid komma ihåg att registrera alla kort som ska registreras. Men det viktigaste är att att du alltid ska prioritera att lägga ditt näst högsta kort.

  1. Välj ut vem som skall vara datagurka.
  2. Låt datagurkan dela ut 5 kort till varje spelare och även till sig själv.
  3. Tag upp dina 5 kort.
  4. Om du vill har du nu möjligheten att sortera dina 5 kort som du håller i handen.
  5. Tag ditt första kort och registrera det i datagurkan.
  6. Tag ditt andra kort och registrera det i datagurkan.
  7. Tag ditt tredje kort och registrera det i datagurkan.
  8. Tag ditt fjärde och registrera det i datagurkan.
  9. Tag ditt femte kort och registrera det i datagurkan.
  10. Registrera alla 5 kort som spelaren till höger om dig har.
  11. En av spelarna lägger fram ett av sina kort.
  12. Registrera spelarens kort i datagurkan.
  13. Fortsätt varvet runt tills det kommer till dig.
  14. Försök att lägga ett högre kort än vad föregående spelaren innan dig la. (Det måste inte vara ditt bästa bara det är högre än det som förra spelare la.)
  15. Om du inte har ett större kort än än det som föregående spelaren la ska du lägga ditt minst kort men du ska prioritera att lägga ditt näst högsta kort.
  16. Registrera ditt kort i datagurkan.
  17. Varv 2: Du ska nu spela med ditt andra kort.
  18. Låt föregående spelare lägga sitt kort.
  19. Registrera spelarens kort i datagurkan.
  20. Se efter vad föregående spelare la för kortvärde innan dig och därefter ska du lägga ditt näst högsta kort om du kan. Om föregående spelaren kort är högre än ditt näst största kort lägger du ditt högsta men om. Men om spelarens kort är större än ditt störst kort lägger du ditt minsta.
  21. Registrera ditt kort i datagurkan.
  22. Varv 3: Spela nu med ditt tredje kort.
  23. Låt föregående spelare lägga sitt kort.
  24. Registrera spelarens kort i datagurkan.
  25. Se efter vad föregående spelare la för kortvärde innan dig och därefter ska du lägga ditt näst högsta kort om du kan. Om föregående spelaren kort är högre än ditt näst största kort lägger du ditt högsta men om. Men om spelarens kort är större än ditt störst kort lägger du ditt minsta.
  26. Registrera ditt kort i datagurkan.
  27. Varv 4: Spela nu med ditt fjärde kort.
  28. Låt föregående spelare lägga sitt kort.
  29. Registrera spelarens kort i datagurkan.
  30. Se efter vad föregående spelare la för kortvärde innan dig och därefter ska du lägga ditt näst högsta kort om du kan. Om föregående spelaren kort är högre än ditt näst största kort lägger du ditt högsta men om. Men om spelarens kort är större än ditt störst kort lägger du ditt minsta.
  31. Registrera ditt kort i datagurkan.
  32. Varv 5: Spela nu med ditt femte och sista kort.
  33. Låt föregående spelare lägga sitt kort.
  34. Registrera spelarens kort i datagurkan.
  35. Se efter vad föregående spelare la för kortvärde innan dig och därefter ska du lägga ditt näst högsta kort om du kan. Om föregående spelaren kort är högre än ditt näst största kort lägger du ditt högsta men om. Men om spelarens kort är större än ditt störst kort lägger du ditt minsta.
  36. Registrera ditt kort i datagurkan.
  37. Spelet är avslutat.