Nur bestimmte Bilder aus einem Array auf Image Button anzeigen lassen

Schniffi

Neues Mitglied
Einen wundervollen guten Abend,

ich bin noch sehr neu in der Java Programmierung und habe meine ersten Schritte mit Android Studio mit zwei Büchern und Youtube Videos gestartet, nun komme ich nicht mehr so recht weiter und hoffe hier evtl. Hilfe bzw. Denkanstöße zu bekommen :)

Ich bin dabei ein Spiel mit Karten zu erstellen. Es wird per Klick eine von etwa 300 zufälligen Karte gezogen. Es gibt 3 Regelfelder für Regelkarten darunter, von denen es etwa 40 Stück gibt.

Wird eine Regel gezogen, soll sie entweder automatisch auf eins der drei freien Regelfelder wandern oder ich lege sie dort per Klick ab. Zur Zeit funktioniert es nur die gezogene Karte auf einem Regelfeld abzulegen, ungeachtet davon ob es eine Regel oder eine andere Karte ist.

So sieht mein Code dafür momentan aus:

btnRule1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
currentCard1();
}
});

private void currentCard1 () {
if (randomIconPointer >= 0 ) {
btnRule1.setBackgroundResource( icons.getResourceId(getIcon(), 1));
}
}



Hier der Code für die nächste gezogene Karte, evtl. kann man die Funktion bzw. die Überprüfung der aktuellen Karte auch hier einbauen?


private void changeImage() {
iv.setBackgroundResource(icons.getResourceId(nextIcon(), 1));
}
private void changePrevImage() {
iv.setBackgroundResource(icons.getResourceId(prevIcon(), 1));
}

private int getIcon(){
return randomIconSequence[randomIconPointer];
}

private int nextIcon(){
randomIconPointer = randomIconPointer + 1;
if (randomIconPointer >= randomIconSequence.length) {
randomIconPointer = 0;
}
return randomIconSequence[randomIconPointer];
}


Sobald die 3 Regelfelder voll sind und eine 4te Regel wird gezogen, soll eine ausgetauscht werden können, eigentlich per Wahl, aber es wäre auch okay das immer von 1-3 belegt und überschrieben wird. Ich komme einfach nicht recht voran, das Projekt startete bereits im Juni und ist mein erstes überhaupt. Es macht Spaß die kleinen "Puzzle" zu lösen und Erfolge zu haben, aber langsam bin ich an dem Punkt wo ich nicht mal mehr recht weiß wonach ich googlen soll.
Für andere Ideen bin ich ebenfalls offen.

Falls das hier jemand ließt und etwas Ahnung hat, wäre ich super happy über Lösungswege oder Denkanstöße, die mir helfen weiter voran zu kommen :)

Gruß Schniffi
 

Robertop

Bekanntes Mitglied
So, wie du das beschrieben hast, würde ich glaube ich die Abfrage, ob eine Karte auf einem Regelfeld abgelegt werden darf, in den Button machen, der sie auf dem Regelfeld ablegt. Wenn der Benutzer dann den Button drückt könnte eine Meldung kommen, dass er das nicht darf. Eine andere Möglichkeit wäre, man macht die Abfrage beim Ziehen der neuen Karte rein und deaktiviert die Regelfelder komplett, wenn es keine Regelkarte ist.
Die erste Möglichkeit gefällt mir aus Spieler-Sicht aber besser, weil das Spiel dann nicht so viel vorgibt. Ich mag es immer nicht, wenn ein Spiel so viel Hilfestellungen bietet, dass es eigentlich nur noch durchklicken ist ohne nachzudenken.

Die Abfrage selbst würde ich gar nicht über das Image direkt regeln. In deinem Array sind, wenn ich das richtig verstehe, alle "Icons" drin und schon vermischt, als würden sie auf einem gemischten Kartenstapel liegen. Ist Icon eine Klasse von dir? Wenn ja, dann könnte man dort eine zusätzliche Eigenschaft rein nehmen, ob die Karte eine Regelkarte ist, oder nicht.

