Zufallsreinfolge???

Status
Nicht offen für weitere Antworten.
M

Master X

Gast
Hi leute,
wie schaffe ich es das die zahlen von 1-32 in zufälliger reinfolge angezeigt werden???
Danke schonmal,
Master X
P.S. ich glaube ich nerve langsam oda? :lol:
 

nollario

Bekanntes Mitglied
z.B.:

Code:
import java.util.*;
public class ShuffleAlg
{
  public static void main( String args[] )
  {
    List v = new Vector();
    for ( int i = 0; i < 32; i++ )
    {
      v.add( new Integer(i) );
    }
    Collections.shuffle( v );

    System.out.println( v );
  }
}
 

Master X

Mitglied
nollario hat gesagt.:
z.B.:

Code:
import java.util.*;
public class ShuffleAlg
{
  public static void main( String args[] )
  {
    List v = new Vector();
    for ( int i = 0; i < 32; i++ )
    {
      v.add( new Integer(i) );
    }
    Collections.shuffle( v );

    System.out.println( v );
  }
}

Wie kann man denn jetzt z.b. nur die erste oder zweite zahl ausgeben???
Danke schonmal,
Master X
 
D

DrZoidberg

Gast
Mit
Code:
System.out.println("Erste Zahl: "+v.get(0));
System.out.println("Zweite Zahl: "+v.get(1));

int zahl1=((Integer)v.get(0)).intValue();

Wenn du das Mischen Manuell machen willst, geht das so:

Code:
int[] cards=new int[32];
for(int i=0; i<32; i++)
    cards[i]=i+1;
Random rand=new Random();
for(int i=0; i<31; i++) {
    int j=i+rand.nextInt(32-i);  // rand.nextInt(x) erzeugt eine Zufallszahl zwischen 0 und x-1
    int temp=cards[i]; // Tauschen von cards[i] und cards[j]
    cards[i]=cards[j];
    cards[j]=temp;
}
 

Master X

Mitglied
Also ich habe jetzt ein Applet und habe das mit dem shuffle auch gemacht und wenn ich es compliere dann sagt der auch keinen fehler nur wenn ich dann das Applet ausführe dann geht es nicht. Er sagt für kurze zeit Applet Spiel notinited und dann Ladevorgang Java Applet läuft und dann nix mehr... :(
Weiss einer warum?
Hier ist der Code:
Code:
import java.applet.*;
import java.io.*;
import java.net.*;
import java.awt.*;
import java.util.List;
import java.util.*;

public class Spiel extends java.applet.Applet
implements Runnable {
	
	Image[] Pics = new Image[33];
	Thread runner;
	int was;
	Image currentImg;
	List v = new Vector(); 
	
	public void init() {
		
		String Src[] = {"blank.gif", "herz_7.gif", "herz_8.gif", "herz_9.gif", "herz_10.gif", "herz_bube.gif", "herz_dame.gif", "herz_koenig.gif", "herz_ass.gif",
		"karo_7.gif", "karo_8.gif", "karo_9.gif", "karo_10.gif", "karo_bube.gif", "karo_dame.gif", "karo_koenig.gif", "karo_ass.gif",
		"kreuz_7.gif", "kreuz_8.gif", "kreuz_9.gif", "kreuz_10.gif", "kreuz_bube.gif", "kreuz_dame.gif", "kreuz_koenig.gif", "kreuz_ass.gif",
		"piek_7.gif", "piek_8.gif", "piek_9.gif", "piek_10.gif", "piek_bube.gif", "piek_dame.gif", "piek_koenig.gif", "piek_ass.gif" };
		
		for (int i=0; i < Pics.length; i++) {
			v.add( new Integer(Src[i]) );
		}
		Collections.shuffle( v );
		for (int i=0; i < Pics.length; i++) {
			Pics[i] = getImage(getCodeBase(), "images/" + v.get(i));
		}
	}
	
	public void start() {
		
	}
	
	public void stop() {
		
	}
	
	public void run() {
		
	}
	
	public boolean mouseDown(Event evt, int x, int y) {
		return true;
	}
	
	public void paint(Graphics screen) {
		screen.drawImage(Pics[0], 1, 1, this);
	}
}
Danke schonmal,
Master X
 

Illuvatar

Top Contributor
1. Kompiliert das bei mir nicht, ich muss
Code:
v.add( new Integer(Src[i]) );
durch
Code:
v.add( new java.lang.Integer(Src[i]) );
ersetzen, weil java.util auch importiert ist, liegt aber vielleicht an 1.5.
2. Ist diese Integer-Konvertierung doch sinnlos, weil die ganzen Strings eh keine Zahlen sind und du am Schluss den String willst. Also:
Code:
v.add(Src[i] );
schreiben.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben