This is not perfect, I ran out of patience half way, but the general concept of bowling seems to work. Enter 4 players names and the scores will be calculated at random for 10 frames.
X = strike
/ = spare
- = neither
Code:
package bowling;
import java.util.Random;
import java.util.Scanner;
public class Bowling {
private static Random random = new Random();
public static void main(String[] args) {
String[] names = new String[4];
Scanner scanner = null;
try {
scanner = new Scanner(System.in);
System.out.println("Enter player 1's name.");
names[0] = scanner.nextLine();
System.out.println("Enter player 2's name.");
names[1] = scanner.nextLine();
System.out.println("Enter player 3's name.");
names[2] = scanner.nextLine();
System.out.println("Enter player 4's name.");
names[3] = scanner.nextLine();
} catch (Exception e) {
e.printStackTrace();
} finally {
scanner.close();
}
int total = 0;
int player_one_score = 0;
int player_two_score = 0;
int player_three_score = 0;
int player_four_score = 0;
for (int turn = 0; turn < 10; turn++) {
System.out.println("~~~~~~~~~~~~~~~~~~~~~ Frame " + (int) (turn + 1) + " ~~~~~~~~~~~~~~~~~~~~~");
for (int player = 0; player < names.length; player++) {
System.out.println(names[player]);
int[] score = new int[3];
int index = 0;
while (index < 2 && score[0] + score[1] != 10) {
switch (index) {
case 0:
score[0] = random.nextInt(10) + 1;
break;
case 1:
score[1] = random.nextInt(Math.abs(10 - score[0]) + 1);
break;
}
//System.out.println("score[0] " + score[0]);
//System.out.println("score[1] " + score[1]);
//System.out.println("score[2] " + score[2]);
index++;
}
if (player == 0) {
player_one_score += (int) (score[0] + score[1]);
} else if (player == 1) {
player_two_score += (int) (score[0] + score[1]);
} else if (player == 2) {
player_three_score += (int) (score[0] + score[1]);
} else if (player == 3) {
player_four_score += (int) (score[0] + score[1]);
}
if (score[0] == 10) {
System.out.println("X");
} else if ((int) (score[0] + score[1]) == 10) {
System.out.println("/ " + (int) (score[0] + score[1]));
} else if ((int) (score[0] + score[1]) < 10) {
System.out.println("- " + (int) (score[0] + score[1]));
} else if ((int) (score[0] + score[1]) > 10) {
System.out.println("Error");
}
}
}
total = player_one_score + player_two_score + player_three_score + player_four_score;
System.out.println("player_one_score: " + player_one_score);
System.out.println("player_two_score: " + player_two_score);
System.out.println("player_three_score: " + player_three_score);
System.out.println("player_four_score: " + player_four_score);
System.out.println("total: " + total);
}
}