Wenn Icon keine Klasse von dir ist, dann weißt du ja trotzdem, welche Icon Nummern die Regelkarten sind, und welche nicht. Das kannst du dann eventuell in einer anderen Liste hinterlegen, die dann überprüft wird. Ich schätze aber, dass deine Karten noch ein paar andere Eigenschaften haben werden, als nur Regelkarte Ja/Nein, deshalb wäre es sowieso gar nicht so schlecht, eine eigene Klasse "Spielkarte" dafür anzulegen, bevor du weitermachst.

PS: Poste Code beim nächsten Mal bitte in Code-Tags. Das macht den viel leichter lesbar.
 

Schniffi

Neues Mitglied
So, wie du das beschrieben hast, würde ich glaube ich die Abfrage, ob eine Karte auf einem Regelfeld abgelegt werden darf, in den Button machen, der sie auf dem Regelfeld ablegt. Wenn der Benutzer dann den Button drückt könnte eine Meldung kommen, dass er das nicht darf. Eine andere Möglichkeit wäre, man macht die Abfrage beim Ziehen der neuen Karte rein und deaktiviert die Regelfelder komplett, wenn es keine Regelkarte ist.
Die erste Möglichkeit gefällt mir aus Spieler-Sicht aber besser, weil das Spiel dann nicht so viel vorgibt. Ich mag es immer nicht, wenn ein Spiel so viel Hilfestellungen bietet, dass es eigentlich nur noch durchklicken ist ohne nachzudenken.

Die Abfrage selbst würde ich gar nicht über das Image direkt regeln. In deinem Array sind, wenn ich das richtig verstehe, alle "Icons" drin und schon vermischt, als würden sie auf einem gemischten Kartenstapel liegen. Ist Icon eine Klasse von dir? Wenn ja, dann könnte man dort eine zusätzliche Eigenschaft rein nehmen, ob die Karte eine Regelkarte ist, oder nicht.

Wenn Icon keine Klasse von dir ist, dann weißt du ja trotzdem, welche Icon Nummern die Regelkarten sind, und welche nicht. Das kannst du dann eventuell in einer anderen Liste hinterlegen, die dann überprüft wird. Ich schätze aber, dass deine Karten noch ein paar andere Eigenschaften haben werden, als nur Regelkarte Ja/Nein, deshalb wäre es sowieso gar nicht so schlecht, eine eigene Klasse "Spielkarte" dafür anzulegen, bevor du weitermachst.

PS: Poste Code beim nächsten Mal bitte in Code-Tags. Das macht den viel leichter lesbar.
Vielen Dank für deine Ausführliche Antwort, sowie die Zeit die du dir dafür genommen hast und entschuldige, ich werde beim nächsten Code drauf achten, danke für den Hinweis.

Das du sagst, von wegen nicht alles vorzugeben und das Spiel dann nur durchzuklicken gefällt mir sehr.
Ich muss gestehen mir vieles über Videos gezielt angesehen zu haben und auch immer nur die Bereiche nachgelesen zu haben.. mir fehlen daher wohl einige Grundlegende Dinge. Ich weiß gerade nicht mal recht eine Antwort auf die Frage, ob Icon eine Klasse ist oder nicht.

Bisher hat keine der Karten einen Wert, sie werden alle nur so als "Bild" wiedergegeben und haben bislang keinerlei weitere Eigenschaften. In meinem Spiel gibt es 5 Kartentypen und 3 davon benötigen eine Eigenschaft, um sie auf bestimmte Orte zu platzieren. Mit den Regeln wollte ich starten und dann könnte ich das Prinzip für die anderen beiden Kartentypen übernehmen. Es gibt noch viele andere Baustellen in der App, irgendwo muss man aber ja anfangen.
Die gesamten Bilder sind in einem Array und am Anfang werden sie gemischt, als würden sie auf einem Kartenstapel liegen.

