Modulus

joni

Mitglied
Hallo erstmal,

ich habe eine Frage zum Operator Modulo oder Modulus:

Ich habe eine Aufgabe zu lösen was ein Schere, Stein Papier spiel ist und ich hab soweit alles ausser das mit der übersetzung, also:

Der output ist folgender:

!!!Lass uns Schere, Stein und Papier spielen!!!
Initialisiere den Zufallsgenerator, indem du eine Zahl eintippst: 1234

nun wenn ich 1234 eingebe dann initialisiert es den Random Generator aber wie kann ich es machen das es von dieser Zahl in eine der 3 (Schere, Stein oder Papier) zuweist.

dann kommt folgendes:

Deine Wahl von Schere, Stein, Papier oder Beenden: Stein
Du hast Stein gezogen und ich zog ...1234

wie kann ich es machen dass dort nicht 1234 steht wie die eingabe sondern eines der 3.

ich habe gehört das dies mit modulo geht aber mir ist nur unklar wie genau...

Vielen Dank schonmal im voraus ;)

Grüsse
 

0x7F800000

Top Contributor
nun wenn ich 1234 eingebe dann initialisiert es den Random Generator aber wie kann ich es machen das es von dieser Zahl in eine der 3 (Schere, Stein oder Papier) zuweist.
[c]Random rnd = new Random(1234); rnd.nextInt(3)[/c] spuckt beispielsweise nur zahlen 0,1,2 aus.

wie kann ich es machen dass dort nicht 1234 steht wie die eingabe sondern eines der 3.
Benutzereingabe ist Benutzereingabe, an der kannst du nichts ändern, wenn die Eingabe falsch ist, muss du diese abfangen und ggf. nochmals nachfragen.
 

joni

Mitglied
[c]Random rnd = new Random(1234); rnd.nextInt(3)[/c] spuckt beispielsweise nur zahlen 0,1,2 aus.

ja, so weit bin ich gekommen, ich will nun aber diese random zahlen in strings umwandeln (nicht umwandeln besser gesagt zuweisen) z.b

0= Stein
1= Schere
2= Papier

dass ich das zurück geben kann als string und nicht als int.

sorry falls ich mich im ersten Post schlecht formuliert habe.

Thanks.
 

0x7F800000

Top Contributor
imho etwas weniger brachial wäre so was:
Java:
import java.util.*;

enum RPS{
	ROCK("Stein"),
	PAPER("Papier"),
	SCISSORS("Schere");
	
	public final String name;
	
	private RPS(String name){
		this.name = name;
	}
	
	private static Random random = new Random();
	
	public static void setRandomSeed(int seed){
		random = new Random(seed);
	}
	
	public static RPS getRandom(){
		return RPS.values()[random.nextInt(RPS.values().length)];
	}
	
	private RPS weaker;
	private void setWeaker(RPS weakerRPS){
		this.weaker = weakerRPS;
	}
	
	static{
		ROCK.setWeaker(SCISSORS);
		SCISSORS.setWeaker(PAPER);
		PAPER.setWeaker(ROCK);
	}
	
	public boolean isWeaker(RPS other){
		return other == weaker;
	}
	
	@Override
	public String toString(){
		return name;
	}
}
...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Modulus Operator Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben