Quantcast
Channel: Programming Forums
Viewing all articles
Browse latest Browse all 51036

Can anyone help me find my errors?

$
0
0
Can anyone figure out whats wrong with my code?
Im making a game of Blackjack (also known as 21) as a project and I'm getting annoyed with little errors.

It dosent happen every time, but sometimes when the dealer picks up another card, at the end, it will only display their first 2 cards and not the last but still say they won.

Then other times, where it should say it was a tie (example: both got an 8 and 9), it still says you lost.
Please help me with this!

import java.util.*;
class java{
	public static void main(String args[]){
		int game=1;
		Scanner i=new Scanner(System.in);
		//Start Check------------------------------------------------------------------------------------------------
		int startCheck=1;
		System.out.print("Hello there, do you wish to play Blackjack? ");
		while(startCheck==1){
			String start=i.next();
			if(start.equals("yes")||start.equals("yea")||start.equals("sure")||start.equals("ok")){
				System.out.println("Great! Lets start.\n");
				startCheck=0;
			}else if(start.equals("no")||start.equals("na")){
				System.out.println("Sorry to bother you then...");
				System.exit(0);
			}else{
				System.out.println("Sorry, im afraid I dont understand what you're saying.");
			}
		}
		//Constant Variables-----------------------------------------------------------------------------------------
		int money=1000;
		//Game On----------------------------------------------------------------------------------------------------
		int everything=1;
		while(everything==1){
			game=1;
			String again;
			while(game==1){
				//Making Cards-------------------------------------------------------------------------------------------
				char cards[]=new char[14];
				cards[1]=65;
				cards[2]=50;
				cards[3]=51;
				cards[4]=52;
				cards[5]=53;
				cards[6]=54;
				cards[7]=55;
				cards[8]=56;
				cards[9]=57;
				cards[11]=74;
				cards[12]=81;
				cards[13]=75;
				//Other--------------------------------------------------------------------------------------------------
				int draw3=0;
				int dealerDraw3=0;
				//Variables----------------------------------------------------------------------------------------------
				int tot=0;
				int bet=0;
				int dealerTot=0;
				//Bet Process--------------------------------------------------------------------------------------------
				int betProcess=1;
				while(betProcess==1){
					System.out.print("\n\n\nOk, ye 'ave "+money+" dollars, how much ye wanna bet? ");
					bet=i.nextInt();
					if(money==0){
						System.out.println("Come back when yer pockets are full!");
						System.exit(0);
					}else if(bet>money){
						System.out.println("Ye dont have that much!\n");
					}else if(bet==0||bet==1){
						System.out.println("Dont play games here!\n");
					}else{
						System.out.println("Great, "+bet+" dollars it is!\n\n");
						money=money-bet;
						betProcess=0;
					}
				}
				//Drawing Cards------------------------------------------------------------------------------------------
				int draw1=(int)Math.round(Math.random()*14);
				while(draw1==14||draw1==0){
					draw1=(int)Math.round(Math.random()*14);
				}
				int draw2=(int)Math.round(Math.random()*14);
				while(draw2==14||draw2==0){
					draw2=(int)Math.round(Math.random()*14);
				}
				//Displaying Cards---------------------------------------------------------------------------------------
				if(draw1==10&&draw2==10){
					System.out.println("Your cards were: 10 and 10");
				}else if(draw1==10){
					System.out.println("Your cards were: 10 and "+cards[draw2]);
				}else if(draw2==10){
					System.out.println("Your cards were: "+cards[draw1]+" and 10");
				}else{
					System.out.println("Your cards were: "+cards[draw1]+" and "+cards[draw2]);
				}
				//Total Value--------------------------------------------------------------------------------------------
				//Value Card 1-------------------------------------------------------------------------------------------
				if(draw1==1){
					if(tot>10){
						tot=tot+1;
					}else if(tot<=10){
						tot=tot+11;
					}
				}else if(draw1==2){
					tot=tot+2;
				}else if(draw1==3){
					tot=tot+3;
				}else if(draw1==4){
					tot=tot+4;
				}else if(draw1==5){
					tot=tot+5;
				}else if(draw1==6){
					tot=tot+6;
				}else if(draw1==7){
					tot=tot+7;
				}else if(draw1==8){
					tot=tot+8;
				}else if(draw1==9){
					tot=tot+9;
				}else if(draw1==10){
					tot=tot+10;
				}else if(draw1==11){
					tot=tot+10;
				}else if(draw1==12){
					tot=tot+10;
				}else if(draw1==13){
					tot=tot+10;
				}
				//Value Card 2-------------------------------------------------------------------------------------------
				if(draw2==1){
					if(tot>10){
						tot=tot+1;
					}else if(tot<=10){
						tot=tot+11;
					}
				}else if(draw2==2){
					tot=tot+2;
				}else if(draw2==3){
					tot=tot+3;
				}else if(draw2==4){
					tot=tot+4;
				}else if(draw2==5){
					tot=tot+5;
				}else if(draw2==6){
					tot=tot+6;
				}else if(draw2==7){
					tot=tot+7;
				}else if(draw2==8){
					tot=tot+8;
				}else if(draw2==9){
					tot=tot+9;
				}else if(draw2==10){
					tot=tot+10;
				}else if(draw2==11){
					tot=tot+10;
				}else if(draw2==12){
					tot=tot+10;
				}else if(draw2==13){
					tot=tot+10;
				}
				//Action-------------------------------------------------------------------------------------------------
				System.out.println("The total of your cards is: "+tot);
				if(tot==21){
					System.out.println("Blackjack! You have Won TRIPPLE your bet!!!");
					money=money+(bet*4);
					System.out.print("Do you wish to play again? ");
					again=i.next();
					if(again.equals("yes")||again.equals("Yes")){
						break;
					}if(again.equals("no")||again.equals("No")){
						System.out.println("Thank ye for playing!");
						System.exit(0);
					}
				}else if(tot>21){
						System.out.println("Ye have busted! You Lost your bet!!");
						System.out.print("Do you wish to play again? ");
						again=i.next();
						if(again.equals("yes")||again.equals("Yes")){
							break;
						}if(again.equals("no")||again.equals("No")){
							System.out.println("Thank ye for playing!");
							System.exit(0);
						}
					}
				System.out.println("What would you like to do?");
				System.out.print("Stand, Surrender, Hit: ");
				String action=i.next();
				//If Surrender-------------------------------------------------------------------------------------------
				if(action.equals("Surrender")||action.equals("surrender")){
					money=money+(bet/2);
					System.out.println("\nYour bet has been divided into 2 piles and you get one of them back.");
					System.out.println("Your current amount of money is now: "+money);
					System.out.print("Do you wish to play again? ");
					again=i.next();
					if(again.equals("yes")||again.equals("Yes")){
						break;
					}if(again.equals("no")||again.equals("No")){
						System.out.println("Thank ye for playing!");
						System.exit(0);
						
					}
				//If Stand-----------------------------------------------------------------------------------------------	
				}else if(action.equals("stand")||action.equals("Stand")){
				//If Hit-------------------------------------------------------------------------------------------------	
				}else if(action.equals("hit")||action.equals("Hit")||action.equals("HIT ME BABY ONE MORE TIME!")){
					draw3=(int)Math.round(Math.random()*14);
					while(draw3==14||draw1==0){
						draw3=(int)Math.round(Math.random()*14);
					}
					if(draw3==1){
						if(tot>10){
							tot=tot+1;
						}else if(tot<=10){
							tot=tot+11;
						}
					}else if(draw3==2){
						tot=tot+2;
					}else if(draw3==3){
						tot=tot+3;
					}else if(draw3==4){
						tot=tot+4;
					}else if(draw3==5){
						tot=tot+5;
					}else if(draw3==6){
						tot=tot+6;
					}else if(draw3==7){
						tot=tot+7;
					}else if(draw3==8){
						tot=tot+8;
					}else if(draw3==9){
						tot=tot+9;
					}else if(draw3==10){
						tot=tot+10;
					}else if(draw3==11){
						tot=tot+10;
					}else if(draw3==12){
						tot=tot+10;
					}else if(draw3==13){
						tot=tot+10;
					}
					if(draw1==10&&draw2==10&&draw3==10){
						System.out.println("Your cards were: 10, 10 and 10");
					}else if(draw1==10){
						System.out.println("Your cards were: 10, "+cards[draw2]+" and "+cards[draw3]);
					}else if(draw2==10){
						System.out.println("Your cards were: 10, "+cards[draw1]+" and 10");
					}else if(draw3==10){
						System.out.println("Your cards were: "+cards[draw1]+", "+cards[draw2]+" and 10");
					}else if(draw1==10&&draw2==10){
						System.out.println("Your cards were: 10 10 "+cards[draw3]);
					}else if(draw2==10&&draw3==10){
						System.out.println("Your cards were: "+cards[draw1]+", 10 and 10");
					}else if(draw1==10&&draw3==10){
						System.out.println("Your cards were: 10, "+cards[draw2]+" and 10");
					}else{
						System.out.println("Your cards were: "+cards[draw1]+", "+cards[draw2]+" and "+cards[draw3]);
					}
					System.out.println("The total value of your cards is: "+tot);
					if(tot>21){
						System.out.println("Ye have busted! You Lost your bet!!");
							System.out.print("Do you wish to play again? ");
						again=i.next();
						if(again.equals("yes")||again.equals("Yes")){
							break;
						}if(again.equals("no")||again.equals("No")){
							System.out.println("Thank ye for playing!");
							System.exit(0);
						}
					}if(tot==21){
						System.out.println("Blackjack! You have Won TRIPPLE your bet!!!");
						money=money+(bet*4);
						System.out.print("Do you wish to play again? ");
						again=i.next();
						if(again.equals("yes")||again.equals("Yes")){
							break;
						}if(again.equals("no")||again.equals("No")){
							System.out.println("Thank ye for playing!");
							System.exit(0);
						}
					}
				}else{
					System.exit(0);   // <<-- Wasnt sure how else to do this in the amount of time I had. Maybe a while loop over whole action phase? (it would accept anything and still continue through the code (examples: "sand", "it", surender"))
				}	
				//Dealer Draws-------------------------------------------------------------------------------------------
				int dealerDraw1=(int)Math.round(Math.random()*14);
				while(dealerDraw1==14||dealerDraw1==0){
					dealerDraw1=(int)Math.round(Math.random()*14);
				}
				int dealerDraw2=(int)Math.round(Math.random()*14);
				while(dealerDraw2==14||dealerDraw2==0){
					dealerDraw2=(int)Math.round(Math.random()*14);
				}
				//Dealer Card Value 1------------------------------------------------------------------------------------
				if(dealerDraw1==1){
					if(dealerTot>10){
						dealerTot=dealerTot+1;
					}else if(dealerTot<=10){
						dealerTot=dealerTot+11;
					}
				}else if(dealerDraw1==2){
					dealerTot=dealerTot+2;
				}else if(dealerDraw1==3){
					dealerTot=dealerTot+3;
				}else if(dealerDraw1==4){
					dealerTot=dealerTot+4;
				}else if(dealerDraw1==5){
					dealerTot=dealerTot+5;
				}else if(dealerDraw1==6){
					dealerTot=dealerTot+6;
				}else if(dealerDraw1==7){
					dealerTot=dealerTot+7;
				}else if(dealerDraw1==8){
					dealerTot=dealerTot+8;
				}else if(dealerDraw1==9){
					dealerTot=dealerTot+9;
				}else if(dealerDraw1==10){
					dealerTot=dealerTot+10;
				}else if(dealerDraw1==11){
					dealerTot=dealerTot+10;
				}else if(dealerDraw1==12){
					dealerTot=dealerTot+10;
				}else if(dealerDraw1==13){
					dealerTot=dealerTot+10;
				}
				//Dealer Card Value 2------------------------------------------------------------------------------------
				if(dealerDraw2==1){
					if(dealerTot>10){
						dealerTot=dealerTot+1;
					}else if(dealerTot<=10){
						dealerTot=dealerTot+11;
					}
				}else if(dealerDraw2==2){
					dealerTot=dealerTot+2;
				}else if(dealerDraw2==3){
					dealerTot=dealerTot+3;
				}else if(dealerDraw2==4){
					dealerTot=dealerTot+4;
				}else if(dealerDraw2==5){
					dealerTot=dealerTot+5;
				}else if(dealerDraw2==6){
					dealerTot=dealerTot+6;
				}else if(dealerDraw2==7){
					dealerTot=dealerTot+7;
				}else if(dealerDraw2==8){
					dealerTot=dealerTot+8;
				}else if(dealerDraw2==9){
					dealerTot=dealerTot+9;
				}else if(dealerDraw2==10){
					dealerTot=dealerTot+10;
				}else if(dealerDraw2==11){
					dealerTot=dealerTot+10;
				}else if(dealerDraw2==12){
					dealerTot=dealerTot+10;
				}else if(dealerDraw2==13){
					dealerTot=dealerTot+10;
				}
				//Does Dealer Pick Up?-----------------------------------------------------------------------------------
				if(dealerTot>21){
					System.out.println("The Dealer has Busted! You have Won and got DOUBLE your bet!!");
					money=money+(bet*3);
					System.out.print("Do you wish to play again? ");
					again=i.next();
					if(again.equals("yes")||again.equals("Yes")){
						break;
					}if(again.equals("no")||again.equals("No")){
						System.out.println("Thank ye for playing!");
						System.exit(0);
					}
				}else if(dealerTot==21){
					System.out.println("The Dealer got Blackjack! You have Lost your bet!!");
					System.out.print("Do you wish to play again? ");
					again=i.next();
					if(again.equals("yes")||again.equals("Yes")){
						break;
					}if(again.equals("no")||again.equals("No")){
						System.out.println("Thank ye for playing!");
						System.exit(0);
					}
				}
				if(dealerTot<17){
					dealerDraw3=(int)Math.round(Math.random()*14);
					while(dealerDraw3==14||dealerDraw3==0){
						dealerDraw3=(int)Math.round(Math.random()*14);
					}
				//Dealer Card Value 3------------------------------------------------------------------------------------
					if(dealerDraw3==1){
						if(dealerTot>10){
							dealerTot=dealerTot+1;
						}else if(dealerTot<=10){
							dealerTot=dealerTot+11;
						}
					}else if(dealerDraw3==2){
						dealerTot=dealerTot+2;
					}else if(dealerDraw3==3){
						dealerTot=dealerTot+3;
					}else if(dealerDraw3==4){
						dealerTot=dealerTot+4;
					}else if(dealerDraw3==5){
						dealerTot=dealerTot+5;
					}else if(dealerDraw3==6){
						dealerTot=dealerTot+6;
					}else if(dealerDraw3==7){
						dealerTot=dealerTot+7;
					}else if(dealerDraw3==8){
						dealerTot=dealerTot+8;
					}else if(dealerDraw3==9){
						dealerTot=dealerTot+9;
					}else if(dealerDraw3==10){
						dealerTot=dealerTot+10;
					}else if(dealerDraw3==11){
						dealerTot=dealerTot+10;
					}else if(dealerDraw3==12){
						dealerTot=dealerTot+10;
					}else if(dealerDraw3==13){
						dealerTot=dealerTot+10;
					}
				}
				if(dealerTot>21){
					System.out.println("The Dealer has Busted! You have Won DOUBLE your bet!!");
					money=money+(bet*3);
					System.out.print("Do you wish to play again? ");
					again=i.next();
					if(again.equals("yes")||again.equals("Yes")){
						break;
					}if(again.equals("no")||again.equals("No")){
						System.out.println("Thank ye for playing!");
						System.exit(0);
					}
				}else if(dealerTot==21){
					System.out.println("The Dealer got Blackjack! You have Lost your bet!!");
					System.out.print("Do you wish to play again? ");
					again=i.next();
					if(again.equals("yes")||again.equals("Yes")){
						break;
					}if(again.equals("no")||again.equals("No")){
						System.out.println("Thank ye for playing!");
						System.exit(0);
					}
				}
				//Final--------------------------------------------------------------------------------------------------
				System.out.println("\n\n\n\n");
				//Player Cards-------------------------------------------------------------------------------------------
				if(draw3==0){
					if(draw1==10&&draw2==10){
						System.out.println("Your cards were: 10 and 10");
					}else if(draw1==10){
						System.out.println("Your cards were: 10 and "+cards[draw2]);
					}else if(draw2==10){
						System.out.println("Your cards were: "+cards[draw1]+" and 10");
					}else{
						System.out.println("Your cards were: "+cards[draw1]+" and "+cards[draw2]);
					}
				}else if(draw3>0){
					if(draw1==10&&draw2==10&&draw3==10){
						System.out.println("Your cards were: 10, 10 and 10");
					}else if(draw1==10){
						System.out.println("Your cards were: 10, "+cards[draw2]+" and "+cards[draw3]);
					}else if(draw2==10){
						System.out.println("Your cards were: 10, "+cards[draw1]+" and 10");
					}else if(draw3==10){
						System.out.println("Your cards were: "+cards[draw1]+", "+cards[draw2]+" and 10");
					}else if(draw1==10&&draw2==10){
						System.out.println("Your cards were: 10, 10 and "+cards[draw3]);
					}else if(draw2==10&&draw3==10){
						System.out.println("Your cards were: "+cards[draw1]+", 10 and 10");
					}else if(draw1==10&&draw3==10){
						System.out.println("Your cards were: 10, "+cards[draw2]+" and 10");
					}else{
						System.out.println("Your cards were: "+cards[draw1]+", "+cards[draw2]+" and "+cards[draw3]);
					}
				}
				//Dealer Cards-------------------------------------------------------------------------------------------
				if(dealerDraw3==0){
					if(dealerDraw1==10&&dealerDraw2==10){
						System.out.println("The Dealers cards were: 10 and 10");
					}else if(dealerDraw1==10){
						System.out.println("The Dealers cards were: 10 and "+cards[draw2]);
					}else if(dealerDraw2==10){
						System.out.println("The Dealers cards were: "+cards[draw1]+" and 10");
					}else if(dealerDraw1!=10&&dealerDraw2!=10){
						System.out.println("The Dealers cards were: "+cards[draw1]+" and "+cards[draw2]);
					}
				}else if(dealerDraw3>0){
					if(dealerDraw1==10&&dealerDraw2==10&&dealerDraw3==10){
						System.out.println("The Dealers cards were: 10, 10 and 10");
					}else if(dealerDraw1==10){
						System.out.println("The Dealers cards were: 10, "+cards[dealerDraw2]+", "+cards[dealerDraw3]);
					}else if(dealerDraw2==10){
						System.out.println("The Dealers cards were: "+cards[dealerDraw1]+", 10 and "+cards[dealerDraw3]);
					}else if(dealerDraw3==10){
						System.out.println("The Dealers cards were: "+cards[dealerDraw1]+", "+cards[dealerDraw2]+" and 10");
					}else if(dealerDraw1==10&&dealerDraw2==10){
						System.out.println("The Dealers cards were: 10, 10 and "+cards[dealerDraw3]);
					}else if(dealerDraw2==10&&dealerDraw3==10){
						System.out.println("The Dealers cards were: "+cards[dealerDraw1]+", 10 and 10");
					}else if(dealerDraw1==10&&dealerDraw3==10){
						System.out.println("The Dealers cards were: 10, "+cards[dealerDraw2]+" and 10");
					}else if(dealerDraw1!=10&&dealerDraw2!=10&&dealerDraw3!=10){
						System.out.println("The Dealers cards were: "+cards[dealerDraw1]+", "+cards[dealerDraw2]+" and "+cards[dealerDraw3]);
					}
				}
				//Who Wins?----------------------------------------------------------------------------------------------
				if(dealerTot==tot){
					System.out.println("You have tied! The casino gave you your money back and not a dollar more.");
					money=money+bet;
					System.out.print("Do you wish to play again? ");
					again=i.next();
					if(again.equals("yes")||again.equals("Yes")){
						break;
					}if(again.equals("no")||again.equals("No")){
						System.out.println("Thank ye for playing!");
						System.exit(0);
					}
				}else if(dealerTot>tot){
					System.out.println("You have been beaten by the Dealer and lost your bet!!!");
					System.out.print("Do you wish to play again? ");
					again=i.next();
					if(again.equals("yes")||again.equals("Yes")){
						break;
					}if(again.equals("no")||again.equals("No")){
						System.out.println("Thank ye for playing!");
						System.exit(0);
					}
				}else if(tot>dealerTot){
					System.out.println("You have beat the Dealer and gained DOUBLE your bet!!");
					money=money+(bet*3);
					System.out.print("Do you wish to play again? ");
					again=i.next();
					if(again.equals("yes")||again.equals("Yes")){
						break;
					}if(again.equals("no")||again.equals("No")){
						System.out.println("Thank ye for playing!");
						System.exit(0);
					}
				}else{
					System.exit(0);
				}
			}
		}	
	}
}


Viewing all articles
Browse latest Browse all 51036

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>