Created
September 17, 2014 12:19
-
-
Save Happsson/ec3a0d27988a14bd5953 to your computer and use it in GitHub Desktop.
mathematica1.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package math; | |
import java.util.ArrayList; | |
import java.util.Arrays; | |
public class Mathematica1 { | |
static float farghander = 0; | |
static float par = 0; | |
static float triss = 0; | |
static float fyrtal = 0; | |
static float hus = 0; | |
static float stegar = 0; | |
static float tvapar = 0; | |
static float fargstage = 0; | |
static ArrayList<Card> cards; | |
static ArrayList<ArrayList<Card>> hands; | |
public static void main (String[] args){ | |
setUpCardDeck(); | |
checkResult(); | |
printOut(); | |
} | |
private static void setUpCardDeck() { | |
cards = new ArrayList<Card>(); | |
hands = new ArrayList<ArrayList<Card>>(); | |
for(int black = 1; black <= 10; black++){ | |
Card card = new Card("black", black); | |
cards.add(card); | |
} | |
for(int red = 1; red <= 8; red++){ | |
Card card = new Card("red", red); | |
cards.add(card); | |
} | |
for(int green = 1; green <= 8; green++){ | |
Card card = new Card("green", green); | |
cards.add(card); | |
} | |
for(int blue = 1; blue <= 7; blue++){ | |
Card card = new Card("blue", blue); | |
cards.add(card); | |
} | |
for(int kort1 = 0; kort1 < cards.size(); kort1++){ | |
for(int kort2 = kort1+1; kort2 < cards.size(); kort2++){ | |
for(int kort3 = kort2+1; kort3 < cards.size(); kort3++){ | |
for(int kort4 = kort3+1; kort4 < cards.size(); kort4++){ | |
for(int kort5 = kort4+1; kort5 < cards.size(); kort5++){ | |
ArrayList<Card> hand = new ArrayList<Card>(); | |
hand.add(cards.get(kort1)); | |
hand.add(cards.get(kort2)); | |
hand.add(cards.get(kort3)); | |
hand.add(cards.get(kort4)); | |
hand.add(cards.get(kort5)); | |
hands.add(hand); | |
} | |
} | |
} | |
} | |
} | |
} | |
private static void checkResult() { | |
for(ArrayList<Card> hand : hands){ | |
int[] numbers = {0,0,0,0,0,0,0,0,0,0}; | |
boolean[] suits = new boolean[4]; | |
Arrays.fill(suits, true); | |
checkNumber(numbers, hand); | |
checkSuite(suits, hand); | |
checkPair(numbers); | |
checkSuithands(suits,numbers,hand); | |
checkStege(numbers); | |
} | |
} | |
private static void printOut() { | |
System.out.println("Totalt antal kort: " + cards.size()); | |
System.out.println("Totalt antal händer: " + hands.size()); | |
System.out.println("Par: " + par + " st.\t\t Sannolikhet: " + par/hands.size()*100f + "%"); | |
System.out.println("Tvåpar: " + tvapar + " st.\t\t Sannolikhet: " + tvapar/hands.size()*100f + "%"); | |
System.out.println("Triss: " + triss + " st.\t\t Sannolikhet: " + triss/hands.size()*100f + "%"); | |
System.out.println("Stege: " + stegar + " st.\t\t Sannolikhet: " + stegar/hands.size()*100f + "%"); | |
System.out.println("Kåk: " + hus + " st. \t\t Sannolikhet: " + hus/hands.size()*100f + "%"); | |
System.out.println("Färg: " + farghander + " st.\t\t\t Sannolikhet: " + farghander/hands.size()*100f + "%"); | |
System.out.println("Fyrtal: " + fyrtal + " st.\t\t Sannolikhet: " + fyrtal/hands.size()*100f + "%"); | |
System.out.println("Färgstege: " + fargstage + " st.\t\t Sannolikhet: " + fargstage/hands.size()*100f + "%"); | |
System.out.println("Tot vinsthänder: " + (par+tvapar+triss+hus+fyrtal+stegar+fargstage+farghander) + | |
" st.\t Sannolikhet: " + (par+tvapar+triss+hus+fyrtal+stegar+fargstage+farghander)/hands.size()*100f + "%"); | |
} | |
private static void checkStege(int[] numbers) { | |
for(int j = 0; j < 6; j++){ | |
if( | |
numbers[j+0] == 1 && | |
numbers[j+1] == 1 && | |
numbers[j+2] == 1 && | |
numbers[j+3] == 1 && | |
numbers[j+4] == 1){ | |
stegar++; | |
} | |
} | |
} | |
private static void checkSuithands(boolean[] suits, int[] numbers, ArrayList<Card> hand) { | |
for(int i = 0; i < 4; i++){ | |
if(suits[i]==true){ | |
farghander++; | |
for(int j = 0; j < 6; j++){ | |
if( | |
numbers[j+0] == 1 && | |
numbers[j+1] == 1 && | |
numbers[j+2] == 1 && | |
numbers[j+3] == 1 && | |
numbers[j+4] == 1){ | |
fargstage++; | |
farghander--; | |
stegar--; | |
} | |
} | |
} | |
} | |
} | |
private static void checkPair(int[] numbers) { | |
int parCheck = 0; | |
int trissCheck = 0; | |
for(int i = 0; i < numbers.length; i++){ | |
if(numbers[i] == 2) parCheck++; | |
if(numbers[i] == 3) trissCheck++; | |
if(numbers[i] == 4) { | |
fyrtal++; | |
} | |
} | |
if(parCheck == 1 && trissCheck == 0) par++; | |
if(parCheck == 2) tvapar++; | |
if(parCheck == 1 && trissCheck == 1) { | |
hus++; | |
} | |
if(trissCheck == 1 && parCheck == 0) { | |
triss++; | |
} | |
} | |
private static void checkNumber(int[] numbers, ArrayList<Card> hand) { | |
for(Card card : hand){ | |
numbers[card.getNumber()-1]++; | |
} | |
} | |
private static void checkSuite(boolean[] suits, ArrayList<Card> hand) { | |
for(Card card : hand){ | |
if(card.getColor() != "black") { | |
suits[0] = false; | |
} | |
if(card.getColor() !="red") { | |
suits[1] = false; | |
} | |
if(card.getColor() != "green") { | |
suits[2] = false; | |
} | |
if(card.getColor() != "blue") { | |
suits[3] = false; | |
} | |
} | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment