Hjälp/riktlinjer för programmering av "Jewels" spel!

Discussion in 'Frågor, support och diskussion' started by Grante, Feb 15, 2013.

  1. Grante

    Grante Infant Droid Medlem

    Joined:
    Feb 15, 2013
    Messages:
    1
    Likes Received:
    0

    MINA ENHETER

    Tjenare!
    Är på mitt 2dra år i gymnasiet och går en kurs i android programmering, jag skulle behöva lite hjälp med ett projekt som jag suttit och filat på ett tag.
    Tanken är att det skall bli ett spel, ungefär som android spelet "Jewels"
    http://myappworld.com/wp-content/upl...pp-200x300.jpg

    Jag har kommit så långt att jag har fått bilderna att random placeras ut över ett fält med 36 imagebuttons, sen även att man kan byta bild, dvs du trycker på en som är grön och den under som är röd och de byter färg. (ska ta mig i kragen och fixa vettigare bilder, men det är inte prio1 i dagsläget)
    http://imgur.com/P0QhtcL


    Till mitt problem!
    1) Tanken är ju att man skall kunna byta bild med de närmsta 4 bilderna, som formen av ett kors "+", men nu kan du byta bild från ett hörn till ett annat... Hur gör man för att begränsa det hela?

    2 )Skulle behöva ett poängsystem, då man får 3 i rad så får man ett poäng(som visas nere på den svarta raden) och de tre bilderna får på nytt 3 random bilder. Vet inte om man skulle kunna göra så att det automatiskt tar reda på om det finns 3 stycken av samma bild i rad och utför resten av sig själv, eller om man ska måsta trycka på den bild som är i mitten och sedan på knappen "Action" (då kollar den om det finns en av samma bild så att det bildar 3 i rad). Samtidigt som man får poäng så uppfattar den hur många "drag" du gör och räknar dem. Vet inte riktigt vad som blir smidigast/lättast att programmera och hur jag skall gå till väga.

    3 ) Sen så skall man ju inte heller få spela hur länge som helst! Det vore ju för enkelt att farma poäng på!
    Om man skulle sätta ett antal drag/steg man får göra, eller antal drag man gör under en viss tid som räknar ned. Ta sedan drag / poäng och få slutpoäng.

    Vet inte om jag kanske ber om för mycket här, men jag uppskattar i alla fall all hjälp som ges!
    Länkar som kan vara till hjälp uppskattas självklart, guider, information eller dylikt!

    Jag lägger upp mitt projekt här så att man kan titta på koden(vet att projekt namnet är lite miss-ledande, hade först tänkt göra ett snake spel^^)
    http://www.2shared.com/file/wUzsFCwh/SpelSnake.html
    http://fuskbugg.se/dl/ffmkkS/SpelSnake.rar

    Tackar ödmjukast om ni tar er tid att hjälpa till!
    Mvh // Grante
     
  2. Phpanos

    Phpanos Teen Droid Medlem

    Joined:
    Nov 11, 2010
    Messages:
    456
    Likes Received:
    61
    Telefon:
    Nexus 6P

    MINA ENHETER

    Telefon:
    Nexus 6P
    Jag är ingen spelprogrammerare men kan tänka mig att man gör ett kordinatsystem så att man enkelt kan få tag på de bilderna runt om den aktiva. Dvs att man delar upp spelplanen i rader + kolumner. <-- Litet svar på fråga 1.
     
  3. e7andy

    e7andy Professional Droid Hedersmedlem

    Joined:
    Oct 14, 2009
    Messages:
    2 349
    Likes Received:
    835
    Telefon:
    Huawei P10 Plus

    MINA ENHETER

    Telefon:
    Huawei P10 Plus
    Telefon 2:
    Nexus 5
    Telefon 3:
    ADP1
    Övrigt:
    LG G Watch R, ChromeCast
    Skapa lite entiteter som kan hantera ditt spel.
    Lämpligt är kanske GameBoard och Tile till att börja med.

    GameBoard håller koll på alla Tiles som finns på spelplanen.
    GameBoard har en metod för att veta om drag är giltiga t.ex. att från hörn till hörn inte är giltigt. Det går att kolla att en Tiles position endast går att byta med en annan som har en position som är -1 eller +1 i x- eller y-led med min- och max-värde på 0 och 5.
    GameBoard kan också hålla koll på poäng, antal drag etc. En teknik är att lägga en räknare och varje gång ett drag görs så plussar du på räknaren.
    Så initialt skapar du metoderna isSwapValid, swapTiles och kanske increaseSwapCounter...eller vad nu din spellogik kräver.

    Tile har koll på vilken färg den har och hur den ritas upp. Kanske även plats...det får man prova sig fram till var det är lämpligast att lägga ansvaret.

    Så din aktivitet skapar ett GameBoard och GameBoard skapar alla Tiles.

    Se till att lägga ut ansvaret på rätt ställe så att inte allt hamnar in en jätteklass där allt görs. Då blir det jobbigt att hantera det.