exception - Getting a NoSuchElementsException in Java? -
ok, java class's final project we're supposed implement simplified version of craps runs 10 rounds. whenever run this, nosuchelementsexception line "int b=std.nextint()". why that? opened scanner object , whatnot, wont let me enter data proceed game, throwing exception instead. same exception "system.out.println(now.tostring());" line in main method. how not have elements?
public class player { private int bet;//how bet private boolean pass;//they chose pass private boolean dpass;//they chose dont pass private boolean win;//did win? private int money=20;//how have //private string continuity="initial"; //modifier methods public void newbet(int x){this.bet=x;} public void pass(boolean x){this.pass=x;} public void dpass(boolean x){this.dpass=x;} public void didyouwin(boolean x){this.win=x;} public void newmoney(int x){this.money+=x;} //public void keepplaying(string s){this.continuity=s;} //accessor methods public int getbet(){return this.bet;} public boolean getpass(){return this.pass;} public boolean getdpass(){return dpass;} public boolean getresult(){return this.win;} public int getmoney(){return this.money;} public boolean iswinning(){return this.win;} //public string playing(){return continuity;} public string tostring(){ return "bet: $"+this.bet+"\nbet on pass: "+this.pass+"\nbet on don't pass: "+this.dpass+"\nmoney:s"+this.money; } //constructor method public player(int bet, boolean pass, boolean dpass){ this.bet=bet; this.pass=pass; this.dpass=dpass; }
}
actual game play code<<<<<<<<<<<<<<<<<<<<<<<<<<
import java.util.*;
public class trial1 {
public static int rolldice(){ //method dice roll int[] die1={1, 2, 3, 4, 5, 6}; int[] die2={1, 2, 3, 4, 5, 6}; random r=new random(); int i1=r.nextint(6-0); int i2=r.nextint(6-0); int sum=die1[i1]+die2[i2]; system.out.println("\ndie 1: "+die1[i1]+"\ndie 2: "+die2[i2]+"\ntotal sum: "+sum); return sum; } public static int roll7(){//roll 7 if (rolldice()==7){ return 2; } else return roll7(); } public static int pointroll(int x){//if person rolled 4,5,6,8,9,10... int a=rolldice(); if (a==x){ return roll7(); } else if (a==7){ return 1; } else return pointroll(x); } public static int comeoutroll(){//1 = pass loses, 2 = pass wins, 3 = pass loses , dont pass gets nothing int x=rolldice(); if ((x==2)||(x==3)) { return 1; } else if ((x==7)||(x==11)){ return 2; } else if (x==12){ return 3; } else return pointroll(x); } public static player initializegame(){ //initialize stats , player system.out.println("please enter how you'd bet (max $5)"); scanner std=new scanner(system.in); int b=std.nextint(); system.out.println("please enter 1 if bet pass or 2 if bet don't pass"); int p=std.nextint(); boolean betpass, betdpass; if (p==1){ betpass=true; betdpass=false; } else { betpass=false; betdpass=true; } player name=new player(b, betpass, betdpass); system.out.print(name.tostring()); std.close(); return name; } public static player begingame(player name){ //start actual game process without betting ie dice rolling , stat changing -->will return player's status //boolean pass=name.getpass(); //boolean neutral=false; int result=comeoutroll(); //find out if player won money or lost money if (name.getpass()){//if player bet on pass if (result==1){ name.newmoney(name.getmoney()-name.getbet()); } else if (result==2){ name.newmoney(name.getmoney()+name.getbet()); } else { name.newmoney(name.getmoney()-name.getbet()); } } else {//if player bet dont pass if (result==1){ name.newmoney(name.getmoney()+name.getbet()); } else if (result==2){ name.newmoney(name.getmoney()-name.getbet()); } else { name.didyouwin(false); } } if (name.getmoney()<=0){name.didyouwin(false);}//setting win data yes or no. if no money, u lose else {name.didyouwin(true);} public static player continue(player name){//just begin game, adding new bet system.out.println("\nplease enter how you'd bet (max $5)"); scanner std=new scanner(system.in); int b=std.nextint(); system.out.println("please enter 1 if bet pass or 2 if bet don't pass"); int p=std.nextint(); boolean betpass, betdpass; if (p==1){ betpass=true; betdpass=false; } else { betpass=false; betdpass=true; } name.pass(betpass); name.dpass(betdpass); name.newbet(b); system.out.println(name.tostring()); return begingame(name); } public static void loss(player name){//losing message system.out.println("you lose!!!!!!!! hahahahahaha!!!!!\n"+name.tostring()); } public static void end(player name){//end game message system.out.println("thank playing!"); } public static player run(){ player name = initializegame(); return begingame(name); } public static void main(string[] args){ system.out.println("welcome version of craps!"); player now=run(); (int i=1;i<=10;i++){ if (now.iswinning()){ system.out.println("round "+i); system.out.println(now.tostring()); now=continue(now); i++; } else { loss(now); system.out.print(now.tostring()); end(now); i=11; } } }
}
the nosuchelementsexception means tried int
scanner, std
, there no next int
. throws error let know input bad.
Comments
Post a Comment