2009년 11월 11일 수요일

jsp 가위/바위/보

////////////////////////////////////////////////////////////////////////

// 2009. 11. 10 Yang.Nam.Seok

////////////////////////////////////////////////////////////////////////

 

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%
 // 파일명 : game.jsp
 // 이 부분에 필요한 코드를 넣어주세요.
 // 1. 입력된 파라미터 처리하기
 // 2. 새로운 값(Random) 만들기
 // 3. 사용자가 입력한 값과 새로 만든 값을 비교하여 승패 처리하기 ; CurrentResult 라는 변수에 '승' 또는 '패'를 지정함
 // 4. 세션에서 기존 승패 기록값 가져오기
 // 5. 처리된 새로운 값으로 계산해서 세션에 넣기
 
 // 결과 가져오기
 int TotalWin=0;
 int TotalLose=0;

  java.util.Enumeration names=session.getAttributeNames();
  while(names.hasMoreElements())
  {
  String name=(String)names.nextElement();  
  if(name.equals("TotalWin"))TotalWin =(Integer)session.getAttribute("TotalWin");
  else if(name.equals("TotalLose"))TotalLose =(Integer)session.getAttribute("TotalLose");
  }

 //////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////
 
 String CurrentResult=""; //승부결과저장
 
 // 선택////////////////////////////////////////////////////////////////
 request.setCharacterEncoding("EUC-KR");
 String selection=request.getParameter("selection");
 if(selection!=null)
 {
  int sel=Integer.parseInt(selection);
 
  // 컴퓨터의 결과/////////////////////////////////////////////////////////
  java.util.Random rd=new java.util.Random();
  int com=1+rd.nextInt(3); // 1~3
 
  //가위바위보결과////////////////////////////////////////////////////////
  if(sel==com)CurrentResult="무승부";
  else if((sel==1 && com==2)||(sel==2 && com==3)||(sel==3 && com==1))
  {
    CurrentResult="패";
    TotalLose+=1;
  }
  else
  {
    CurrentResult="승";
    TotalWin+=1;
  }
 }

 // 처리된 새로운 값으로 계산해서 세션에 넣기//////////////////////////////////
 session.setAttribute("TotalWin",TotalWin);
 session.setAttribute("TotalLose",TotalLose);

%>
<html>
<head>
<title>가위바위보의 경기 기록은 Session에 저장되어야 합니다.</title>
</head>
<%
 if(selection!=null)
 {
%>
<div style="border:2px sold #E88; padding-top:20px; width:400px; height:60px; font-size:18px;">
이번 가위바위보의 결과는, 당신의 <%=CurrentResult%>입니다.
</div>
<%
 }
%>
<form name="game" action="game.jsp" method="post">
<input type="radio" name="selection" value="1" >가위
<input type="radio" name="selection" value="2" >바위
<input type="radio" name="selection" value="3" >보
<input type="submit" value="가위바위보!">
</form>
<div style="border:1px sold #AAA; width:400px; height:20px;">
현재까지의 기록 : <%=TotalWin%> 승 <%=TotalLose%> 패 </div>
</html>

javascript 박스클릭 이동

 

////////////////////////////////////////////////////////////////////////

// 2009. 11. 10 Yang.Nam.Seok

////////////////////////////////////////////////////////////////////////

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
<style type="text/css">
 div {
  position:absolute; /* 객체의 이동을위해 */
  width:100px; /* 객체의 가로 크기 */
  height:100px; /* 객체의 세로 크기 */
  background:#ffff00; /* 객체의 색(노란색) */
 }
</style>
<script>
 var moveflag=false; /*객체의 이동 상태 저장 */
 
 function moveS(ev)
 {
  moveflag=true;
 }
 function moveE()
 {
  moveflag=false;
 }
 function move(ev)
 {
  if(moveflag)
  {
   unit.style.top=ev.clientY-50;
   unit.style.left=ev.clientX-50;
  }
 }
</script>

</head>
<body onMouseMove="move(event);" onMouseUp="moveE();">
 <center>
  <div id="unit" onMouseDown="moveS(event);"></div>
 </center>
</body>
</html>