wok annotate sokojs/stuff/multiset.sh @ rev 24131

lxsession, lxsession-lxpolkit, lxappearance: misc fixes (thanks Saipul)
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Oct 23 10:55:42 2021 +0000 (2021-10-23)
parents 787a1807d2bb
children 9c4b74f41985
rev   line source
pascal@24127 1 #!/bin/sh
pascal@24127 2
pascal@24130 3 [ -s level.htm ] && rm level.htm && patch -p0 <<EOT
pascal@24127 4 --- main.htm
pascal@24127 5 +++ main.htm
pascal@24131 6 @@ -19,7 +19,11 @@
pascal@24131 7 width:30px;
pascal@24131 8 height:30px;
pascal@24131 9 }
pascal@24131 10 -
pascal@24131 11 +a{
pascal@24131 12 +color:red;
pascal@24131 13 +text-decoration:none;
pascal@24131 14 +display:block;
pascal@24131 15 +}
pascal@24131 16 @media screen and (max-width: 450px) {
pascal@24127 17 img.r{
pascal@24131 18 width:29px;
pascal@24131 19 @@ -77,8 +81,11 @@
pascal@24127 20 var ie4= (navigator.appName == "Microsoft Internet Explorer")?1:0;
pascal@24127 21 var ns4= (navigator.appName=="Netscape")?1:0;
pascal@24127 22
pascal@24127 23 -Row = 16
pascal@24127 24 -Col = 16
pascal@24127 25 +Row = eval(parent.frames[0].document.forms[1].elements[0].value)
pascal@24127 26 +Col = eval(parent.frames[0].document.forms[1].elements[1].value)
pascal@24131 27 +CurSet = parent.frames[0].document.forms[1].elements[2].value
pascal@24131 28 +maxLevel = eval(parent.frames[0].document.forms[1].elements[3].value)
pascal@24131 29 +nbLevel = eval(parent.frames[0].document.forms[0].elements[(Row*Col)+1].value)
pascal@24127 30
pascal@24127 31 function Nmajevent(evenement)
pascal@24127 32 {
pascal@24131 33 @@ -124,6 +131,10 @@
pascal@24127 34
pascal@24131 35 <script type="text/javascript">
pascal@24131 36 <!--
pascal@24131 37 +if (parent.window.location.search.length > 1 && parent.frames[0].location.hash.length == 0 &&
pascal@24131 38 + parent.frames[0].location.href.indexOf(parent.window.location.search.substring(1)) < 0)
pascal@24131 39 + parent.frames[0].location = parent.window.location.search.substring(1)
pascal@24131 40 +
pascal@24131 41 if (document.all) {
pascal@24131 42 top.window.resizeTo(800, 600);
pascal@24131 43 } else if (document.layers || document.getElementById) {
pascal@24131 44 @@ -151,13 +162,26 @@
pascal@24127 45 manD = new Image(30, 30); manD.src = "9.gif"; // down
pascal@24127 46
pascal@24127 47 level = new Array()
pascal@24127 48 -maxLevel = 97
pascal@24127 49 moves = 0
pascal@24131 50 saved = ""
pascal@24127 51
pascal@24131 52 +function urlself()
pascal@24131 53 +{
pascal@24131 54 + var l = parent.window.location
pascal@24131 55 + return l.href.substring(0, l.href.length - l.search.length - l.hash.length)+
pascal@24131 56 + "?"+CurSet+"/level"+nbLevel+".htm#"+saved
pascal@24131 57 +}
pascal@24131 58 +
pascal@24131 59 +function seturl()
pascal@24131 60 +{
pascal@24131 61 + var e = document.getElementById("urlsave")
pascal@24131 62 + e.setAttribute("href", urlself());
pascal@24131 63 +}
pascal@24131 64 +
pascal@24127 65 function ReloadLevel() {
pascal@24131 66 manpos = parent.frames[0].document.forms[0].elements[Row*Col].value
pascal@24131 67 moves = 0
pascal@24131 68 + saved = ""
pascal@24131 69 window.status = ""
pascal@24131 70 nbBoxin = 0
pascal@24131 71 for (i = 0 ; i < Row * Col; i++) {
pascal@24131 72 @@ -168,9 +192,18 @@
pascal@24131 73 document.images[manpos].src = eval("manD.src")
pascal@24131 74 }
pascal@24127 75
pascal@24131 76 +function Go(d,n) {
pascal@24131 77 + parent.frames[0].document.location = d + "/level" + n + ".htm#" + d
pascal@24131 78 + seturl()
pascal@24131 79 +}
pascal@24131 80 +
pascal@24127 81 function GoLevel(n) {
pascal@24127 82 if (n == nbLevel) ReloadLevel()
pascal@24127 83 - parent.frames[0].document.location = "level" + n + ".htm"
pascal@24131 84 + Go(CurSet, n)
pascal@24127 85 +}
pascal@24127 86 +
pascal@24127 87 +function GoSet() {
pascal@24131 88 + Go(document.getElementById('set').value, 0)
pascal@24127 89 }
pascal@24127 90
pascal@24127 91 function dir(d) {
pascal@24131 92 @@ -214,6 +247,7 @@
pascal@24131 93 m = eval("man"+c.toUpperCase()+".src")
pascal@24131 94 } while (c == c.toLowerCase())
pascal@24131 95 document.images[manpos].src = m
pascal@24131 96 + seturl()
pascal@24131 97 }
pascal@24127 98 }
pascal@24127 99
pascal@24131 100 @@ -224,9 +258,9 @@
pascal@24131 101 var m = dir(d).toLowerCase()
pascal@24131 102 if (level[a] == boxin || level[a] == boxout) {
pascal@24131 103 b = a + d
pascal@24131 104 - ++moves
pascal@24131 105 m = dir(d)
pascal@24131 106 if (level[b] == floor || level[b] == dest) {
pascal@24131 107 + ++moves
pascal@24131 108 level[a] == boxin ? (level[a] = dest, nbBoxin++) : level[a] = floor
pascal@24131 109 level[b] == dest ? (level[b] = boxin, nbBoxin--) : level[b] = boxout
pascal@24131 110 document.images[b].src = eval("img" + level[b] + ".src")
pascal@24131 111 @@ -243,7 +277,7 @@
pascal@24127 112 if (nbBoxin == 0) {
pascal@24127 113 if (nbLevel < maxLevel) {
pascal@24127 114 alert("You have done a good job !")
pascal@24127 115 - parent.frames[0].location = "level" + (++nbLevel) + ".htm"
pascal@24131 116 + parent.frames[0].document.location = CurSet + "/level" + (++nbLevel) + ".htm"
pascal@24127 117 GoLevel(nbLevel)
pascal@24127 118 } else {
pascal@24127 119 alert("Congratulations !")
pascal@24131 120 @@ -251,6 +285,7 @@
pascal@24131 121 }
pascal@24127 122 }
pascal@24127 123 }
pascal@24131 124 + seturl()
pascal@24131 125 }
pascal@24131 126 window.focus()
pascal@24131 127 window.status = ""
pascal@24131 128 @@ -277,21 +312,32 @@
pascal@24131 129 }
pascal@24131 130 document.write("<\/TABLE>")
pascal@24131 131 manpos = parent.frames[0].document.forms[0].elements[Row*Col].value
pascal@24131 132 - nbLevel = parent.frames[0].document.forms[0].elements[(Row*Col)+1].value
pascal@24131 133
pascal@24131 134 document.write("</table><TABLE cellspacing=0 cellpadding=0 style='max-width:300px'><TD>")
pascal@24131 135
pascal@24127 136 document.write("<FORM>",
pascal@24127 137 "<INPUT TYPE=button onClick=\"Javascript:ReloadLevel();\" value=\"Restart\">",
pascal@24127 138 "<INPUT TYPE=button onClick=\"Javascript:UndoMove();\" value=\"Undo\"><p id=\"moves\" style=\"color:white\">0 moves</p></center>")
pascal@24127 139 + style="style='font-family:Courier New;font-size:14px;font-weight:bold;border:1;border-color:0;padding:0;margin:0px;background-color:#c0c0c0;color:#404040..'"
pascal@24127 140 + document.write("<select id='set' "+style+" onChange=\"Javascript:GoSet();\">")
pascal@24130 141 + document.write("<option>Change level pack</option>");
pascal@24127 142 + document.write("<option>sokojs</option>");
pascal@24130 143 + document.write("</select><br />")
pascal@24130 144 + document.write("<body style=\"margin:0\" bgcolor=\"black\">&nbsp;<b><FONT FACE=\"Comic Sans MS\" SIZE=4 COLOR=\"red\">",
pascal@24131 145 + "<a id=\"urlsave\" href=\"",urlself(),"\">",CurSet," LEVEL ",nbLevel + 1,"</a><br/>")
pascal@24127 146 for (i = 0; i <= maxLevel; i++) {
pascal@24127 147 - document.write("<INPUT style='font-family:Courier New;font-size:14px;font-weight:bold;border:1;border-color:0;padding:0;margin:0px;background-color:#c0c0c0;color:#404040รน' TYPE=\"button\" onClick=\"Javascript:GoLevel(", i, ");\" value=\"", (i<9?"&nbsp;":"")+(i+1), "\">")
pascal@24127 148 + document.write("<INPUT "+style+" TYPE=\"button\" onClick=\"Javascript:GoLevel(", i, ");\" value=\"", (i<9?"&nbsp;":"")+(i+1), "\">")
pascal@24127 149 }
pascal@24127 150 document.write("<\/FORM></table>")
pascal@24127 151
pascal@24131 152 document.images[manpos].src = eval("manD.src")
pascal@24131 153 +
pascal@24131 154 + if (parent.window.location.hash.length > 1 && parent.frames[0].location.hash.length == 0) {
pascal@24131 155 + for (i = 2; i <= parent.window.location.hash.length; i++)
pascal@24131 156 + Move(manpos-undoDir(parent.window.location.hash.substring(i-1,i)))
pascal@24131 157 + }
pascal@24131 158 //-->
pascal@24131 159 </script>
pascal@24131 160
pascal@24131 161 </body>
pascal@24131 162 -</html>
pascal@24131 163 \ No newline at end of file
pascal@24131 164 +</html>
pascal@24127 165 --- sokojs.htm
pascal@24127 166 +++ sokojs.htm
pascal@24130 167 @@ -22,14 +22,13 @@ Foundation, Inc., 59 Temple Place - Suit
pascal@24127 168 <html>
pascal@24127 169 <head>
pascal@24127 170 <TITLE>Sokoban (C) Michel Buze</TITLE>
pascal@24127 171 -<META HTTP-EQUIV="Keywords" CONTENT="boxworld,javascript,sokoban,jeu,jeux,game,buze,web">
pascal@24127 172 +<META HTTP-EQUIV="Content Type" CONTENT="text/html;charset=utf-8">
pascal@24127 173 <META NAME="Keywords" CONTENT="boxworld,javascript,sokoban,jeu,jeux,game,buze,web">
pascal@24127 174 <meta name="viewport" content="width=device-width, initial-scale=1">
pascal@24127 175 </head>
pascal@24127 176
pascal@24130 177 -<frameset border="0" rows="0,700,*">
pascal@24127 178 -<frame src="level0.htm">
pascal@24130 179 -<frame src="0.gif">
pascal@24130 180 +<frameset border="0" rows="0,*">
pascal@24127 181 +<frame src="sokojs/level0.htm">
pascal@24127 182 <frame src="0.gif">
pascal@24127 183 <noframes>
pascal@24130 184 <body>
pascal@24127 185 EOT
pascal@24130 186 [ -s level0.htm ] && mkdir sokojs && for l in level*.htm ; do
pascal@24130 187 col=$(sed '/^Col/!d;s|Col=||' $l)
pascal@24130 188 pos=$(sed '/write/!d;/value=\\"[0-9]/!d;s|.*value=."||;s|.".*||' $l)
pascal@24130 189 awk -vx=$(($pos%$col+2)) -vy=$(($pos/$col+10)) '{ c="@"
pascal@24130 190 if (substr($0,x,1) == ".") c="+"
pascal@24130 191 if(l++==y) $0=substr($0,1,x-1) c substr($0,x+1)
pascal@24130 192 print }' < $l | sed -e "s|1)|&.replace('+','.').replace('@','_')|" \
pascal@24130 193 -e '/level.htm/d;s|location = "|&../|;/.*main.htm/i document.write("<FORM ACTION=\\"\\">")\
pascal@24127 194 document.write("<INPUT TYPE=\\"button\\" value=\\""+Row+"\\">",\
pascal@24127 195 "<INPUT TYPE=\\"button\\" value=\\""+Col+"\\">",\
pascal@24127 196 "<INPUT TYPE=\\"button\\" value=\\"sokojs\\">",\
pascal@24130 197 "<INPUT TYPE=\\"button\\" value=\\"97\\"><\\/FORM>")' > sokojs/$l
pascal@24130 198 rm -f $l
pascal@24130 199 done
pascal@24131 200 [ -s sokojs/description.txt ] || cat > sokojs/description.txt <<EOT
pascal@24131 201 SokoJS
pascal@24131 202 Sokoban Game for Javascript
pascal@24131 203 michel.buze@gmail.com
pascal@24131 204 http://buze.michel.chez.com
pascal@24131 205 copyright Michel BUZE
pascal@24131 206 EOT