Skip to main content
replaced http://codereview.stackexchange.com/ with https://codereview.stackexchange.com/
Source Link

Did I improve since thenthen?

Did I improve since then?

Did I improve since then?

Old one: Simple spin game

Did I improve since thenthen?

Old one: Simple spin game

Did I improve since then?

Did I improve since then?

Tweeted twitter.com/#!/StackCodeReview/status/353923829208330241
Source Link

Improving my Java object-oriented? Review!

Old one: Simple spin game

Did I improve since then?

I have been writing this program today, and tried my best to improve my object-oriented understanding.

Mains.java:

import games.GameHandler;
import java.util.Scanner;
import java.io.*;

    public class Mains {
    
        public static void main (String[] args) {
            //Start the game
            startGame();
            
        }
        
        private static void startGame() {
        
            //Declares
            GameHandler handler = new GameHandler();
            Scanner console = new Scanner(System.in);   
            boolean game = true;
            String input = "";  
            
            //Print program welcome text
            handler.printStart();
            
            //While in game...
            while (game) {
                //Getting input ready for new commands from the player
                input = console.nextLine();
                
                //Checking if input was set.
                if (input != null) {
                    //Selecting the game you want to play.
                    handler.selectGame(input);
                    
                    //If game was selected.. then.. let's start playing.
                    while (handler.inGame) {
                        //Use will say something.
                        input = console.nextLine();
                        
                        //If it was "exit", it will go back and select another game.
                        if (input.equals("exit")) {
                            handler.exitGame();
                        } else {
                            //Play again.
                            handler.continueGame(input);
                        }
                    }
                }
            }
        }
    }

GameHandler.java:

package games;
import java.io.*;

    public class GameHandler {
        
        private String[] games = {"Spin", "Tof"};
        private String[] navigation = {"Back", "Start"};
        private Spin spin = new Spin();
        private boolean spinGame = false;
        private boolean tofGame = false;
        public boolean inGame = false;
        
        /**
        * Method printStart
        *
        * Will welcome the player to the program.
        */
        public void printStart() {
            
            this.print(0, "Welcome to the program!");
            this.print(0, "Please select a game: " + this.availableGames());
            
        }
        
        /**
        * Method available games
        *
        * This will print all the games that are located in the games array in one row.
        **/
        
        private String availableGames() {
            String names = "";
            for (int i = 0; i < games.length; i++) {
                names = (names + games[i]);
                if (i < games.length -1) {
                    names = (names + ", ");
                }
            }
            
            return names;
        }
        
        /**
        * Method selectGame
        *
        * This will select the given game.
        * @param command The entered command.
        **/
        
        public void selectGame(String command) {
            if (this.inArray(command))
            {
                if (command.equalsIgnoreCase("spin")) {
                    this.startGame("spin");
                } else if (command.equalsIgnoreCase("tof")) {
                    this.startGame("tof");
                }
            } else {
                this.print(0, "Could not find game!");
            }
        }
        
        /**
        * Method inArray
        *
        * This will check if the entered game name is exisiting in the games array.
        * If yes, will return a boolean true, else false.
        *
        * @param value The entered game name.
        * @return boolean true/false.
        **/
        
        private boolean inArray(String value) {
            int returning = 0;
            for (String s : games) {
                if (value.equalsIgnoreCase(s)) {
                    returning = 1;
                }
            }
            if (returning == 1) {
                return true;
            } else {
                return false;
            }
        }
        
        /**
        * Method startGame
        *
        * Will start the game, and print instructions.
        * will set the game boolean to true.
        **/
        
        private void startGame(String game) {
            switch (game) {
                case "spin":
                    this.print(0, "Welcome to spin game!");
                    this.print(0, "Please click on any key to spin!");
                    spinGame = true;
                break;
                case "tof":
                break;
            }
            
            inGame = true;
        }
        
        /**
        * Method continueGame
        *
        * Will continue the game, either spin again, or print new question or even answer.
        * @param command The entered command.
        **/
        public void continueGame(String command) {
            while (inGame) {
                if (spinGame) {
                    this.spinWheel();
                    // Break out of the loop.
                    break;
                }
            }
        }
        
        /**
        * Method exitGame
        *
        * Exit the game..
        **/
        
        public void exitGame() {
            spinGame = false;
            tofGame = false;
            this.printStart();
        }
        
        /**
        * Method spinWheel
        *
        * This will spin the wheel.
        **/
        
        private void spinWheel() {
            this.print(0, spin.spinWheel());
        }
        
        /**
        * Method print
        *
        * Prints text using System.out
        * @param type printing type (Println/print).
        * @param message The message
        **/
        
        private void print(int type, String message) {
            switch (type) {
                case 0:
                    System.out.println(message);
                break;
                case 1:
                    System.out.print(message);
                break;              
            }
        }
    }

spin.java:

package games;
import java.util.Random;

    public class Spin {
        
        /**
        * The base auth we are going to work with..
        **/
        
        private int auth = this.rand(1000) / 5; 
        
        /**
        * Creating new Random object.
        **/
        
        private Random r = new Random();
    
        /**
        * Method spinWheel
        *
        * Spins the damn wheel..
        * @return spinned value + if you won or not.
        **/
        
        public String spinWheel() {
            return this.spinWheel(this.rand(100));
        }
        
        /**
        * spinWheel
        *
        * Returning results.
        **/
        
        private String spinWheel(int number) {
        
            int result = this.Calculate(this.rand(number));
            
            if (result < 101) {
                return "You have won the game!" + result;
            } else {
                return "You've lost the game!" + result;
            }
        }
        
        /**
        * Method calculate
        *
        * Calculates the spin.
        * @return the spinned number.
        **/
        

        private int Calculate(int Number) {
        
            int var = this.rand(101);
                   
            int holder = (var * Number) / 2;
                   
            return holder + this.auth;
        }
        
        /**
        * Shortcut for nextInt of Random
        **/
        
        public int rand(int x) {
            return r.nextInt(x);
        }
            
    }

What's wrong with it? did I improve since last time? Any suggestions?