I have a project for java,i have to simulate the board of galton(Galton Board -- from Wolfram MathWorld).
My simulation code is ready but i'm having some final problems. I have to reset a value to zero every time the simulation runs. But i'm using the values in more than one method . So if i initialize the value in the main class is doesn't reset. But if i but it in every class it resets to zero in each method.
So the values i want to reset are bakje1 bakje2 bake3 bakje4 bakje5 bakje6 bake7
/** * Project 1 *Dit gaat over het bord van Galton * *@author Geldolf Robin *@version 22 november 2011 * */ public class Bordvangalton3 { //bakjes initialiseren long bakje1 = 0 ; long bakje2 = 0 ; long bakje3 = 0 ; long bakje4 = 0 ; long bakje5 = 0 ; long bakje6 = 0 ;long bakje7 = 0 ;//????????????????????? String keuze; String keuze1a; long linksOfrechts; int balletjeLinksOfRechts = 0 ; int aantalSimulaties; public void keuzesWeergeven() { keuzeMogelijkheden();//hier krijg je de drie keuzes op je scherm keuzes();// hier wordt de input van de gebruiker doorgeschakeld naar de juiste methode } public void weergavePerX() {//de layout + het berekenen waar het balletje zal vallen piramidelayout(); algoritme(); tellenVanBalletjes(); plaatsenVanBalletjes(); opvangBakjesNummers(); } public void keuzeMogelijkheden() { // weergave van keuzemogelijkheden long bakje1 = 0 ; long bakje2 = 0 ; long bakje3 = 0 ; long bakje4 = 0 ; long bakje5 = 0 ; long bakje6 = 0 ;long bakje7 = 0 ; do { System.out.println(" === Bord van Galton simulator ===\nWat wil je doen ?\n\t\t1)Stap voor stap het bord berekenen\n\t\t2)Automatisch het bord berekenen\n\t\t3)Het programma stoppen\nKeuze:"); keuze = Input.readString(); } while ( !keuze.equals("1") && !keuze.equals("2") && !keuze.equals("3") ); } public void keuzes() { if (keuze.equals("1")) { weergavePerX(); keuzes1x(); keuzesWeergeven(); } else if(keuze.equals("2")) { keuzes2(); AantalSim(); keuzes2a(); } else if (keuze.equals("3")){ keuze3(); } } public void keuzes1x() {//elke keer als men op x duwt,loopt de simulatie nog 1 keer long bakje1 = 0 ; long bakje2 = 0 ; long bakje3 = 0 ; long bakje4 = 0 ; long bakje5 = 0 ; long bakje6 = 0 ;long bakje7 = 0 ; do { System.out.println("Druk op x om nog een stap uit te voeren,druk op iets anders om de mogelijkheden te krijgen"); keuze1a = Input.readString(); weergavePerX(); } while(keuze1a.equals("x")); } public void keuzes2() { do { System.out.println("Hoeveel simulaties wil je uitvoeren?(minimaal 0,maximaal 1000)"); aantalSimulaties = Input.readInt(); } while ( aantalSimulaties <= 0 || 1000 <= aantalSimulaties ); } public void AantalSim() { long y; for ( y = 0 ; y < aantalSimulaties ; y ++) { algoritme(); tellenVanBalletjes(); } } public void keuzes2a() {//tellen van balletjes zonder ze te tekenen piramidelayout(); plaatsenVanBalletjes(); opvangBakjesNummers(); keuzes2c(); } public void keuzes2c() { System.out.println("Druk op x om nog een stap uit te voeren,druk op iets anders om de mogelijkheden te krijgen"); keuze1a = Input.readString(); if (keuze1a.equals("x")) { keuzes2(); AantalSim(); keuzes2a(); } else { keuzesWeergeven(); } } public void piramidelayout() {// piramide weergeven System.out.println(" * "); System.out.println(" * * "); System.out.println(" * * * "); System.out.println(" * * * * "); System.out.println(" * * * * * "); System.out.println(" * * * * * * "); } public void algoritme() {//berekenen waar de balletjes gaan neervallen(balletjeslinksofrechts) balletjeLinksOfRechts = 0; for( int x = 0 ; x <= 5 ; x ++ ) { linksOfrechts = (int)(Math.random() * 2); System.out.println(linksOfrechts); if (linksOfrechts == 0) { balletjeLinksOfRechts -- ;// Balletje valt naar links als 0,5 groter is dan linksofrechts } else if (linksOfrechts == 1) { balletjeLinksOfRechts ++ ;//Balletje valt naar rechts als 0,5 kleiner is dan linksofrechts } } } public void tellenVanBalletjes() {//de plaats waar het balletje is gevallen optellen bij het bakje switch( balletjeLinksOfRechts) { case -6: //balletje is 6 keer naar links gevallen bakje1 ++ ; break; case -4: //balletje is 5keer naar links gevallen en 1 keer naar rechts bakje2 ++ ; break; case -2://balletje is 4 keer naar links gevallen en 2 keer naar rechts bakje3 ++ ; break; case 0://balletje is 3 keer naar links en 3 keer naar rechts gevallen bakje4 ++ ; break; case 2: //balletje is 2 keer naar links en 4 keer naar rechts gevallen bakje5 ++ ; break; case 4: //balletje is 1 keer naar links en 5 keer naar rechts gevallen bakje6 ++ ; break; case 6: // balletje is 6 keer naar rechts gevallen bakje7 ++ ; break; default: System.out.println(">> " + balletjeLinksOfRechts); } } public void plaatsenVanBalletjes() {//het balletje bij het bakje optellen System.out.println("| " + bakje1 + " | " + bakje2 + " | " + bakje3 + " | " + bakje4 + " | " + bakje5 + " | " + bakje6 + " | " + bakje7 + " | "); } public void opvangBakjesNummers() {//weergave van bakjesnummers System.out.println("| 1 | 2 | 3 | 4 | 5 | 6 | 7 |");//??????????????????? } public void keuze3() { System.out.println("Programma sluit af"); } public static void main(String [] args) { Bordvangalton3 a = new Bordvangalton3(); a.keuzesWeergeven(); } }