zufälliger Spielplan

D

dghjhgfghjs

Gast
Hey! Wir sind zu 4t in der WG und wollen immer FIFA 11 immer zufällig gegeneinander spielen und jeder soll zufällig ein Team aus einem bestimmten Pool zugeteilt bekommen. Da dachte ich mir, dass muss doch auch ohne losen gehen, sondern mit einem Java programm....leider kann ichs nicht mehr

hab bisher schon bisschen was, aber ich glaub des macht da jetzt nichts mit zufall, weil immer die gleichen ergebnisse rauskommen....
außerdem will ich vermeiden, dass zwei spieler die gleichen teams haben und dass man nicht gegen sich selbst spielen muss....bisher ist das glaub mit dem programm noch nicht verhindert....

Java:
 import java.util.Random;

class Fifa11{

  public static void main (String[] args){

    String[] spieler;
    String[] teams;
    
    spieler = new String[] { "Kai", "Jan", "Thomas", "Martin"};
    teams = new String[] {"HSV", "BVB", "Bayern", "Schalke", "Leverkusen", "Wolfsburg"};
     
       String [] begegnung = new String [2];

       String [] mannschaft = new String [2];
       
       Random rand = new Random ();

       for (int i=0; i<begegnung.length; i++){
       	begegnung [i] = spieler[rand.nextInt (spieler.length)] ;}
       
       for (int i=0; i<mannschaft.length; i++){
       	mannschaft [i] = teams[rand.nextInt (teams.length)] ;}
       
       for (int i=0; i<mannschaft.length; i++){
         System.out.print(spieler[i]+ " " + teams[i]+ " ");
      }       
  }
}
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
System.out.print(begegnung + " " + mannschaft + " ");
statt
System.out.print(spieler+ " " + teams+ " ");


und bitte doch einen richtigen Namen wählen oder meinetwegen gast/anonym
 
J

JohannisderKaeufer

Gast
Um zu vermeiden das ein Spieler gegen sich selbst Spielen muß, bzw. eine Mannschaft gegen sich selbst, kann man
* den gezogenen Spieler aus dem Array entfernen und hat danach nur noch ein array aus 3 Spielern aus dem man den zweiten wählt.
* oder beim zweiten Spieler, solange ziehen, bis der zweite und der erste Spieler sich von einander unterscheiden.

Für ersteres ist eine ArrayList besser geeignet als ein Array.
Bei zweitem könnte das ganze statt
Java:
for (int i=0; i<begegnung.length; i++){
        begegnung [i] = spieler[rand.nextInt (spieler.length)] ;}
so aussehen.

Java:
begegnung[0] = spieler[rand.nextInt(spieler.length)];
do{
begegnung[1] = spieler[rand.nextInt(spieler.length)];
} while(begegnung[0].equals(begegnung[1]))
 
Zuletzt bearbeitet von einem Moderator:

Mizar

Aktives Mitglied
Java:
public class Fifa11
{
	public static void main(String[] args)
	{
		// Listen erstellen
		List<String> spieler = Arrays.asList("Kai", "Jan", "Thomas", "Martin");
		List<String> teams = Arrays.asList("HSV", "BVB", "Bayern", "Schalke", "Leverkusen", "Wolfsburg");
		// Listen mischen
		Collections.shuffle(spieler);
		Collections.shuffle(teams);
		// Begegnungen ausgeben
		for(int i = 0; i < spieler.size(); ++i) {
			System.out.printf("%s mit %s", spieler.get(i), teams.get(i));
			if(i % 2 == 0) {
				System.out.print(" spielt gegen ");
			} else {
				System.out.println();
			}
		}
	}
}
 

Ähnliche Java Themen

Neue Themen


Oben