Augensummen

chillerStudent

Bekanntes Mitglied
ui ui fällt mir grad schwer. Kannst du mir bitte einen ansatz geben?
Soll ich die methode in der klasse schreiben wo die main drin ist? und wo bekomme ich das index her im parameter?
 

HimBromBeere

Top Contributor
Hab dir mal eine Methode zum Auffinden aller denkbaren Kombinationen geschrieben, damit das Ganze hier mal übersichtlicher wird:

Java:
/**
 * returns all possible combinations that are possible to the given number
 */
public int[] getCombinations(int sum) {
    	int[] result = new int[Math.round(sum / 2)];
    	for(int i=0; i < sum/2; i++) {
            if((sum - i) <= 9) {
                result [i] = sum - i;
            }
        }
    	return result;
    }
 

hdi

Top Contributor
@HimBromBeere was genau soll das Array enthalten? Ich muss zugeben ich weiß nicht mehr genau worum es hier inzwischen geht. Aber die Methodenlogik scheibt mir strange. Alleine schon weil du zB die ersten paar Fächer im Array u.U. leer lässt.
 

HimBromBeere

Top Contributor
Ja, dass die leer bleiben, wenn eine Summe > 9 gewürfelt wurde, war mir schon klar. Daher würde ich am ehesten wohl eine Map<Integer, Integer> für dieses Problem vorschlagen... das ist mir aber selbst aus dem Blickfeld geraten,.. danke für´s dran Erinnern ;)
 

Zeeu

Aktives Mitglied
wenn ihr weiter "Probleme" löst, die schon gelöst wurden, dreht unser chiller student noch durch :)

Edit: ich würds ja in nem AVL baum speichern xD
 

Zeeu

Aktives Mitglied
das Programm, was ich ganz am Anfang schon gepostet hatte, war glaub ich funktionstüchtig, auch wenn nicht besonders schön
 

chillerStudent

Bekanntes Mitglied
das Programm, was ich ganz am Anfang schon gepostet hatte, war glaub ich funktionstüchtig, auch wenn nicht besonders schön

nein. Ich nehme dein Programm nicht, weil ich mein Programm nicht weggschmeisen wollte. Außerdem versteh ich mein prog besser als ein anderes und meins kann ich auch leichter (ver)ändern, sodass ich es auch sehr schnell verstehe.

Hast du dein prog schon ausprobiert oder war das nur auf papier gemalt?
 

chillerStudent

Bekanntes Mitglied
mhh... dann ist ja dein prog bei mir gut aufgehoben ;)
oder du verratest mir wie sich die objekte immer wiederholt nacheinander die methode ausführen
oder [dein vorschlag]
 

bERt0r

Top Contributor
Ich glaub nicht dass du mit 18 Kombinationen auskommst, so wie ich es verstanden habe sollte es so aussehen:
Code:
Summe  2 Werte: [null, 1  1, null, null, null, null, null, null, null, null]
Summe  3 Werte: [null, 1  2, 2  1, null, null, null, null, null, null, null]
Summe  4 Werte: [null, 1  3, 2  2, 3  1, null, null, null, null, null, null]
Summe  5 Werte: [null, 1  4, 2  3, 3  2, 4  1, null, null, null, null, null]
Summe  6 Werte: [null, 1  5, 2  4, 3  3, 4  2, 5  1, null, null, null, null]
Summe  7 Werte: [null, 1  6, 2  5, 3  4, 4  3, 5  2, 6  1, null, null, null]
Summe  8 Werte: [null, 1  7, 2  6, 3  5, 4  4, 5  3, 6  2, 7  1, null, null]
Summe  9 Werte: [null, 1  8, 2  7, 3  6, 4  5, 5  4, 6  3, 7  2, 8  1, null]
Summe 10 Werte: [null, 1  9, 2  8, 3  7, 4  6, 5  5, 6  4, 7  3, 8  2, 9  1]
Summe 11 Werte: [null, null, 2  9, 3  8, 4  7, 5  6, 6  5, 7  4, 8  3, 9  2]
Summe 12 Werte: [null, null, null, 3  9, 4  8, 5  7, 6  6, 7  5, 8  4, 9  3]
Zahl eingeben (2-12): 12
Kombi gefunden!
Summe  2 Werte: [null, 1  1, null, null, null, null, null, null, null, null]
Summe  3 Werte: [null, 1  2, 2  1, null, null, null, null, null, null, null]
Summe  4 Werte: [null, 1  3, 2  2, 3  1, null, null, null, null, null, null]
Summe  5 Werte: [null, 1  4, 2  3, 3  2, 4  1, null, null, null, null, null]
Summe  6 Werte: [null, 1  5, 2  4, 3  3, 4  2, 5  1, null, null, null, null]
Summe  7 Werte: [null, 1  6, 2  5, 3  4, 4  3, 5  2, 6  1, null, null, null]
Summe  8 Werte: [null, 1  7, 2  6, 3  5, 4  4, 5  3, 6  2, 7  1, null, null]
Summe  9 Werte: [null, 1  8, 2  7, 3  6, 4  5, 5  4, 6  3, 7  2, 8  1, null]
Summe 10 Werte: [null, 1  9, 2  8, 3  7, 4  6, 5  5, 6  4, 7  3, 8  2, 9  1]
Summe 11 Werte: [null, null, 2  9, 3  8, 4  7, 5  6, 6  5, 7  4, 8  3, 9  2]
Summe 12 Werte: [null, null, null, null, 4  8, 5  7, 6  6, 7  5, 8  4, 9  3]
Zahl eingeben (2-12):
 

HimBromBeere

Top Contributor
Wenn du das gerade alles selbst hingeschrieben hast, alle Achtung, falls du jedoch - wie ich hoffe - eine Schleife dafür verwendest hast, wäre es super, sie dem Ersteller zukommen zu lassen...

Btw.: ich glaube, die Permutation der Ergebnisse ist nicht zulässig...
Außerdem ist die Kombination [0, n] auch möglich, technisch zwar nicht (man kann keine 0 würfeln), aber faktisch kommt das auf´s selbe heraus. D.h. die Augensumme wird bereits durch Einmaliges Werfen des neun-seitigen Würfels erreicht.
 
Zuletzt bearbeitet:

HimBromBeere

Top Contributor
DAS hab ich dir mal noch schnell gemacht:

Java:
public class Main {

	public static void main(String[] args) {
	
		Player[] players = new Player[] {
				new Player("Susi"), 
				new Player("Hugo"), 
				new Player("Hans")
		};
		
		// set the last pointer to the first element (circular list)
		players[players.length - 1].next = players[0];
		for (int i = 0; i < players.length - 1; i++) players[i].next = players[i + 1];	
	
	}

}

Java:
public class Player {
    
	public String name;
	public Player next;
    
    
	static String dice = "1 2 3 4 5 6 7 8 9";
	static StringBuffer sb = new StringBuffer();
    
    
	Player(String name){
		this.name = name;
        
		System.out.println("Spieler "+ name +" nimmt teil.");
	}
    ...
}

Da du ja nicht mit gettern und settern arbeiten darfst :autsch:, war ich leider gewzungen, die Variablen next und name public zu machen... tut mir leid, ich weiß, dass es hässlich aussieht;(
 
Zuletzt bearbeitet:

HimBromBeere

Top Contributor
Java:
players[i].wuerfeln()
Wie wäre der?
Das einzig Komplizierte scheint mir im Moment die Abbruchbedingung zu sein, sprich wer wann verloren hat oder anders ausgedrückt: wie lange die Spieler würfeln können, bevor das Spiel vorbei ist... das muss ja berechnet werden über die noch zur Verfügung stehenden Kombinationen.
 

Neue Themen


Oben