Funkcja random

0

Witam wszystkich , jestem początkujący i mam problem z losowaniem . A mianowicie mam tablicę pięcioelementową i chciałbym zrobić przycisk który będzie przestawiał te elementy w tej tablicy (czyli jezeli tab[0]=1 , tab[1]=2 , ...,tab[5]=4 to po wcisnieciu żeby było np: tab[0]=4 , tab[1]=1 , ...,tab[5]=2 )


public class NewApplet extends Applet {

  int a=1,b=2,c=3,d=4,e=5;
int tabInt[]=new int[5];
Button b1;
  @Override
    public void init() {

      b1=new Button("losowanie");
b1.setBounds(100,100,40,20);
add(b1);

    
tabInt[0]=a;
tabInt[1]=b;
tabInt[2]=c;
tabInt[3]=d;
tabInt[4]=e;
    }
   
}

czylidokładnie chce aby moje a,b,c,d,e przestawiały się po naciśnięciu klawisza no i nie wiem dokładnie jak te losowanie przypisać do klawisza. bardzo prosze o pomoc

0

Wiem że składnia jest taka ale nie mam pojęcia jak to zaimplementować żeby program działał

Random losowanie;
losowanie = new Random();

0

A gdybyś miał wykonać taką operacje na kartce to jak byś to zrobił?

0

no nie wiem , chodzi o to żeby po przycisku przestawić liczby w tablcy

0

to nie wiem , pomożesz ?

0

Wyobraź sobie że masz przed sobą 5 kubeczków, w każdym kolorową piłeczkę i kostkę 5-ścienną. W jaki sposób dokonałbyś przeniesienia piłeczek pomiędzy kubeczkami korzystając z takiego zestawu?
Bo twoim problemem nie jest brak umiejętności programowania, tylko brak umiejętności myślenia...

0

Ja specjalistom nie jestem, ale może coś takiego do wymieszania. Metoda shuffle z klasy Collections:

Przykład:

import java.util.Arrays;
import java.util.Collections;


public class Glowna {

	public static void main(String[] args) {
		Integer[] tab = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
		for(int i = 0; i < 10; i++) {
			System.out.print(tab[i] + " ");
		}
		Collections.shuffle(Arrays.asList(tab));
		System.out.println();
		for(int i = 0; i < 10; i++) {
			System.out.print(tab[i] + " ");
		}
	}
	
}

 

Przed wykonaniem mamy:

1 2 3 4 5 6 7 8 9 10

Po wykonaniu

Collections.shuffle(Arrays.asList(tab)); 

mamy np:

4 2 3 1 6 10 7 5 9 8

0

no nie wiem :) wyją bym z jednego kubeczka piłkę i włożył do tego którego by mi pokazała kostka po rzucie a piłeczkę z wylosowanego kubeczka wsadziłbym do tamtego z którego wyjąłem tą pierwszą

0

Dziękuję olek1 ale czy mozesz mi pomóc jak to podpiąć pod buttona żeby zmieniało klawisze po wciśnięciu przycisku ?

0

no tak Shalom tylko że mam problem z kodem

0

No nie wiem. Musisz dodać jakiegoś mouseListenera np. który po wciśnięciu przycisku wykona operację.

		b1.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseDown(MouseEvent e) {
				Collections.shuffle(Arrays.asList(tabInt));
			}
		}); 
0

wiem że jakos tak to powinno wyglądać ale nioe jestem wstanie napisać tego do końca

package javaapplication4;

import java.applet.Applet;
import java.awt.Button;
import java.util.Random;


public class NewApplet1 extends Applet {
 
int a=1,b=2,c=3,d=4,e=5,i;
int tabInt[]=new int[5];
Button b1;
Random r = new Random();
  

@Override
 public void init() {
    
    
addMouseListener(this);
 
b1=new Button("losowanie");
b1.setBounds(100,100,40,20);
add(b1);
 
tabInt[0]=a;
tabInt[1]=b;
tabInt[2]=c;
tabInt[3]=d;
tabInt[4]=e;
 
for (i=0;i<5;i++) 
        {
    
        
        }
}

    private void addMouseListener(NewApplet1 aThis) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
 
}
0

moze chociaż jakaś wskazówka jak podpiąć te random pod buttona?

0

Napisałem sobie tak na szybko aplikację w SWT, która po wciśnięciu przycisku miesza elementy tej tablicy.

import java.util.Arrays;


public class Losowanie {

	protected Shell shell;
	private Integer a = 1, b = 2, c = 3, d = 4, e = 5;
	private Integer tabInt[] = {a, b, c, d, e};
	
	Losowanie() {
	}
	

	/**
	 * Launch the application.
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			Losowanie window = new Losowanie();
			window.open();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * Open the window.
	 */
	public void open() {
		Display display = Display.getDefault();
		createContents();
		shell.open();
		shell.layout();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch()) {
				display.sleep();
			}
		}
	}

	/**
	 * Create contents of the window.
	 */
	protected void createContents() {
		shell = new Shell();
		shell.setSize(450, 300);
		shell.setText("SWT Application");
		
		Button btnNewButton = new Button(shell, SWT.NONE);
		btnNewButton.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseDown(MouseEvent e) {
                for(int i = 0; i < 5; i++) {
                    System.out.print(tabInt[i] + " ");
                }
                Collections.shuffle(Arrays.asList(tabInt));
                System.out.println();
                for(int i = 0; i < 5; i++) {
                	System.out.print(tabInt[i] + " ");
                }
			}
		});
		btnNewButton.setBounds(67, 76, 75, 25);
		btnNewButton.setText("New Button");

	}
}

Wszystko działa ok. Obejrzyj sobie przesłoniętą metodę

public void mouseDown(MouseEvent e)

1 użytkowników online, w tym zalogowanych: 0, gości: 1