Skip to main content
Code Review

Return to Question

replaced http://codereview.stackexchange.com/ with https://codereview.stackexchange.com/
Source Link

Did I improve since then then?

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?

lang-java

AltStyle によって変換されたページ (->オリジナル) /