[ASP] 3x3 Puzzle Game - IIS
자작2006. 9. 30. 23:50
반응형
- <%
- Option Explicit
- ' ASP의 Rand를 이용한 3x3 Puzzle Game
- %>
- <style type="text/css">
- h2 {
- font-family: Arial;
- font-size: 24px;
- color: #666;
- padding: 4px;
- background: #CCCCFF;
- border-bottom: 2px solid #ddd;
- text-align: center;
- }
- td {
- font-family: Impact;
- font-size: 60px;
- color: white;
- background: #DDE8FF;
- }
- a:hover {
- color: #FF0066;
- text-decoration: none;
- font-weight: bold
- }
- a:visited {
- color: #000099;
- text-decoration: none;
- }
- a:active {
- text-decoration: none;
- }
- a:link {
- color: #000099;
- text-decoration: none;
- }
- </style>
- <h2> 3x3 Puzzle Game by ASP</h2>
- <%
- ' Random Seed값 초기화
- Randomize
- Dim board(8) ' 배열을 선언한다.
- Dim ThePick ' 임의로 선택된 값의 색인 변수
- Dim Temp ' 값을 교환하기 위한 임시 변수
- Dim i, j ' 반복문의 카운터용
- Dim ct
- Dim cnt ' 클릭한 인덱스값 받기
- Dim getArr ' 값을 저장해 Get으로 던지는 변수
- Dim getArr2 ' 값을 저장한것을 받는 변수
- Dim sum ' 0-8 까지 합을 저장하기 위한 변수
- Dim chaos ' 무질서도 판단
- Dim loopcnt ' loop cnt
- ' Request...
- getArr = Request.QueryString("getArr") ' get된 전체 값들
- cnt = Request.QueryString("ct") ' get된 index값
- ' 처음 실행 할경우
- If cnt=0 Then
- loopcnt = true
- While loopcnt
- ' 배열을 채운다.
- For I = 0 To 8
- board(I) = I
- Next
- ' 배열을 썩는다.
- For I = 0 To 8
- ThePick = Int(1 + Rnd * 8) ' 랜덤으로 생성!
- Temp = board(I)
- board(I) = board(ThePick)
- board(ThePick) = Temp
- Next
- ' 무질서도 체크
- For i = 0 To 8
- For j = i To 8
- If board(i) > board(j) Then chaos=chaos+1 : End if
- next
- Next
- '무질서 더한값이 짝수 이면 Loop 탈출
- ' 무질서도가 홀수이면 게임 퍼즐을 풀수 없다.
- If (chaos Mod 2) = 0 Then
- loopcnt = false
- Else
- loopcnt = true
- End if
- wend
- ' 두번째 실행
- Else
- ' getArr String -> 배열 로 변경
- getArr2 = Split( getArr , "-" )
- For i=0 To 8
- board(i) = getArr2(i)
- Next
- ' 해당 Index으로 값을 이동
- Select Case CInt(cnt) ' 위치값(Index)
- Case 1
- If board(1) = 0 Then ' 1번이 비었다면
- board(1) = board(0)
- board(0) = 0
- End If
- If board(3) = 0 Then ' 3번이 비었다면
- board(3) = board(0)
- board(0) = 0
- End If
- Case 2
- If board(0) = 0 Then
- board(0) = board(1)
- board(1) = 0
- End If
- If board(2) = 0 Then
- board(2) = board(1)
- board(1) = 0
- End If
- If board(4) = 0 Then
- board(4) = board(1)
- board(1) = 0
- End If
- Case 3
- If board(1) = 0 Then
- board(1) = board(2)
- board(2) = 0
- End If
- If board(5) = 0 Then
- board(5) = board(2)
- board(2) = 0
- End If
- Case 4
- If board(0) = 0 Then
- board(0) = board(3)
- board(3) = 0
- End If
- If board(4) = 0 Then
- board(4) = board(3)
- board(3) = 0
- End If
- If board(6) = 0 Then
- board(6) = board(3)
- board(3) = 0
- End If
- Case 5
- If board(1) = 0 Then
- board(1) = board(4)
- board(4) = 0
- End If
- If board(3) = 0 Then
- board(3) = board(4)
- board(4) = 0
- End If
- If board(5) = 0 Then
- board(5) = board(4)
- board(4) = 0
- End If
- If board(7) = 0 Then
- board(7) = board(4)
- board(4) = 0
- End If
- Case 6
- If board(8) = 0 Then
- board(8) = board(5)
- board(5) = 0
- End If
- If board(4) = 0 Then
- board(4) = board(5)
- board(5) = 0
- End If
- If board(2) = 0 Then
- board(2) = board(5)
- board(5) = 0
- End If
- Case 7
- If board(3) = 0 Then
- board(3) = board(6)
- board(6) = 0
- End If
- If board(7) = 0 Then
- board(7) = board(6)
- board(6) = 0
- End If
- Case 8
- If board(4) = 0 Then
- board(4) = board(7)
- board(7) = 0
- End If
- If board(6) = 0 Then
- board(6) = board(7)
- board(7) = 0
- End If
- If board(8) = 0 Then
- board(8) = board(7)
- board(7) = 0
- End If
- Case 9
- If board(5) = 0 Then
- board(5) = board(8)
- board(8) = 0
- End If
- If board(7) = 0 Then
- board(7) = board(8)
- board(8) = 0
- End If
- End select
- For i = 0 To 8
- If board(i) = CStr(i+1) Then sum=sum+1 : End If
- If sum=8 Then
- response.write "<script language=javascript>alert('문제를 다 풀었습니다') </script>"
- End if
- Next
- End if
- ' 넘기기 위한 묶음 변수 생성
- getArr = ""
- For i=0 To 8
- getArr = getArr & board(i) & "-"
- Next
- '출력....
- response.write "<table cellpadding=4 cellspacing=4 border=2 align=center>"
- ct = 1
- For i = 0 To 2
- response.write "<tr align=center height=100>"
- For j = 0 To 2
- If board(ct-1) = 0 Then
- response.write "<td width=100> </td>"
- Else
- response.write "<td width=100><a href=puzzle.asp?ct=" & ct & "&getArr=" & getArr & ">" &board(ct-1) &"</a></td>"
- End if
- ct = ct+1
- next
- response.write "</tr>"
- Next
- %>
- </table>
Many Bugs!!!~
실행화면
반응형