Package pdp.scrabble.game.impl

Source Code of pdp.scrabble.game.impl.FactoryImpl

package pdp.scrabble.game.impl;

import java.rmi.AlreadyBoundException;
import java.rmi.RemoteException;

import javax.swing.JOptionPane;

import pdp.scrabble.Game;
import pdp.scrabble.Factory;
import pdp.scrabble.ihm.MainFrame;
import pdp.scrabble.ihm.MainFrame_old;
import pdp.scrabble.dictionary.DAWGImpl;
import pdp.scrabble.game.Bag;
import pdp.scrabble.game.Board;
import pdp.scrabble.game.BoardCase;
import pdp.scrabble.game.DicMap;
import pdp.scrabble.game.Dictionary;
import pdp.scrabble.game.GameEngine;
import pdp.scrabble.game.GameEnvironment;
import pdp.scrabble.game.Letter;
import pdp.scrabble.game.LettersProbability;
import pdp.scrabble.game.Location;
import pdp.scrabble.game.Placement;
import pdp.scrabble.game.Player;
import pdp.scrabble.game.Rack;
import pdp.scrabble.game.Resolution;
import pdp.scrabble.multiplayer.Client;
import pdp.scrabble.multiplayer.Server;
import pdp.scrabble.multiplayer.impl.ClientImpl;
import pdp.scrabble.multiplayer.impl.ServerImpl;
import pdp.scrabble.utility.Display;

public class FactoryImpl implements Factory {
  private static final Factory SINGLETON = new FactoryImpl();

  private FactoryImpl() {
  }

  public static Factory getInstance() {
    return FactoryImpl.SINGLETON;
  }

  public Game createGame(String language, MainFrame_old mainFrame) {
    return new GameImpl(language, mainFrame);
  }

  public Bag createBag() {
    return new BagImpl();
  }

  public Board createBoard() {
    return new BoardImpl();
  }

  public BoardCase createBoardCase(int letterMult, int wordMult, int v, int h) {
    return new BoardCaseImpl(letterMult, wordMult, v, h);
  }

  public Rack createRack(Bag bag) {
    return new RackImplNew(bag);
  }

  public Letter createLetter(char name, int value, int id) {
    return new LetterImpl(name, value, id);
  }

  public Player createPlayer(
      GameEnvironment game, String name, int id) {

    return new Human(name, id, game);
  }

  public Dictionary createDictionary() {
    return new DAWGImpl();
  }

  public Resolution createResolution(Game game) {
    return new ResolutionImpl(game);
  }

  public Placement createPlacement() {
    return new PlacementImpl();
  }

  public LettersProbability createLettersProbability(Bag bag) {
    return new LettersProbabilityImpl(bag);
  }

  public Location createLocation(int v, int h) {
    return new LocationImpl(v, h);
  }

  public DicMap createDicMap(boolean array) {
    if (array) {
      return new DicMapArrayImpl();
    }
    else {
      return new DicMapTreeImpl();
    }
  }

  public Server createServer(int port, String language) {
    try {
      try {
        return new ServerImpl(port,language);
      }
      catch (AlreadyBoundException ex) {
        Display.error("Server", "Cannot create Server");
        return null;
      }
    }
    catch (RemoteException ex) {
      Display.error("Server", "Cannot create Server");
      return null;
    }
  }

  public Client createClient(MainFrame mainFrame, String name) {
    try {
      return new ClientImpl(mainFrame, name);
    }
    catch (RemoteException ex) {
      Display.error("Client", "Cannot create client");
      return null;
    }
  }

  public GameEngine createEngine(String mode, GameEnvironment gameEnv) {
    // TODO Auto-generated method stub
    if(mode.compareTo("Solo")==0){
      gameEnv.addPlayer(new Human(JOptionPane.showInputDialog("Entrez votre nom", "Playeur"), 1, gameEnv));
      return new SoloEngine(gameEnv);
    }
    if(mode.compareTo("Local")==0
      return new MultiEngine(gameEnv);
    if(mode.compareTo("Network")==0
      return new MultiEngine(gameEnv);
    if(mode.compareTo("Simulation")==0)
      ;
    if(mode.compareTo("Learning")==0)
      ;
   
    return null;
  }


}
TOP

Related Classes of pdp.scrabble.game.impl.FactoryImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.