import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; public class Two extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); String message = request.getParameter("message"), right = request.getParameter("right"), total = request.getParameter("total"), answerkey = request.getParameter("answerkey"), // retrieve state answer = request.getParameter("answer"); // input from user String anotherMessage = ""; if (message != null && ! message.equals("")) { // state is not empty if (answerkey != null && !answerkey.equals("")) { if (answerkey.equals(answer)) { right = (Integer.parseInt(right) + 1) + ""; } total = (Integer.parseInt(total) + 1) + ""; } Vector a = this.explode("--", message); answerkey = (String) a.elementAt(0); a.removeElementAt(0); message = this.implode("--", a); String url = ""; anotherMessage = "You are looking at: " + url + "

"; } else { // state is empty if (answerkey != null && !answerkey.equals("")) { if (answerkey.equals(answer)) { right = (Integer.parseInt(right) + 1) + ""; } total = (Integer.parseInt(total) + 1) + ""; } Vector a = new Vector(); String[] names = { "China", "Russia", "Italy", "Spain", "South Africa", "Brazil", "United States", "Australia"}; for (int i = 0; i < names.length; i++) a.add(names[i]); Vector b = new Vector(); while (a.size() > 0) { int i = (int) (Math.random() * a.size()); b.insertElementAt(a.elementAt(i), 0); a.removeElementAt(i); } if (total != null && !total.equals("") && Integer.parseInt(total) > 0) { anotherMessage = "(" + right + " / " + total + ")"; } anotherMessage += " The game has just (re)started. The deck is shuffled."; message = this.implode("--", b); right = "0"; total = "0"; answerkey = ""; } out.println( "\n

" + "\n " + anotherMessage + "

" + "\n(" + right + " / " + total + ") Current list: (" + message + ")

" + "\n " + "\n " + "\n " + "\n " + "\n Press when ready. " + "\n

" ); } public Vector explode(String delim, String data) { Vector v = new Vector(); StringTokenizer st = new StringTokenizer(data, delim); while (st.hasMoreTokens()) { v.add(st.nextToken()); } return v; } public String implode(String delim, Vector a) { String result = ""; for (int i = 0; i < a.size() - 1; i++) result += a.elementAt(i) + delim; if (a.size() > 0) result += a.elementAt(a.size() - 1); return result; } }