{}
run-icon
Main.java
import java.util.Scanner; /* Hi! If you lose, you lose the money you bet If you win, you get it Gamble away $$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$ $$$$$$$$$$$$$$ $$$$$$$ $$ $ $$$$ $$$$$$$$$$$ $$ $$$ $$ $ $ $$$$ $$$$%$$$ $ $ $$ $$$ $ $ $$ $ $$ $$$$%%$$$ $ $ $$ $$$ $ $$ $ $ $$$ $$$$$%%$$$$ $ $ $ $$ $ $$$ $ $$ $$$$ $$$$$%%%$$$$$ $$$$ $ $ $$ $ $$$$$ $$ $$$$$ $$$$$$%%%$$$$$$$$$$$ $$ $ $$$$ $ $$$$$$$$$$$$$$$$ $$$$$$%%%$$$$$$$$$$$$$$$ $$$$$$ $$$$$$$$$$$$$$$$$$$ $$$$$$%%%$$%%%%%%$$$$$$$$$$$$$$$ $$$$$$$$$ $$$$$$$$ $$$$$$%%$$%%%%%%%%%$$$$$$$$$$$$$ $$$$$$$ $$$$%$$$ $$$$$$%$$%%%%%%%%%%%$$$$$$$$$$$$$$$$$ $$$$%%$$$ $$$$$$$$%%%%%%%%%%%%%$$$$$$$$$$$ $$$$%%$$$ $$$$$$$%%% $$$$$$$$ $$$%%$$$ $$$$$$%%% $$$%%$$ $$$$$$%%% $$$%%$$ $$$$$%%%% % $$$%%$$ $$$$$%%%% % $$%%$$ $$$$$%%%% % $$%%$$ $$$$$%%%% %% $$$%$$ $$$$$%%%% %%% $$$%$$ $$$$$%%%% %% $$$%$$ $$$$$%%%% %% $$$%$$ $$$$$%%%% %% $$$%$$ $$$$%%%% $$$$ %% $$$$%$$ $ $$$%%%% $$$$$$$$$ $$$$$$$$$%% $$$$$$$ $$$ $$%%% $$$$$$$$$$ $$$$$$$$$$$%% $$$$$$ $$$$ %%% $$$ $$$$ $$%% $$$$$$ $$$$$$%%% $$$$$ $$$$ $$$$$$$$$$ $%% $$$$$$ $$$$ %%% $$$ $$$$$ $$$$$$ $$$ %%% $$$$$ $$$$ $$$$$$$$$ $$$$ $$$$$$$$$$$$$$ % $$$$$ $$$$ $$$ $ $$ $$$$ $$$$$$ $ $ $$ $$$$ $$$$ $ $$$ %%%$$$ %% $$$ $$$$ $$$$ %%%% $$ %%%%%% %%% $$$$ $$$$ %%% %%%%% $ %%%%%%% $$$$ $$$$ %%%%% $$ %%% $$ $ $$ $ %% $ $ $$ $ $$ $ $ $ $ $$ $ %$ $$ $ $ $ $ %%$ $$$$ $$$ $$ $ %%% $ $ $$ $$ $$ $ %%%% $ $$$ $$ $ $ $$$ $$ %%%% $$$ $$$ $$$ $ $ $$$ $$ %%%$$$ $$$$ $$$$ $$$$ $ $$$$$$$$$$ $$$$$$$$$$$$$$ $$$$$$$$$ $ $$$$$$$ $$$$$$$$$$$$$$ $$$$$$$$ $ $$$$$$ %%$$$$$$$$$$$$$$ $$$$$$$$$$$$$$ $$$ $$ %$$$$$$$$$$ $$$$$$$$$ $$$$ $$ $ $$$$ $$$$$$$$ $$ $$$ $$ $ %$$$$ $$ $$$$ $ $ %%%%$$$ $$$$$$$$$$$$$ $$$ $$ $$ %%%% $$ $$$$ $$ $$ %%$$$$ $$$$$$$$$$ $$$ $ $ $$$$$%%%%%%%%%% $$$$ $$ $$ $$$$$%%% $$$ $ $ $$$$ %%%%%%%%%%%%%% $$$ $$ $$$$ %%%%%%%%%%%%% $$$ $$$ $ $$$$ $%%%% $$$ $$ $$ $$$$$ $$$$ $$$ $ $$ $$ $$$$$$ $$$ $$$ $ $$$$ $$ $$$$$$ $$$$ $$$ $ $$$ $$$ $$$$$$ $$$$$$$ $$$ $ $$$$$$$$$$ $$$$$$ $$$ $ $$ $$$$$$$$ $$$$$$$$$$$$$$$ $$$ $$$$$ $$$$$$$ $$$$$$$$$$$$$$$$$$ $$$$$$ $$$$$ $$$$$$ $$$$$ $$$$ $$$$$$ $$$ $$$$$ $$$ $$$$$$$$ $$$$$$ */ public class Main { public static void main(String[] args) { Scanner myObj = new Scanner(System.in); double money = 100; System.out.println("You have $100. Time to play Black Jack"); int[] card = new int[52]; boolean playing = true; double bet = 0; int wins = 0; int losses=0; while(playing){ System.out.println("How much money would you like to bet? $5 minimum"); bet = myObj.nextDouble(); boolean betGood=false; while(!betGood){ if(bet<5){ System.out.println("There is a $5 minimum"); bet = myObj.nextDouble(); }if(bet>money){ System.out.println("You don't have enough money for that"); bet = myObj.nextDouble(); } else{ betGood=true; } } System.out.println("A $"+bet+" bet was made. "); int[] dealerCard = new int[10]; int[] playerCard = new int[10]; //generate the order of cards for(int i = 0; i<card.length; i++){ card[i]=(int)(Math.random()*52)+1; } for(int i =0; i<card.length; i++){ //for every question boolean genGood = false; //not proven that it is not the same as something if(i!=0){ //if it is not the first question while(!genGood) { //while it is "the same as something" //strating at one before the i element we are one until we reach the first element genGood=true; for (int k = 1; k <= i; k++) { //if it is the same as a prior question if (card[i] == card[i - k]) { card[i] = (int) (Math.random() * 52) + 1; genGood=false; } } } } } String playerSuit=""; //hearts =1 //diamonds =2 //spades=3 //clubs=4 String playerCardNum = ""; int playerSum=0; System.out.println("Your cards: "); int k=0; for(int i=0; i<2;i++){ //print first two cards playerCard[i]=card[k]; k++; dealerCard[i]=card[k]; k++; playerCardNum = numFind(playerCard, i); playerSuit = suitFind(playerCard, i); System.out.println(playerCardNum+" of "+playerSuit); } System.out.println(); System.out.println("The dealers card: "); System.out.println(numFind(dealerCard, 0)+" of "+suitFind(dealerCard, 0)); System.out.println(); boolean playerChoosing = true; int round = 2; int playerCardAmt = 2; while(playerChoosing){ //player picks to hit or pass System.out.println("Would you like to hit (0) or pass (1) ?"); int choice = myObj.nextInt(); boolean choiceGood = false; while(!choiceGood){ if(choice!=1&&choice!=0){ System.out.println("Please input valid choice"); System.out.println("Would you like to hit (0) or pass (1) ?"); choice = myObj.nextInt(); }else{ choiceGood=true; } } if (choice == 0) { //hit playerCard[round]= card[k]; k++; playerCardAmt++; System.out.println("Your cards: "); playerSum=0; for(int i=0; i<playerCardAmt;i++){ //print player cards playerCardNum = numFind(playerCard, i); playerSuit = suitFind(playerCard, i); System.out.println(playerCardNum+" of "+playerSuit); playerSum+=valueFind(playerCard, i); if(numFind(playerCard, i).equalsIgnoreCase("Ace")){ if(playerSum+11>21){ playerSum+=1; }else{ playerSum+=11; } } } if(playerSum>21){ System.out.println("Bust!"); break; } } else{ playerChoosing=false; } round++; } //after player has chose playerSum=0; //calc palyer sum for(int i =0; i<playerCardAmt;i++){ playerSum+=valueFind(playerCard, i); if(numFind(playerCard, i).equalsIgnoreCase("Ace")){ if(playerSum+11>21){ playerSum+=1; }else{ playerSum+=11; } } } int playerDif = Math.abs(21-playerSum); System.out.println("\nYour total ended up being "+playerSum); if(playerSum==21){ System.out.println("You got blackjack!"); }else if(playerSum<21){ System.out.println("You were "+playerDif+" away from blackjack. "); }else{ System.out.println("You were "+playerDif+" over blackjack. "); } //dealer playing now System.out.println("\nIt's the dealer's turn now."); boolean dealerPlaying=true; int dealerSum = 0; int n = 2; //dealer drawing cards while(dealerPlaying){ dealerSum=0; for(int i = 0; i < n; i++){ if(numFind(dealerCard, i).equalsIgnoreCase("Ace")){ if(dealerSum+11>21){ dealerSum+=1; }else{ dealerSum+=11; } }else{ dealerSum += valueFind(dealerCard, i); } } if(dealerSum<=16){ dealerCard[n]=card[k]; k++; n++; }else{ dealerPlaying=false; } } System.out.println("The dealer drew their cards. They were:"); String dealerCardNum = ""; String dealerSuit = ""; //print dealer cards for(int i=0; i<n;i++){ dealerCardNum = numFind(dealerCard, i); dealerSuit = suitFind(dealerCard, i); System.out.println(dealerCardNum+" of "+dealerSuit); } int dealerDif = Math.abs(21-dealerSum); System.out.println(); System.out.println("The dealer's cards added up to "+dealerSum); if(dealerSum==21){ System.out.println("They got blackjack!"); }else if(dealerSum<21){ System.out.println("They were "+dealerDif+" away from blackjack. "); }else{ System.out.println("They were "+dealerDif+" over blackjack. "); } System.out.println(); boolean win = false; if(dealerSum>21&&playerSum>21){ System.out.println("Draw goes to house."); win=false; }else if (dealerSum==playerSum){ System.out.println("Draw goes to house."); }else if(dealerSum>21){ win=true; }else if(playerDif<dealerDif){//win win=true; } if(win){ System.out.println("You won!"); System.out.println("You gained $"+bet); money+=bet; System.out.println("You now have $"+ money); wins++; }else{ System.out.println("You lost"); System.out.println("You lost $"+bet); money-=bet; System.out.println("You now have $"+ money); losses++; } if(money<=0){ break; } } System.out.println("You lost!"); System.out.println("You won "+wins+" times and lost "+losses+" times."); } public static int valueFind(int arr[], int i){ if(arr[i]==1||arr[i]==14||arr[i]==27||arr[i]==40){ //1 return 0; }else if(arr[i]==13||arr[i]==26||arr[i]==39||arr[i]==52){ //13 return 10; }else if(arr[i]==12||arr[i]==25||arr[i]==38||arr[i]==51){ //12 return 10; }else if(arr[i]==11||arr[i]==24||arr[i]==37||arr[i]==50){ //11 return 10; }else if(arr[i]==2||arr[i]==13||arr[i]==28||arr[i]==41){ //2 return 2; }else if(arr[i]==3||arr[i]==14||arr[i]==29||arr[i]==42){ //3 return 3; }else if(arr[i]==4||arr[i]==15||arr[i]==30||arr[i]==43){ //4 return 4; }else if(arr[i]==5||arr[i]==16||arr[i]==31||arr[i]==44){ //5 return 5; }else if(arr[i]==6||arr[i]==17||arr[i]==32||arr[i]==45){ //6 return 6; }else if(arr[i]==7||arr[i]==18||arr[i]==33||arr[i]==46){ //7 return 7; }else if(arr[i]==8||arr[i]==19||arr[i]==34||arr[i]==47){ //8 return 8; }else if(arr[i]==9||arr[i]==20||arr[i]==35||arr[i]==48){ //9 return 9; }else { //10 return 10; } } public static String suitFind(int arr[], int i){ if(arr[i]>=1&&arr[i]<=13){ //hearts return "hearts"; }else if(arr[i]>=14&&arr[i]<=26){ //diamonds return "diamonds"; }else if(arr[i]>=27&&arr[i]<=39){ //spades return "spades"; }else{ //clubs return "clubs"; } } public static String numFind(int arr[], int i){ if(arr[i]==1||arr[i]==14||arr[i]==27||arr[i]==40){ //1 return "Ace"; }else if(arr[i]==13||arr[i]==26||arr[i]==39||arr[i]==52){ //13 return "King"; }else if(arr[i]==12||arr[i]==25||arr[i]==38||arr[i]==51){ //12 return "Queen"; }else if(arr[i]==11||arr[i]==24||arr[i]==37||arr[i]==50){ //11 return "Jack"; }else if(arr[i]==2||arr[i]==13||arr[i]==28||arr[i]==41){ //2 return "two"; }else if(arr[i]==3||arr[i]==14||arr[i]==29||arr[i]==42){ //3 return "three"; }else if(arr[i]==4||arr[i]==15||arr[i]==30||arr[i]==43){ //4 return "four"; }else if(arr[i]==5||arr[i]==16||arr[i]==31||arr[i]==44){ //5 return "five"; }else if(arr[i]==6||arr[i]==17||arr[i]==32||arr[i]==45){ //6 return "six"; }else if(arr[i]==7||arr[i]==18||arr[i]==33||arr[i]==46){ //7 return "seven"; }else if(arr[i]==8||arr[i]==19||arr[i]==34||arr[i]==47){ //8 return "eight"; }else if(arr[i]==9||arr[i]==20||arr[i]==35||arr[i]==48){ //9 return "nine"; }else { //10 return "ten"; } } }
Output