%@ page import ="java.util.*" %>
<%
String message = (String) session.getAttribute("message"),
right = (String) session.getAttribute("right"),
total = (String) session.getAttribute("total"),
stamp = (String) session.getAttribute("stamp"),
answerkey = (String) session.getAttribute("answerkey"), // retrieve state
answer = request.getParameter("answer"); // input from user
String reset = request.getParameter("reset");
String stampCopy = request.getParameter("stampCopy");
String anotherMessage = "";
if (message != null && ! message.equals("") && reset == null) { // state is not empty
if (stamp.equals(stampCopy)) {
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 +
"
";
stamp = (Integer.parseInt(stamp) + 1) + "";
} else { // stamps don't agree
String url = "";
anotherMessage = "No reload.";
if (stamp.equals("0")) {
anotherMessage += " The game has just (re)started. The deck is shuffled.";
} else {
anotherMessage += "You are looking at: " + url +
"
"; } } } else { // state is empty if (answerkey != null && !answerkey.equals("")) { if (stamp != null && stamp.equals(stampCopy)) { if (answerkey.equals(answer)) { right = (Integer.parseInt(right) + 1) + ""; } total = (Integer.parseInt(total) + 1) + ""; } } else { if (reset == null) { anotherMessage = "No reload. "; } } 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"; stamp = "0"; answerkey = ""; } session.setAttribute("message", message); session.setAttribute("stamp", stamp); session.setAttribute("right", right); session.setAttribute("total", total); session.setAttribute("answerkey", answerkey); %>
<%! 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; } %>