Måske kender du spillet Bejeweled eller Jewels fra din iPhone eller Android-telefon. Hvis du gør, så har du sikkert også lagt mærke til, at det er utroligt fængende og meget tidskrævende. Det har jeg i hvert fald lagt mærke til. Så nu har jeg sat mig for at skrive en algoritme, der kan spille det for mig, så jeg ikke selv behøver gøre det.
I denne første artikel beskriver jeg de regler algoritmen skal spille efter.
Der er flere forskellige firmaer, som producer spillet under forskellige navne. Reglerne varierer derfor lidt alt efter producent, platform og version. Jeg har taget udgangspunkt i en simpel variant.
Spillets regler
Spillet består af en spilleplade med 8x8 felter, hvorpå der placeres juveler i 7 forskellige farver. Juvelerne placeres tilfældigt på pladen ved spilstart.
Formålet med spillet er at samle juveler i sæt af 3, 4 eller 5 på række enten lodret eller vandret. Det er af gode grunde ikke muligt at samle sæt på flere end 5 juveler. Juvelerne kan kun flyttes ved at bytte rundt på to juveler enten lodret eller vandret. Når juvelerne samles i sæt, forsvinder de automatisk fra pladen. Jo flere juveler i sættet, jo flere point får man.
Når et juvelsæt forsvinder fra pladen, falder de ovenstående juveler automatisk ned på de tomme pladser og nye juveler "falder ned" i tilfældig orden fra toppen af brættet. Hvis juvelerne danner nye sæt, når de falder ned, forsvinder de nye sæt også automatisk. Pladen fyldes op med juveler, indtil der ikke er flere sæt tilbage på pladen. Jo flere sæt man kan fjerne efter hinanden, jo flere point får man for hvert efterfølgende sæt.
Reglerne for at flytte rundt på pladen er altså simple:
- En juvel kan kun flyttes ved, at den bytter plads med en anden juvel.
- Juveler kan kun bytte plads, hvis de er placeret i felter umiddelbart ved siden af, over eller under hinanden.
- Juveler kan kun bytte plads, hvis der ved ombytningen skabes mindst ét sæt.
Reglerne for point er lidt mere kringlede:
- Når juveler samles i sæt af 3, 4 eller 5 giver det point
- Jo flere juveler i sættet, jo flere point giver det
- Når flere sæt samles i en serie, giver det en bonus
- Jo flere sæt i serien, jo flere point giver hvert sæt
Det er ikke vigtigt for algoritmen, men for eksemplets skyld har jeg givet juvelerne farver og fastsat nogle pointtal.
- Juveler kan være røde, grønne, blå, violette, gule, orange eller hvide.
- Et sæt på 3 juveler giver 100 point.
- Et sæt på 4 juveler giver 200 point.
- Et sæt på 5 juveler giver 300 point.
- Hvert ekstra sæt i en serie giver 300 point mere end det forrige.
Med disse simple regler på plads kan jeg tage fat på næste opgave; at skrive en algoritme.
