Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Web
Piškvorky v ASP
1. srpna 2000, 00.00 | Plný zdrojový kód oblíbené hry. Nevěříte že něco takového lze vytvořit pouze pomocí ASP?
Autorem tohoto kódu je spam_email('.com', '@', 'eastbiz', 'guderna');
Funkční verzi lze vyzkoušet na url: http://62.168.28.249/gomoku/gomoku.asp
Hodně zábavy!!
Guderna - GOMOKU / Piskvorky a:hover {background-color:#cccccc; color:"Black"; text-decoration:none} <% Const O_POCITAC = 1 Const X_PROTIHRAC = 2 Const prazdne = 0 Dim mvarVysledek Dim B1, B2, B3, I, J, M1, M2, T1, S1, S2, S3, K, LL, Y1, I5, J5, I8, I7, J7, J8, M Dim iii, K1, POC, I11, J11, I22, J22, ii, jj, I1, J1, I2, J2, NN Dim K2, R1, N Function cIntIq(Cislo) cIntIq = 0 On Error Resume Next cIntIq = cLng(Cislo) End Function '=========================================================================== == Private Sub podpr1() '=========================================================================== == I1 = I - 4 If I1 < 1 Then I1 = 1 I2 = I + 4 If I2 > B1 Then I2 = B1 J1 = J - 4 If J1 < 1 Then J1 = 1 J2 = J + 4 If J2 > B1 Then J2 = B1 S2 = I - I1 If (J - J1) < S2 Then S2 = J - J1 S3 = I2 - I If (J - J1) < S3 Then S3 = J - J1 End Sub '=========================================================================== == Private Sub PODPR3() '=========================================================================== == podpr1 PA(I, J) = 0 PB(I, J) = 0 For M = I To I2 If PV(M, J) <= 0 Then PA(I, J) = PA(I, J) + PW(PX(M, J) + 1) If PX(M, J) <= 0 Then PB(I, J) = PB(I, J) + PW(PV(M, J) + 1) Next For S1 = 0 To S3 If PT(I + S1, J - S1) <= 0 Then PA(I, J) = PA(I, J) + PW(PU(I + S1, J - S1) + 1) If PU(I + S1, J - S1) <= 0 Then PB(I, J) = PB(I, J) + PW(PT(I + S1, J - S1) + 1) Next For NN = J1 To J If PR(I, NN) <= 0 Then PA(I, J) = PA(I, J) + PW(PS(I, NN) + 1) If PS(I, NN) <= 0 Then PB(I, J) = PB(I, J) + PW(PR(I, NN) + 1) Next For S1 = 0 To S2 If PO(I - S1, J - S1) <= 0 Then PA(I, J) = PA(I, J) + PW(PQ(I - S1, J - S1) + 1) If PQ(I - S1, J - S1) <= 0 Then PB(I, J) = PB(I, J) + PW(PO(I - S1, J - S1) + 1) Next End Sub '=========================================================================== == Private Sub PODPR2() '=========================================================================== == I5 = I: J5 = J: I7 = I1: I8 = I2: J7 = J1: J8 = J2: J = J5 For I = I5 + 1 To I8 PODPR3 Next For I = I7 To I5 - 1 PODPR3 Next I = I5 For J = J5 + 1 To J8 PODPR3 Next For J = J7 To J5 - 1 PODPR3 Next For T1 = 1 To 4 If (J5 + T1) <= B1 Then If (I5 + T1) <= B1 Then I = I5 + T1: J = J5 + T1 PODPR3 End If If (I5 - T1) >= 1 Then I = I5 - T1: J = J5 + T1 PODPR3 End If End If If (J5 - T1) >= 1 Then If (I5 + T1) <= B1 Then I = I5 + T1: J = J5 - T1 PODPR3 End If If (I5 - T1) >= 1 Then I = I5 - T1: J = J5 - T1 PODPR3 End If End If Next End Sub '************************************************** Public Sub ginit(gi, gj) nmax = 20 ' ja = 0: ty = 0 B1 = nmax: PW(1) = 0: PW(2) = 5: PW(3) = 25 PW(4) = 80: PW(5) = 1000: B2 = 5 K1 = 4: K2 = 4.5 POC = 0 I = nmax \ 2 - 3 + Int((6 * Rnd) + 1) ' zacatecni postaveni J = nmax \ 2 - 3 + Int((6 * Rnd) + 1) ' debugprint(i & "," & j) gi = I gj = J For I = 1 To nmax For J = 1 To nmax PX(I, J) = 0: PV(I, J) = 0: PU(I, J) = 0: PT(I, J) = 0: PS(I, J) = 0: PR(I, J) = 0 PQ(I, J) = 0: PO(I, J) = 0: hraci_pole(I, J) = 0: PA(I, J) = 0: PB(I, J) = 0 Next Next End Sub '************************************************** Public Function gtah(gi, gj) POC = POC + 1 I = gi: J = gj hraci_pole(I, J) = O_POCITAC podpr1 For K = I To I2 If K >= 5 Then If PX(K, J) >= 4 Then gtah = 1 ty = ty + 1 Exit Function ' {GOTO vyhral_jste} Else PX(K, J) = PX(K, J) + 1 End If End If Next For S1 = 0 To S3 If ((I + S1) >= 5) And ((J - S1) <= (B1 - 4)) Then If PU(I + S1, J - S1) >= 4 Then gtah = 1 ty = ty + 1 Exit Function ' {GOTO vyhral_jste} Else PU(I + S1, J - S1) = PU(I + S1, J - S1) + 1 End If End If Next For LL = J1 To J If LL <= (B1 - 4) Then If PS(I, LL) >= 4 Then gtah = 1 ty = ty + 1 Exit Function ' {GOTO vyhral_jste} Else PS(I, LL) = PS(I, LL) + 1 End If End If Next For S1 = 0 To S2 If ((I - S1) <= (B1 - 4)) And ((J - S1) <= (B1 - 4)) Then If PQ(I - S1, J - S1) >= 4 Then gtah = 1 ty = ty + 1 Exit Function ' {GOTO vyhral_jste} Else PQ(I - S1, J - S1) = PQ(I - S1, J - S1) + 1 End If End If Next PODPR2 K1 = 4 opakuj=true 'L5: '******************** while opakuj M1 = 0: M2 = 0 For K = 1 To B1 For LL = 1 To B1 iii = PA(K, LL) + PB(K, LL) \ K1 If (iii >= M1) And (hraci_pole(K, LL) = prazdne) Then If (iii = M1) And (iii > 0) Then If Int(Rnd + 0.5) Then I11 = K: J11 = LL Else I11 = K: J11 = LL End If M1 = PA(K, LL) + PB(K, LL) \ K1 End If iii = PB(K, LL) + PA(K, LL) \ K1 If (iii >= M2) And (hraci_pole(K, LL) = prazdne) Then If (iii = M2) And (iii > 0) Then If Int(Rnd + 0.5) Then I22 = K: J22 = LL Else I22 = K: J22 = LL End If M2 = PB(K, LL) + (PA(K, LL) \ K1) End If Next Next M1 = M1 - (PB(I11, J11) \ K1) M2 = M2 - (PA(I22, J22) \ K1) ' rozhodne se jestli bude branit nebo utocit If (((M1 <= 90) And (M2 > 19)) Or (M2 >= M1) Or ((M2 >= 160) And (M1 < 1000)) Or (M2 >= 1000) Or ((M2 >= 70) And (M1 <= 135)) Or ((M2 >= 100) And (M1 <= 145)) Or ((M2 >= 130) And (M1 <= 155)) Or ((M2 >= 40) And (M1 <= 110))) And ((M1 <= 190) Or (M2 > 185)) And (POC > 3) Then I = I22 J = J22 Else I = I11 J = J11 End If If hraci_pole(I, J) <> prazdne Then If K1 < 99 Then K1 = K1 + 1 ' GoTo L5 opakuj=true Else ' {hlaseni(440,100,' To nem smysl ')} gtah = 3 Exit Function End If else opakuj=false End If wend '*********** If (M1 < 20) And (M2 = 0) And (POC > 10) Then ' {hlaseni(440,100,' REMIZA')} gtah = 4 Exit Function End If hraci_pole(I, J) = X_PROTIHRAC ii = I: jj = J podpr1 For K = I To I2 If K >= 5 Then If PV(K, J) >= 4 Then ja = ja + 1 gi = I: gj = J gtah = 2 ' GoTo vyhral_jsem exit function Else PV(K, J) = PV(K, J) + 1 End If End If Next For S1 = 0 To S3 If ((I + S1) >= 5) And ((J - S1) <= (B1 - 4)) Then If PT(I + S1, J - S1) >= 4 Then ' GoTo vyhral_jsem ja = ja + 1 gi = I: gj = J gtah = 2 exit function Else PT(I + S1, J - S1) = PT(I + S1, J - S1) + 1 End If End If Next For LL = J1 To J If LL <= (B1 - 4) Then If PR(I, LL) >= 4 Then ja = ja + 1 gi = I: gj = J gtah = 2 ' GoTo vyhral_jsem exit function Else PR(I, LL) = PR(I, LL) + 1 End If End If Next For S1 = 0 To S2 If ((I - S1) <= (B1 - 4)) And ((J - S1) <= (B1 - 4)) Then If PO(I - S1, J - S1) >= 4 Then ja = ja + 1 gi = I: gj = J gtah = 2 ' GoTo vyhral_jsem exit function Else PO(I - S1, J - S1) = PO(I - S1, J - S1) + 1 End If End If Next PODPR2 I = ii: J = jj gi = I gj = J gtah = 0 Exit Function vyhral_jste: ty = ty + 1 gtah = 1 Exit Function vyhral_jsem: ja = ja + 1 gi = I: gj = J gtah = 2 End Function '****************************** nmax = 20 pocet = 20 session("ja")=cIntIq(session("ja")) session("ty")=cIntIq(session("TY")) if (request("New")="yes")or(request("Msg")<>"Nová hra") then session("Start")=0 msg="Nová hra" if not session("Start")=1 then session("POC") = 0 reDim PA(25, 25) reDim PB(25, 25) reDim PO(25, 25) reDim PQ(25, 25) reDim PR(25, 25) reDim PS(25, 25) reDim PT(25, 25) reDim PV(25, 25) reDim PU(25, 25) reDim PX(25, 25) reDim PD(6) reDim PE(6) reDim PW(6) reDim PC(6) redim hraci_pole(25,25) session("Start")=1 flag = 0 ginit I, J else poc=session("poc") PA=session("PA") PB=session("PB") PO=session("PO") PQ=session("PQ") PR=session("PR") PS=session("PS") PT=session("PT") PV=session("PV") PU=session("PU") PX=session("PX") PD=session("PD") PE=session("PE") PW=session("PW") PC=session("PC") hraci_pole=session("hraci_pole") end if B1 = nmax: PW(1) = 0: PW(2) = 5: PW(3) = 25 PW(4) = 80: PW(5) = 1000: B2 = 5 K1 = 4: K2 = 4.5 x=cIntIq(request("X")) y=cIntIq(request("Y")) if (hraci_pole(x,y)=0)and(x>0)and(y>0) then if (x<>0) then session("oldx")=x session("oldy")=y iii=gtah(x,y) Select Case iii Case 0 hraci_pole(x, y) = 2 Case 1 session("ty") = session("ty") + 1 Msg=" Vyhral jste !!" Case 2 session("ja") = session("ja") + 1 Msg=" Vyhral jsem !!" End Select end if end if session("hraci_pole")=hraci_pole session("PA")=PA session("PB")=PB session("PO")=PO session("PQ")=PQ session("PR")=PR session("PS")=PS session("PT")=PT session("PV")=PV session("PU")=PU session("PX")=PX session("PD")=PD session("PE")=PE session("PW")=PW session("PC")=PC session("poc")=poc %>
GOMOKU
<% for i=1 to nmax %> <% for j=1 to nmax %> <% next %> <% next %>
bgcolor="#eab5a8" <%end if%> onClick="Tah(<%=i%>,<%=j%>)"><% Select case hraci_pole(i,j) case 0 %> <% Case 1 %>O<% Case 2 %>X<% end select %>
<%=msg%> Score= <%=session("ja")%> : <%=session("ty")%> ©Ing Ivo Guderna
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007