Package scotlandyard.servlets.players

Source Code of scotlandyard.servlets.players.show_transport_options

package scotlandyard.servlets.players;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import scotlandyard.engine.impl.Engine;
import scotlandyard.engine.spec.IGame;
import scotlandyard.engine.spec.IPlayer;

/**
* used to show the transport options a
* player can choose before making a
* descision to move to another node on the map
* @author Hussain Al-Mutawa
* @version 3.0
*/
public class show_transport_options extends HttpServlet {

  private static final long serialVersionUID = 2080719957137633116L;
  private String selected_game,xhash;
  private Integer node;

  public show_transport_options() {
    super();
  }
  public show_transport_options(String selected_game,String xhash,Integer node) {
    super();
    this.node=node;
    this.xhash=xhash;
    this.selected_game=selected_game;
  }
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    final PrintWriter out = response.getWriter();
    try{
      if(request.getParameter("xhash")!=null){
        xhash = request.getParameter("xhash");
      }
      if(xhash==null || "".equals(xhash)){throw new Exception("HASH is unknow");}

      if(request.getParameter("newPosition")!=null){
        node = Integer.parseInt(request.getParameter("newPosition"));
      }
      if(node==null || "".equals(node)){throw new Exception("node is unknow");}

      if(request.getParameter("selected_game")!=null){
        selected_game  = request.getParameter("selected_game");
      }
     
      if(selected_game==null || "".equals(selected_game)){throw new Exception("Game id is missing");}

      final IGame game = Engine.instance().games.get(selected_game);
      if(game==null){throw new Exception("GAME is unknow");}

      final IPlayer player = game.getPlayer(xhash);
      if(player==null){throw new Exception("UNKNOWN Player");}
     
      final Integer[]legalMoves = game.getLegalMoves(player.getEmail());
     
      int transports = legalMoves[node];
      out.println("<div class='transport_options'>");
      transports = showTransportButton(out,transports,16);
      transports = showTransportButton(out,transports,8);
      transports = showTransportButton(out,transports,4);
      transports = showTransportButton(out,transports,2);
      transports = showTransportButton(out,transports,1);

      if(transports>0){
        throw new Exception("tansport type for this node excede the expected limit");
      }
     
     
     
      out.println("</div>");
    }catch(Exception e){
      out.print("{\"msg\" : \"EXCEPTION : "+(e.getMessage()+"").replace("\"", "'")+"\", \"className\" : \""+getClass().getName()+"\"}");
    }
  }
 
  private int showTransportButton(final PrintWriter out,final int transports,final int n){
    int result = transports;
    if(transports>=n){
      out.println("<button style='height:60px' onclick='set_transport("+log2(n)+")'><img src='http://scotlandyard.comule.com/get_icon.php?icon="+n+"'/></button>");
      result-=n;
    }
    return result;
  }

  private int log2(final int n){   
    return (int) (Math.log(n)/Math.log(2));
  }
}
TOP

Related Classes of scotlandyard.servlets.players.show_transport_options

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.