Wie würde es in der Praxis etwa aussehen einer Karte einen Wert zu geben? Deine Idee, dass die Regelfelder für alle anderen Karten bis auf Regeln deaktiviert werden gefällt mir, würde man da dann mit einer "if" abfrage arbeiten oder was würdest du nehmen?

Könnte ich z.B. allen Regelkarten den Wert "R" geben und den Regelfeldern sagen sie dürfen nur Karten mit Wert "R" beinhalten?
 

Robertop

Bekanntes Mitglied
Woher kommen das "icons" und die "randomIconSequence"? Das sind ja wahrscheinlich Arrays mit einem bestimmten Datentyp. Je nachdem, wo die erzeugt werden, ist es wahrscheinlich gar nicht so schwierig, dass noch ein bisschen umzubauen, da eine eigene Klasse für die Spielkarten dazwischen zu bekommen.

Dann musst du dir überlegen, was für Eigenschaften deine Spielkarten haben, und wie du das in einer Java-Klasse abbilden willst. Soweit ich das bisher verstanden habe, brauchst du ja auf jeden Falldas Bild und den Kartentyp.

Die Logik für das deaktivieren der Regelfelder würde dann vermutlich am ehesten dort Sinn machen, wo die nächste Karte gezogen wird.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Alle Zahlen finden, die 3 bestimmte Ziffern enthalten? Java Basics - Anfänger-Themen 9
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
K loop pausieren für eine bestimmte Anzahl? Java Basics - Anfänger-Themen 1
Cassy3 Binäre Bäume Rekursiv durchlaufen und bestimmte Elemente Zählen Java Basics - Anfänger-Themen 6
W Bestimmte Zahlen bei Math.random ausschließen? Java Basics - Anfänger-Themen 31
J Bestimmte parameter aus Jsonfile auslesen Java Basics - Anfänger-Themen 15
HighLife Bestimmte Werte aus Array zählen Java Basics - Anfänger-Themen 15
T Bestimmte Zahlen ausgeben mit einer whilfe Schleife Java Basics - Anfänger-Themen 21
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
B Neue Liste erstellen, wenn Objekte bestimmte Referenz hat / Gruppierung von Einträgen Java Basics - Anfänger-Themen 12
B Nur eine bestimmte Anzahl an Arrays ausgeben Java Basics - Anfänger-Themen 9
M Regex für bestimmte Wörter bzw. bestimmte Zeichen erstellen Java Basics - Anfänger-Themen 5
B Von Array nur eine bestimmte Anzahl bekommen Java Basics - Anfänger-Themen 3
J Datei auslesen (nur bestimmte Stellen) Java Basics - Anfänger-Themen 2
L Nur Bestimmte Werte aus einem Array in ein anderes Speichern Java Basics - Anfänger-Themen 11
B Denkanstoß benötigt: Emails an bestimmte Emailadresse schicken Java Basics - Anfänger-Themen 6
U Mehrfacheingabe auf bestimmte Parameter prüfen Java Basics - Anfänger-Themen 8
L String auf bestimmte zeichen untersuchen Java Basics - Anfänger-Themen 9
L Bestimmte Werte eines Arrays ausgeben. Java Basics - Anfänger-Themen 3
P Input/Output Bestimmte Anzahl von Werten in einem Array an Methode übergeben Java Basics - Anfänger-Themen 2
Henri Bestimmte Werte eine XML-Datei ausgeben. Java Basics - Anfänger-Themen 8
M ComboBox bestimmte Elemente disablen/ausgrauen Java Basics - Anfänger-Themen 3
S JButton soll für bestimmte Zeit verschwinden Java Basics - Anfänger-Themen 5
E Datei einlesen und bestimmte Wörter ausgeben Java Basics - Anfänger-Themen 2
A Threads Threads bestimmte Aufgaben zuweisen... Java Basics - Anfänger-Themen 3
D Input/Output Buchstaben als bestimmte Zahl erkennen Java Basics - Anfänger-Themen 4
S Welche Datenstruktur ist die optimalste um Funktionen fuer bestimmte Wertebereiche abzurufen..? Java Basics - Anfänger-Themen 5
N Bestimmte Zeichen eines Strings umwandeln Java Basics - Anfänger-Themen 4
K Eine bestimmte Zeit, eine Schleife laufen lassen. Java Basics - Anfänger-Themen 4
A CSV datei eine Bestimmte Zeile ansprechen Java Basics - Anfänger-Themen 1
W char-Array auf bestimmte Zeichen prüfen Java Basics - Anfänger-Themen 10
C Array kopieren und nur bestimmte Werte speichern Java Basics - Anfänger-Themen 6
D Bestimmte Werte von Objekten aus einer ArrayList in eine andere ArrayList kopieren Java Basics - Anfänger-Themen 14
N Bestimmte Inhalte aus Datei lesen Java Basics - Anfänger-Themen 11
Ananaskirsche Input/Output Bestimmte Zeile aus Datei einlesen Java Basics - Anfänger-Themen 4
B Best Practice Bestimmte Zahl auslesen und in Variable speichern Java Basics - Anfänger-Themen 3
N Bestimmte Zeile aus einer Datei auslesen Java Basics - Anfänger-Themen 10
I Int Array, Zahl an bestimmte position setzten Java Basics - Anfänger-Themen 2
C [Bukkit Plugin] Blöcke eine bestimmte route entlang fliegen Java Basics - Anfänger-Themen 3
A Button in eine bestimmte Spalte platzieren Java Basics - Anfänger-Themen 4
D Bestimmte Zeile aus TXT Datei ausgeben Java Basics - Anfänger-Themen 4
A Eine Datei Lesen und bestimmte Position überschreiben Java Basics - Anfänger-Themen 2
M Bestimmte Zeichen auslesen Java Basics - Anfänger-Themen 2
G bestimmte dateiendungen in jtree rausfiltern Java Basics - Anfänger-Themen 7
W bestimmte Objekte in ArrayList auslesen Java Basics - Anfänger-Themen 8
G JTextArea: nur bestimmte Zeilen anders formatieren Java Basics - Anfänger-Themen 7
B Input/Output bestimmte Zeilen in .txt Dateinen überschreiben Java Basics - Anfänger-Themen 20
J Bestimmte Anzahl Zeichen aneinander fügen Java Basics - Anfänger-Themen 9
C Bestimmte Informationen von Webseite suchen Java Basics - Anfänger-Themen 13
B Nur bestimmte Klasse ausführen Java Basics - Anfänger-Themen 6
Kenan89 Bestimmte Zeile in txt-Datei ersetzen Java Basics - Anfänger-Themen 4
D BufferedInputStream nur bestimmte Zeichen Java Basics - Anfänger-Themen 11
D Input/Output bestimmte Zeile auslesen Java Basics - Anfänger-Themen 3
B Bestimmte Ziffer Java Basics - Anfänger-Themen 27
B Input/Output In Datei an eine bestimmte Stelle schreiben Java Basics - Anfänger-Themen 37
S Bestimmte Objekte aus Collections anwählen/herausbekommen Java Basics - Anfänger-Themen 8
I Bestimmte Objekte einer Liste hinzufügen Java Basics - Anfänger-Themen 16
R Bestimmte Stellen eines BigInteger Java Basics - Anfänger-Themen 7
S Collections Aus Set<Object> bestimmte Typen entfernen Java Basics - Anfänger-Themen 3
S Bestimmte Methode von unbestimmter Datei Java Basics - Anfänger-Themen 6
V Bestimmte Stellen aus .txt Datei auslesen Java Basics - Anfänger-Themen 11
B bestimmte klammern im string ersetzten Java Basics - Anfänger-Themen 17
Binary.Coder JTable bzw. Tabelle in bestimmte Form überführen Java Basics - Anfänger-Themen 5
B Bestimmte Werte aus einem String entnehmen Java Basics - Anfänger-Themen 3
0 Grafik eine bestimmte Strecke laufen lassen Java Basics - Anfänger-Themen 6
X im Verzeichnissbaum recursiv nur bestimmte Dateien finden Java Basics - Anfänger-Themen 7
M Aus String bestimmte Inhalte auslesen Java Basics - Anfänger-Themen 8
M Reaktion auf bestimmte Zeit Java Basics - Anfänger-Themen 2
2 Bestimmte Anzahl von Bytes lesen und als string ausgeben? Java Basics - Anfänger-Themen 3
N Bestimmte Zeichen aus Strings zählen Java Basics - Anfänger-Themen 11
P Bestimmte Zeilen einer Datei ermitteln ? Java Basics - Anfänger-Themen 30
StrikeTom Bestimmte stelle in string herausfiltern Java Basics - Anfänger-Themen 7
M Float auf bestimmte Nachkommazahl runden Java Basics - Anfänger-Themen 3
E Bild eine bestimmte Anzahl blinken lassen Java Basics - Anfänger-Themen 3
B array bestimmte summe berechnen Java Basics - Anfänger-Themen 4
Luk10 Zufallszahl "ohne" eine bestimmte Zahl(en) Java Basics - Anfänger-Themen 8
S OOP Wie bei Spiel "17+4" eine Karte an bestimmte Position hinzufügen Java Basics - Anfänger-Themen 13
B OOP String auf bestimmte Zeichen abfragen Java Basics - Anfänger-Themen 4
S Bestimmte Elemente einer ArrayList löschen Java Basics - Anfänger-Themen 3
S Double bis bestimmte Nachkommzahl vergleichen (ohne zusätzliche Libs) Java Basics - Anfänger-Themen 12
Ollek Bestimmte Zeilen aus einer HTML Datei lesen Java Basics - Anfänger-Themen 8
N Text an bestimmte Stelle eines Dokuments schreiben Java Basics - Anfänger-Themen 6
G Bestimmte Zeile aus CSV ausgeben Java Basics - Anfänger-Themen 14
Assassin Nur bestimmte Daten aus txt auslesen... Java Basics - Anfänger-Themen 12
Developer_X Durch int Bestimmte Zeile überschreiben Java Basics - Anfänger-Themen 16
Developer_X Bestimmte Zeile aus TextDocument lesen Java Basics - Anfänger-Themen 2
V Nur bestimmte Werte zulassen Java Basics - Anfänger-Themen 2
M Bestimmte zeile aus .txt einlesen Java Basics - Anfänger-Themen 6
Q Nach Stringvorgabe bestimmte funktionen ausführen Java Basics - Anfänger-Themen 3
G Bestimmte Ebene eines Baumes rekursiv ausgeben Java Basics - Anfänger-Themen 49
I bestimmte Zahlen markieren.helppp. Java Basics - Anfänger-Themen 17
G Bestimmte Position im array auslesen Java Basics - Anfänger-Themen 8
H bestimmte objekte in ArrayList löschen? Java Basics - Anfänger-Themen 7
P Hilfe für JComboBox, bmp einbinden/bestimmte punkte auf bmp Java Basics - Anfänger-Themen 3
M bestimmte Zeichen in String eliminieren Java Basics - Anfänger-Themen 2
T Bestimmte Zeile aus einer .txt-Datei auslesen? Java Basics - Anfänger-Themen 10
S Bestimmte Anzahl an nummern auslesen Java Basics - Anfänger-Themen 4
K bestimmte Dateien aus Ordner verschieben Java Basics - Anfänger-Themen 5
F Bestimmte Werte nicht beachten Java Basics - Anfänger-Themen 10
G bestimmte Stelle aus Textdatei auslesen. Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben