From 22fc87f2c5fb368d7c720e5489c38b20fe1a4d1d Mon Sep 17 00:00:00 2001 From: Diego O Garcia <59929620+diegogarciacs@users.noreply.github.com> Date: Sat, 1 Jan 2022 17:34:20 -0800 Subject: [PATCH] Singleton Pattern - Ball Selector Creates a Ball class as a singleton to ensure that there is only one instance of each of the different colors. --- Lab 11/CECS277-Lab11.pdf | Bin 0 -> 62384 bytes Lab 11/Lab 11.iml | 11 ++ Lab 11/out/production/Lab 11/Ball.class | Bin 0 -> 1493 bytes Lab 11/out/production/Lab 11/CheckInput.class | Bin 0 -> 2093 bytes Lab 11/out/production/Lab 11/Main.class | Bin 0 -> 1185 bytes Lab 11/src/Ball.java | 58 ++++++++ Lab 11/src/CheckInput.java | 133 ++++++++++++++++++ Lab 11/src/Main.java | 40 ++++++ 8 files changed, 242 insertions(+) create mode 100644 Lab 11/CECS277-Lab11.pdf create mode 100644 Lab 11/Lab 11.iml create mode 100644 Lab 11/out/production/Lab 11/Ball.class create mode 100644 Lab 11/out/production/Lab 11/CheckInput.class create mode 100644 Lab 11/out/production/Lab 11/Main.class create mode 100644 Lab 11/src/Ball.java create mode 100644 Lab 11/src/CheckInput.java create mode 100644 Lab 11/src/Main.java diff --git a/Lab 11/CECS277-Lab11.pdf b/Lab 11/CECS277-Lab11.pdf new file mode 100644 index 0000000000000000000000000000000000000000..55911509ed0cc5e11935beebc180a487eaede24a GIT binary patch literal 62384 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 literal 0 HcmV?d00001 diff --git a/Lab 11/Lab 11.iml b/Lab 11/Lab 11.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/Lab 11/Lab 11.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Lab 11/out/production/Lab 11/Ball.class b/Lab 11/out/production/Lab 11/Ball.class new file mode 100644 index 0000000000000000000000000000000000000000..85b5d4cb20db3918d124c2116bd1459a24e5bab7 GIT binary patch literal 1493 zcmZuxYg5xu5IwiAv}q``r6?}}vCtMveIbulR8XW^WyU%_;|d+PGa5x65R=f29tNRq zwhcvXF|abXCnO}fJ=ipLy~Qml34ORiIc-34Oge~dOVbOha%=mgyjK*_j{yOL5{59$ z5Vv!BJ&5XFo0!jKJbWBE#mkoLWfRXZB4HF`3{k~2ELk&JFVv3=sSc3Yciewm!VRP; zbwj1p6P^4zB?@Dbmp*d=+O1x8J&YVfCfyq4m0l3@?oWKpOSUkY-V~RdqS|K>H<1@G zEuny0XQi=Uvus#uL!~zo_GP`Tu5B^&Wy)Udt_PL(4(ZUP029OK}`0{y{l@; z$_MH`7cS(qGO^&j%MiBAv+DF_I_M>jlA^nVBv#FKQ&Cqm&NjjYP4gbc7)^kW#xekr zj{&HI>E@#`_3?4D&ooH(PJ=^xhf6tDc#+lt3I}48t{V}8iy=<)n4qajqC{W%956hSAk bfaoduYsZ-VieAo_*>L>r0fE+4J4N{~qVp*z literal 0 HcmV?d00001 diff --git a/Lab 11/out/production/Lab 11/CheckInput.class b/Lab 11/out/production/Lab 11/CheckInput.class new file mode 100644 index 0000000000000000000000000000000000000000..e17ba4805dc8b34c973a4985013a362a3503d0c6 GIT binary patch literal 2093 zcmZ`(U2_vv7=BK6+f9>gQ_>IUN1#}ghC&N%t%bHhNP$K|s051?MYdsW7s77M2U5R= z(O&^xIbJa1FoSYY9G&sP8y#=F^iF2H^uizDFs;uyn>Jg;WajLi^Pcmb=Xsy!-Cx$f z`vJgFSP_Jv8PH8Mpi!XphIQK-E?Vx=@cG3XcA+BBIOVubB_*H@BsEsR%DiSEEBk;5jAV1(6>wESgN zjTspnGx4(I9G1bXRuu?}HOF~_Q1jv$5O23|FB z0w=c%sy1@Tey?g3%b6wDE7@tQZ2u3lg)n9W#A+C)=>pdaW0q6aK~HwMD(M?34w}Y#sO{y-DQC1#P~hK~FN=;7FVCx(wfyWPD#> zG4mCxaPyqCQcE87)2OO*=RhWt{OiFwz^RkZL{iv4CDVb z70b^}m+f-SfiC8!@!ppj#Svtd33pA83|KzzfO z5MJXb!(hLimSLETZpz#lke-GpGV>CTM?5sAWP50i%z5{EB-$OGW zom2YsgN?uV)_v(QcE?{>!@dU_zxO=kNlo2$fDHn+Ulbj@vlB7wL>oJX#@xQ{)S zL;_>%A&IDu=b{+o-t(L_Gd73Ui7AHtxPUx4T;#e5Z5=TKh7j#B;(i13HQY~mzJWV( zb=>E)ls2w+==X8#phDiyM`tS0^Cemm-Cv+dAJ-pj{2}p^2=V{Mc#zLei8`MV-VNf5 z;vmr-LaS^umbw>*DZ~**MmUaPilUsr1S>nKc#Zj}aEWZ>FNZf3uPD-rYl!0s#Z_a@ zl;Wx@uFcTb(WDv^3VM_3B=XPx8Ie`)q>Kr^4? zNph6fW?1`E)a*3XIz!E7(NBjAkku$zOi-sZ(bly)ruazhCbqO24``?O_}cAKd=^-; zy6JTC37W2DR!b#((;f6pH$1DSo@2WGk9aa@x&;!rLKtt6z}qBnl?2`)fon9~B8^p` zOz#GOZ#UhQfa$dDrqg`W@q<{yo#VZ-1LFZ5Sl`j?;MZLB+pa|^__B-+pldkex@B#btL%R1P?8e9R@Fx`GF2D7kVj7=qfs8P6RY41JUG^bV aN#baHhLCuME(0mCL;THbf<>03ul)mbd5v=b literal 0 HcmV?d00001 diff --git a/Lab 11/out/production/Lab 11/Main.class b/Lab 11/out/production/Lab 11/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..ee9ac45c8feb47fb903fd1773472f995f31a40e2 GIT binary patch literal 1185 zcmZ`&OHK`3%exeU2&RawAd1k6LKUsF$WZM#I4;tfX+zVbq^UFh6c(;o zxY7kOF8l%hA{Y2LH?89!*i7%^ob!F>JLlf}?dO-T09LUhp$k3{f($@fBF1+xr>FRZgvReci%6UYFo!oT{%PqK$ zuGLdP^fF9msVydZ@Uza@aE5_?m=%42THJh+vQ*atRfK*xE*=#&3VIJ2-EXcTl1cR_i6n`R{u0}KrZHBqR47yA5@I_1nyxoCnlRGlnQpsDeGGXuO!69Cb$47xJ&PY z|M*BR1Pp7mO47`@W&ShRN6($2k-I@JBTb{+4!}LE(=LSjct92cvoRv`lg$v)(Ie=e zAclKR(07WV{6aW-g4hv)zVtD+xo3tvg8vk=>kFrduL-dagalOjb4fg3w6mTW6Hbsk zMv%`-1m^SY<6rN&Kp(ikEez1uOVEB2J3y;2eG#G4pq9Xyuf8DB8&nyut|IgtRRDjlxLZ)+at;(P>g}cctUd*D#+p~$=#;i cC<15bVrPhnnEZhx6EQCe-yxAd=SAm#0~e3>zW@LL literal 0 HcmV?d00001 diff --git a/Lab 11/src/Ball.java b/Lab 11/src/Ball.java new file mode 100644 index 0000000..934679d --- /dev/null +++ b/Lab 11/src/Ball.java @@ -0,0 +1,58 @@ +/* Ball class modification of a Singleton object + */ + +import java.util.*; + +public class Ball{ + private static HashMap colors = new HashMap(); + private String color; + private int bounces; + private int rolls; + + /* Ball constructor + */ + public Ball(String c){ + this.color = c; + this.bounces = 0; + this.rolls = 0; + colors.put(c, this); + } + /* Accceses the hashmap and checks to see if the object already exists, otherwise constructs the object and returns it to be inserted. + * + * @param c the key of the object to be checked. + * @return the object which to be modified. + */ + public static Ball getInstance(String c) { + + if (colors.containsKey(c)) { + return colors.get(c); + } + else{ + return new Ball(c); + } + } + + /* Increment the bounce count of a ball + * + */ + public void bounce(){ + this.bounces += 1; + } + + /* Increment the roll count of a ball + */ + public void roll(){ + this.rolls += 1; + } + + /* String representation of a ball object + * @return returns a string detailing the current status of the users ball + */ + @Override + public String toString(){ + return String.format("%s Ball:\n--------\nRolls: %d\nBounces: %d\n", + this.color, + this.rolls, + this.bounces); + } +} \ No newline at end of file diff --git a/Lab 11/src/CheckInput.java b/Lab 11/src/CheckInput.java new file mode 100644 index 0000000..b58058d --- /dev/null +++ b/Lab 11/src/CheckInput.java @@ -0,0 +1,133 @@ +import java.util.Scanner; + +/** + * Static functions used to check console input for validity. + * + * Use: Place CheckInput class in the same project folder as your code. + * Call CheckInput functions from your code using "CheckInput." + * + * Example: int num = CheckInput.getInt(); + * + * @author Shannon Cleary 2020 + */ +public class CheckInput { + + /** + * Checks if the inputted value is an integer. + * @return the valid input. + */ + public static int getInt() { + Scanner in = new Scanner( System.in ); + int input = 0; + boolean valid = false; + while( !valid ) { + if( in.hasNextInt() ) { + input = in.nextInt(); + valid = true; + } else { + in.next(); //clear invalid string + System.out.println( "Invalid Input." ); + } + } + return input; + } + + /** + * Checks if the inputted value is an integer and + * within the specified range (ex: 1-10) + * @param low lower bound of the range. + * @param high upper bound of the range. + * @return the valid input. + */ + public static int getIntRange( int low, int high ) { + Scanner in = new Scanner( System.in ); + int input = 0; + boolean valid = false; + while( !valid ) { + if( in.hasNextInt() ) { + input = in.nextInt(); + if( input <= high && input >= low ) { + valid = true; + } else { + System.out.println( "Invalid Range." ); + } + } else { + in.next(); //clear invalid string + System.out.println( "Invalid Input." ); + } + } + return input; + } + /** + * Checks if the inputted value is a non-negative integer. + * @return the valid input. + */ + public static int getPositiveInt( ) { + Scanner in = new Scanner( System.in ); + int input = 0; + boolean valid = false; + while( !valid ) { + if( in.hasNextInt() ) { + input = in.nextInt(); + if( input >= 0 ) { + valid = true; + } else { + System.out.println( "Invalid Range." ); + } + } else { + in.next(); //clear invalid string + System.out.println( "Invalid Input." ); + } + } + return input; + } + + /** + * Checks if the inputted value is a double. + * @return the valid input. + */ + public static double getDouble() { + Scanner in = new Scanner( System.in ); + double input = 0; + boolean valid = false; + while( !valid ) { + if( in.hasNextDouble() ) { + input = in.nextDouble(); + valid = true; + } else { + in.next(); //clear invalid string + System.out.println( "Invalid Input." ); + } + } + return input; + } + + /** + * Takes in a string from the user. + * @return the inputted String. + */ + public static String getString() { + Scanner in = new Scanner( System.in ); + String input = in.nextLine(); + return input; + } + + /** + * Takes in a yes/no from the user. + * @return true if yes, false if no. + */ + public static boolean getYesNo(){ + boolean valid = false; + while( !valid ) { + String s = getString(); + if( s.equalsIgnoreCase("yes") || s.equalsIgnoreCase("y") ) { + return true; + } else if( s.equalsIgnoreCase("no") || s.equalsIgnoreCase("n") ) { + return false; + } else { + System.out.println( "Invalid Input." ); + } + } + return false; + } +} diff --git a/Lab 11/src/Main.java b/Lab 11/src/Main.java new file mode 100644 index 0000000..75725b5 --- /dev/null +++ b/Lab 11/src/Main.java @@ -0,0 +1,40 @@ +/* + * Alfredo Sequeida + * Diego Garcia + * 11/9/2021 + + * Group 5 + * Lab 11 + * This program takes user input and asks the user what they want to do with a ball. + * It then keep track of that action using a singleton-like Ball object. + */ +class Main { + public static void main(String[] args) { + + boolean keepAsking = true; + + while (keepAsking){ + System.out.println("Choose a ball color. Type it in string format. (q to quit):"); + String color = CheckInput.getString(); + if (color.equals("q")){ + keepAsking = false; + break; + } + System.out.println("1. Roll ball\n2. Bounce ball"); + int option = CheckInput.getIntRange(1,2); + + Ball ball = Ball.getInstance(color); + + switch(option){ + case (1): + ball.roll(); + break; + case (2): + ball.bounce(); + break; + } + + System.out.println(ball); + } + } +} \ No newline at end of file