/Users/adelaide/Public/Netbeans - All JSR Projects/The Last Word on Methods - JSR/src/thelastwordonmethods/RobotsMain.java |
1 2 package thelastwordonmethods; 3 4 import java.io.BufferedReader; 5 import java.io.InputStreamReader; 6 7 /** 8 * 9 * @author John Rayworth 10 */ 11 public class RobotsMain { 12 static int score = 0; 13 14 public static void main(String[] args) { 15 16 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 17 try{ 18 printOutIntroduction(); 19 System.out.println("How many balls were picked up?"); 20 int numBalls = Integer.parseInt(br.readLine()); 21 System.out.println("Did you get the bowling ball up, in place, on the ramp? true/false"); 22 boolean ballInPlace = Boolean.parseBoolean(br.readLine()); 23 System.out.println("Your basic score is " + calculateBasicPoints(numBalls, ballInPlace)); 24 25 System.out.println(""); 26 System.out.println("Penalty Calculations:"); 27 System.out.println("Were there any penalties? true/false"); 28 boolean stealing = false; 29 boolean roughing = false; 30 int stolenNumber = 0; 31 if(Boolean.parseBoolean(br.readLine())){ 32 System.out.println("Did you get penalties for ball stealing? true/false"); 33 stealing = Boolean.parseBoolean(br.readLine()); 34 if(stealing){ 35 System.out.println("How many balls were stolen?"); 36 stolenNumber = Integer.parseInt(br.readLine()); 37 } 38 System.out.println("Did you get a penalty for roughing"); 39 if(Boolean.parseBoolean(br.readLine())){ 40 roughing = true; 41 } 42 } 43 penaltyCalculation(stealing, stolenNumber, roughing); 44 System.out.println(""); 45 System.out.println("Random Bonus Calculation:"); 46 System.out.println("And now you will get the random value " + randomBonusAmount() + " added to your total"); 47 score += randomBonusAmount(); 48 System.out.println("Your final score is: " + score); 49 50 }catch(Exception e){ 51 52 } 53 54 55 } 56 //Method Example Type-A: Returns nothing, and takes no parameters. 57 public static void printOutIntroduction(){ 58 System.out.println(" Welcome!"); 59 System.out.println(""); 60 System.out.println("###########################*************#############################"); 61 System.out.println("#####This will calulate your points for this FTC challenge match#####"); 62 System.out.println("###########################*************#############################"); 63 System.out.println(""); 64 } 65 66 67 //Method Example Type-B: Returns nothing, and takes in parameters. 68 69 public static void penaltyCalculation(boolean stealing, int stolenNumber, boolean roughing){ 70 int penaltyPointsDeducted = 0; 71 if(stealing && !roughing){ 72 penaltyPointsDeducted += stolenNumber; 73 }else if(roughing && !stealing){ 74 penaltyPointsDeducted += 5; 75 }else if(roughing && stealing){ 76 penaltyPointsDeducted = 2*stolenNumber + 5; 77 }else{//i.e. not roughing or stealing 78 //no affect on the score. 79 System.out.println("Congratulations for your clean play. You get 5 bonus points"); 80 penaltyPointsDeducted -= 5; 81 } 82 System.out.println("The points deducted for penalties will be: " + penaltyPointsDeducted + "."); 83 score -= penaltyPointsDeducted; 84 } 85 86 87 //Method Example Type-C: Returns something, and takes in no parameters. 88 89 private static int randomBonusAmount(){ 90 return (int) (Math.random() * 5); 91 } 92 93 94 //Method Example Type-D: Returns something, and takes in parameters. 95 private static int calculateBasicPoints(int numBalls, boolean ballInPlace){ 96 int pointsToAddToScore = 0; 97 if(numBalls <= 10){//So if 10 or under, a point per ball. 98 pointsToAddToScore = numBalls; 99 }else{ 100 pointsToAddToScore = 10 + (2 * (numBalls -10));//Balls over the 10th count for two points each. 101 } 102 103 if(ballInPlace){ 104 pointsToAddToScore += 25; 105 } 106 107 return pointsToAddToScore; 108 } 109 110 } 111 112