import java.io.*;
import java.util.StringTokenizer;

import javax.servlet.http.*;


public class Quiz extends HttpServlet {
  @Override    
  public void doGet(HttpServletRequest req, HttpServletResponse res) 
  throws IOException {
    doPost(req, res);
  }

  @Override    
  public void doPost(HttpServletRequest req, HttpServletResponse res) 
  throws IOException {
    res.setContentType("text/html; charset=Windows-31J");
    PrintWriter out = res.getWriter();
    out.println("<html><head></head><body>");
    
    int number=0, score=0, answer=0;
    String message;
    File f = new File(getServletContext().getRealPath("/quiz.txt"));
    BufferedReader in = new BufferedReader
    (new InputStreamReader(new FileInputStream(f), "Windows-31J"));
    String line="";
    int i;
    HttpSession session = req.getSession(true) ;
    
    try { // 最初の問ではないと仮定する。
      answer = Integer.parseInt(req.getParameter("answer"));
      number = Integer.parseInt((String)session.getAttribute("number"));
      score  = Integer.parseInt((String)session.getAttribute("score"));
      for (i=0; i<number; i++) {
        line = in.readLine();  // number-1行分、読み飛ばす 
      }
      line = line.trim(); // trim()は前後の空白を除去する
      int a = Integer.parseInt(line.substring(line.length()-1));
      if (a==answer) { // aは最後の文字
        message = "正解です。<br>";
        score++;
      } else {
        message = "残念でした。<br>";
      }
    } 
    catch (Exception ex) { // 最初の問だった。
      message = "<p>ようこそ QUIZへ!<br>では最初の問題です。</p>";
      number=score=0;
    }
    out.println(message);
    line = in.readLine();
    in.close();
    if (line==null || line.trim().equals("")) { // 終
      out.println("<br>これで QUIZは終わりです。<br>");
      out.println("正解数は、"+score+"問でした。");
      session.invalidate();
    }  else {
      StringTokenizer st1 = new StringTokenizer(line);
      out.println("次の問: "+st1.nextToken()+"<br>");
      out.println("<form method='post'>");
      for (i=0; i<3; i++) {
        out.print("<input type='radio' name='answer'");
        out.print(" value='"+(i+1)+"'>");
        out.print(" "+st1.nextToken());
      }
      out.println("<br>");
      out.println("<input type='submit' value='送信'>");
      out.println("<input type='reset' value='やめ'>");
      out.println("</form>");

      session.setAttribute("number", Integer.toString(number+1));
      session.setAttribute("score", Integer.toString(score));
    }
    
    out.println("</body></html>");
    out.close();
  }
}
