Framsteg i PHP

Så nöjd jag är just nu. Jag har lyckats gör mitt första lilla php-script, om man nu kan kalla de det. Det blev ett litet BlackJack spel. Riktigt nöjd är jag iallafall.

Jag har börjat är försöka sätta mig in i PHP nu när C# kursen börjar komma tillända. Så jag har börjat att tugga mig igenom PHP 5 programmering av Jesper Ek.
Mycket bra bok som går igenom det på ett bra pedagoiskt sätt. Dock kan det kännas att boken går lite fort fram om man inte har sysslat med någon sorts programmering innan, men som för en annan som nu har fått grunderna i C# så var den boken kanon att komma igång med.

När jag hade tagit mig ann de första 100 sidorna så kände jag för att göra något praktiskt och satt mig därför vid datorn för att komma fram med något kreativt.
Det första jag gjorde var att göra ett mindre login-script med konstanta användarnamn och lösenord, men med hjälp av sessions kollar om man har tillåtelse att tillträda ”admin” sidan eller inte.
Det är ju inte så avancerat, men precis lagom nivå att börja på. Man får kläm hur man kollar inmatade värden stämmer överens med de tilldelade användarnamn och lösenord och hur man behandlar det hela med hjälp av sessions och hur man tilldelar och använder det.

Mitt nästa lilla projekt var att jag skulle försöka göra ett litet BlackJack spel.

Det första problemet jag ställdes inför var hur jag skulle skapa en kortlek. Till slut valde jag att skapa en funktion som fyllde på en array med 13 kort av varje sort. Jag gjorde även så att man skulle kunna använda funktionen om man skulle vilja fylla på kortleken utan att få dubbletter.
Sedan använder jag mig av shuffle() funktionen för att bland ”korten” i arrayen. Det måste ju vara realistiskt.

Sedan valde jag att spelaren bara ska få två kort tilldelat till sig. Tyvärr kan man ju inte göra det så dynamiskt som man hade velat pga att PHP är server-side script, vilket innebär att det inte går att påverka när det väl har nått webbläsaren.
I vilket fall så går den sen till funktionen ”takort” där den kollar vilken valör första kortet i kortleken har. Om det är en knäckt, dam eller kung så ska de tolkas som 10. Skulle det var 1(Ess) så kollar funktionen om summan av korten är mindre eller lika med 10 så ska det tolkas som 11 annars tolkas det som 1.

Sedan är det dags för datorn att ta sina kort.
Här har jag gjort så att datorn måste ta kort tills summan av korten är 17 eller högre. Den skickas också till funktionen ”takort” som kollar värdet av första kortet och se hur det ska tolkas.

Efter det så jämför vi summan från spelaren och datorn och ser vem som har vunnit. Har de samma summa så vinner datorn och vid BlackJack vinner spelaren också annars måste spelaren har högre summa för att ses som segrare.

Till sist så skriver jag bara ut hur många kort som är kvar i kortleken.

Koden ser ut enligt följande:

<--- CODE BLOCK DELETED --->

Ni kan se hur script ser ut här: BlackJack

Har funderingar på att skapa en spelare till som man ska kunna styra på något sätt genom att man till den ett värde innan man börjar spela. T ex hur smart spelaren ska vara, men vi får se om det är något jag slutför.

Har ni några frågor/funderingar så tveka inte, utan hör av er.

  1. Martin Svara

    Varför inte börja implementera lite ajax så att den blir lite mer dynamisk ;)

    Vart nästan själv sugen på att fortsätta på skriptet.. *s*

  2. Jarnesjö Svara

    Jo, tanken är väl att jag ska göra det när jag får tid. När jag skrev ihop det så var min kunskap inom javascript inte den bästa, men nu skulle jag klara det så det kommer när tiden tillåter det.

  3. Jimmy Svara

    Spelarens kort:
    5S 3S = 8

    Datorns kort:
    5R 2H 11K = 17

    Du förlorade!
    :(

    Inte fel att stanna på 8 :P
    Du skulle låta spelaren dra lite mer. Kanske att köra upp till 13-16 åtminstone, beroende på vad dealern har för första kort, eller följa denna modellen: http://redbullvodka.se/blackjack/ :)

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>