Android programmering, poängsystem?

Permalänk
Medlem

Android programmering, poängsystem?

Tjenare!
Har suttit och pillat på ett litet android spel ett tag nu och börjar bli rätt klar, det enda som saknas är ett poängsystem, vilket jag har fastnat på lite.
http://fuskbugg.se/dl/noPYqE/help.png (bry er inte om den gamla microsoft sök-hunden, något som fuskbugg fann roligt)
Som ni kan se så hittar den om det är 3 i rad av samma bild på både rader och kolumner, detta skrivs då ut som "3" i de nedre textviews (så jag vet att det funkar)
koden ser ut såhär:
if(v==btGetScore){ //Get score
int []resultat;
int []resultatcol;
int summa = 0;
int k = 0;
for(int a=1;a<=6;a++){
/* skicka en rad åt gången */
//int a = 1;
resultat = testScore.testRow(a, bildid);
if(a==1){
txtScore1.setText("row: "+resultat[1]+" "+resultat[2]+" "+resultat[3]+" "+resultat[4]+" "+resultat[5]+" "+resultat[6]);
for (k = 1; k<=4; k=k+1)
{if (resultat[k]==3) summa = summa+1;
}
givetvis är det för alla rader och sedan kolumner, den är i princip likadan så tror inte ni är intresserad av 40 rader kod^^
Nu till saken! Jag har en knapp "Action", tanken är att när man trycker på den så byter den ut alla platser som anbelangar "3" dvs 3 av samma i rad och textviewn "score" som ni ser med grå text under själva spelet skall varje gång adderas med ett.
Detta vet jag dock inte hur jag skall gå till väga, utan ber er därför om hjälp!

Slumpgeneratorn till bilderna:
/* Pictures */
bilderna[1]=R.drawable.b1;
bilderna[2]=R.drawable.b2;
bilderna[3]=R.drawable.b3;
bilderna[4]=R.drawable.b4;
bilderna[5]=R.drawable.b5;
bilderna[6]=R.drawable.b6;

/* Random Generator For Pictures */
for(int i=1;i<7;i++)
{ //0 till 6 då körs 6 varv: 0,1,2,3,4,5
for (int j = 1;j<7;j++) {
jewels[i][j].setOnClickListener(this);
}
}

for(int i=1;i<7;i++)
{ //0 till 6 då körs 6 varv: 0,1,2,3,4,5
for (int j = 1;j<7;j++) {
int k = getslump(1, 6);
// bilderna[k];
jewels[i][j].setImageResource(bilderna[k]);
bildid[i][j] = k;

}
}
Jag har försökt få den att byta ut bilderna automatiskt igenom att hela tiden söka igenom efter "3"or men koden är för avancerad för mig för att jag skall klara av den i nuläget, därför tar jag den enklare steget med en knapp för byte av 3bilder i rad och poäng.. Men det har jag inte heller riktigt lyckats med^^

Uppskattar all hjälp och önskar en trevlig vecka!
Mvh // Grante

Permalänk
Medlem
Skrivet av Grante:

Tjenare!
Har suttit och pillat på ett litet android spel ett tag nu och börjar bli rätt klar, det enda som saknas är ett poängsystem, vilket jag har fastnat på lite.
http://fuskbugg.se/dl/noPYqE/help.png (bry er inte om den gamla microsoft sök-hunden, något som fuskbugg fann roligt)
Som ni kan se så hittar den om det är 3 i rad av samma bild på både rader och kolumner, detta skrivs då ut som "3" i de nedre textviews (så jag vet att det funkar)
koden ser ut såhär:
if(v==btGetScore){ //Get score
int []resultat;
int []resultatcol;
int summa = 0;
int k = 0;
for(int a=1;a<=6;a++){
/* skicka en rad åt gången */
//int a = 1;
resultat = testScore.testRow(a, bildid);
if(a==1){
txtScore1.setText("row: "+resultat[1]+" "+resultat[2]+" "+resultat[3]+" "+resultat[4]+" "+resultat[5]+" "+resultat[6]);
for (k = 1; k<=4; k=k+1)
{if (resultat[k]==3) summa = summa+1;
}
givetvis är det för alla rader och sedan kolumner, den är i princip likadan så tror inte ni är intresserad av 40 rader kod^^
Nu till saken! Jag har en knapp "Action", tanken är att när man trycker på den så byter den ut alla platser som anbelangar "3" dvs 3 av samma i rad och textviewn "score" som ni ser med grå text under själva spelet skall varje gång adderas med ett.
Detta vet jag dock inte hur jag skall gå till väga, utan ber er därför om hjälp!

Slumpgeneratorn till bilderna:
/* Pictures */
bilderna[1]=R.drawable.b1;
bilderna[2]=R.drawable.b2;
bilderna[3]=R.drawable.b3;
bilderna[4]=R.drawable.b4;
bilderna[5]=R.drawable.b5;
bilderna[6]=R.drawable.b6;

/* Random Generator For Pictures */
for(int i=1;i<7;i++)
{ //0 till 6 då körs 6 varv: 0,1,2,3,4,5
for (int j = 1;j<7;j++) {
jewels[i][j].setOnClickListener(this);
}
}

for(int i=1;i<7;i++)
{ //0 till 6 då körs 6 varv: 0,1,2,3,4,5
for (int j = 1;j<7;j++) {
int k = getslump(1, 6);
// bilderna[k];
jewels[i][j].setImageResource(bilderna[k]);
bildid[i][j] = k;

}
}
Jag har försökt få den att byta ut bilderna automatiskt igenom att hela tiden söka igenom efter "3"or men koden är för avancerad för mig för att jag skall klara av den i nuläget, därför tar jag den enklare steget med en knapp för byte av 3bilder i rad och poäng.. Men det har jag inte heller riktigt lyckats med^^

Uppskattar all hjälp och önskar en trevlig vecka!
Mvh // Grante

Jag vet inte om jag förstår problemet så jag lägger fram ett par påståenden som du får kommentera.

Du har lyckats att identifiera när det är tre identiska bilder i rad/kolumn, vi kallar dessa "3 i rad".
Du vill nu öka spelarens poäng med 1 (ett) för varje "3 i rad" som finns.
För varje "3 i rad" så vill du ta bort bilderna som denna "3 i rad" innehåller.
För varje "3 i rad" så vill du generera nya bilder på de förgående positionerna.

Om dessa påståenden stämmer så gäller det bara att du gör den första biten så pass bra som möjligt.
När du hittar "3 i rad" så returnerar du detta som ett eget resultat. Resultatet innehåller en lista med positioner.
På detta vis kan du alltså hämta antalet "3 i rad" och i sin tur loopa igenom alla positioner för varje "3 i rad".
Med denna informationen så kan du ge ett poäng för varje "3 i rad" samt ta bort/generera nya bilder för de gamla positionerna.

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem
Skrivet av Leedow:

Jag vet inte om jag förstår problemet så jag lägger fram ett par påståenden som du får kommentera.

Du har lyckats att identifiera när det är tre identiska bilder i rad/kolumn, vi kallar dessa "3 i rad".
Du vill nu öka spelarens poäng med 1 (ett) för varje "3 i rad" som finns.
För varje "3 i rad" så vill du ta bort bilderna som denna "3 i rad" innehåller.
För varje "3 i rad" så vill du generera nya bilder på de förgående positionerna.

Om dessa påståenden stämmer så gäller det bara att du gör den första biten så pass bra som möjligt.
När du hittar "3 i rad" så returnerar du detta som ett eget resultat. Resultatet innehåller en lista med positioner.
På detta vis kan du alltså hämta antalet "3 i rad" och i sin tur loopa igenom alla positioner för varje "3 i rad".
Med denna informationen så kan du ge ett poäng för varje "3 i rad" samt ta bort/generera nya bilder för de gamla positionerna.

Det är exakt det jag vill åstadkomma!
Saken är den att jag inte vet hur jag skall skriva koden?

Permalänk
Medlem
Skrivet av Grante:

Det är exakt det jag vill åstadkomma!
Saken är den att jag inte vet hur jag skall skriva koden?

Det finns massor av olika sätt att skriva koden. Alla scenarion som jag kan komma på går ut på att ändra din befintliga kod för att hitta "3 i rad".
Ett potentiellt problem som jag ser är att du vill att det ska slumpas fram nya bilder på de gamla positionerna. Inget spel som jag vet om fungerar på detta sätt och jag vet inte om det ens går att göra ett hållbart spel på det sättet. Vanligtvis så faller det bitar nedåt uppifrån för att fylla hålet som blir när "3 i rad"-gruppen försvinner. Samtidigt så har ditt bildexempel inte tagit hänsyn till vad som händer om det är fyra, fem eller sex i rad och om det är kombinerat 3-6 i rad med rad och kolumn tillsammans. Detta är ju då såklart mer om spellogiken än om själva programmeringen. Det är däremot osäkerheten med detta som gör att jag inte vill skriva för mycket kod som sedan bara kan skrotas för att det inte räcker.

För att lösa programmeringen så kommer det krävas att du skriver om dina befintliga metoder testRow och testCol. Det räcker inte med att returnera hur många det är av varje bild, du behöver koordinaterna (rad/kolumn) för varje bild.

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?