107 lines
3.6 KiB
Java
Executable file
107 lines
3.6 KiB
Java
Executable file
/*
|
|
* The MIT License (MIT)
|
|
*
|
|
* Copyright (c) 2015 Ziver Koc
|
|
*
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
* of this software and associated documentation files (the "Software"), to deal
|
|
* in the Software without restriction, including without limitation the rights
|
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
* copies of the Software, and to permit persons to whom the Software is
|
|
* furnished to do so, subject to the following conditions:
|
|
*
|
|
* The above copyright notice and this permission notice shall be included in
|
|
* all copies or substantial portions of the Software.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
* THE SOFTWARE.
|
|
*/
|
|
|
|
package zutil.net.http.page;
|
|
|
|
import zutil.net.http.HttpHeader;
|
|
import zutil.net.http.HttpPage;
|
|
import zutil.net.http.HttpPrintStream;
|
|
import zutil.net.http.HttpServer;
|
|
|
|
import java.io.IOException;
|
|
import java.util.Map;
|
|
|
|
|
|
public class HTTPGuessTheNumber implements HttpPage {
|
|
|
|
public static void main(String[] args) throws IOException{
|
|
//HttpServer server = new HttpServer("localhost", 443, FileFinder.find("keySSL"), "rootroot");//SSL
|
|
HttpServer server = new HttpServer(8080);
|
|
server.setDefaultPage(new HTTPGuessTheNumber());
|
|
server.run();
|
|
}
|
|
|
|
public void respond(HttpPrintStream out,
|
|
HttpHeader client_info,
|
|
Map<String, Object> session,
|
|
Map<String, String> cookie,
|
|
Map<String, String> request) throws IOException {
|
|
|
|
out.enableBuffering(true);
|
|
out.println("<html>");
|
|
out.println("<H2>Welcome To The Number Guess Game!</H2>");
|
|
|
|
if(session.containsKey("random_nummber") && request.containsKey("guess") && !request.get("guess").isEmpty()){
|
|
int guess = Integer.parseInt(request.get("guess"));
|
|
int nummber = (Integer)session.get("random_nummber");
|
|
try {
|
|
if(guess == nummber){
|
|
session.remove("random_nummber");
|
|
out.println("You Guessed Right! Congrats!");
|
|
out.println("</html>");
|
|
return;
|
|
}
|
|
else if(guess > nummber){
|
|
out.println("<b>To High</b><br>");
|
|
if(Integer.parseInt(cookie.get("high")) > guess){
|
|
out.setCookie("high", ""+guess);
|
|
cookie.put("high", ""+guess);
|
|
}
|
|
}
|
|
else{
|
|
out.println("<b>To Low</b><br>");
|
|
if(Integer.parseInt(cookie.get("low")) < guess){
|
|
out.setCookie("low", ""+guess);
|
|
cookie.put("low", ""+guess);
|
|
}
|
|
}
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
else{
|
|
session.put("random_nummber", (int)(Math.random()*99+1));
|
|
try {
|
|
out.setCookie("low", "0");
|
|
out.setCookie("high", "100");
|
|
cookie.put("low", "0");
|
|
cookie.put("high", "100");
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
out.println("<form method='post'>");
|
|
out.println(cookie.get("low")+" < X < "+cookie.get("high")+"<br>");
|
|
out.println("Guess a number between 0 and 100:<br>");
|
|
out.println("<input type='text' name='guess'>");
|
|
out.println("<input type='hidden' name='test' value='test'>");
|
|
out.println("<input type='submit' value='Guess'>");
|
|
out.println("</form>");
|
|
out.println("<script>document.all.guess.focus();</script>");
|
|
out.println("<b>DEBUG: nummber="+session.get("random_nummber")+"</b><br>");
|
|
out.println("</html>");
|
|
}
|
|
|
|
}
|