From d2a7f99aa6e89043c905ab46ce783a91eff80fd9 Mon Sep 17 00:00:00 2001 From: amy Date: Fri, 10 Feb 2023 13:40:16 -0600 Subject: minesweeper :empty: --- html/display.html | 87 ++++++++++++++++++++++++++--------------- src/fs.json | 8 +++- src/img/mine.png | Bin 0 -> 3537 bytes src/jssh.js | 38 ++++++++++++------ src/sprites/bomb-ex.png | Bin 0 -> 168 bytes src/sprites/bomb-x.png | Bin 0 -> 193 bytes src/sprites/cool.png | Bin 0 -> 229 bytes src/sprites/dead.png | Bin 0 -> 215 bytes src/sprites/dig-0.png | Bin 0 -> 169 bytes src/sprites/dig-1.png | Bin 0 -> 159 bytes src/sprites/dig-2.png | Bin 0 -> 174 bytes src/sprites/dig-3.png | Bin 0 -> 161 bytes src/sprites/dig-4.png | Bin 0 -> 179 bytes src/sprites/dig-5.png | Bin 0 -> 175 bytes src/sprites/dig-6.png | Bin 0 -> 170 bytes src/sprites/dig-7.png | Bin 0 -> 168 bytes src/sprites/dig-8.png | Bin 0 -> 149 bytes src/sprites/dig-9.png | Bin 0 -> 169 bytes src/sprites/dig-dash.png | Bin 0 -> 168 bytes src/sprites/dig-nothing.png | Bin 0 -> 147 bytes src/sprites/shock.png | Bin 0 -> 224 bytes src/sprites/smiley-clicked.png | Bin 0 -> 199 bytes src/sprites/smiley.png | Bin 0 -> 213 bytes src/sprites/space-1.png | Bin 0 -> 149 bytes src/sprites/space-3.png | Bin 0 -> 153 bytes src/sprites/space-4.png | Bin 0 -> 150 bytes src/sprites/space-5.png | Bin 0 -> 154 bytes src/sprites/space-6.png | Bin 0 -> 154 bytes src/sprites/space-7.png | Bin 0 -> 153 bytes src/sprites/space-8.png | Bin 0 -> 147 bytes src/sprites/space-bomb.png | Bin 0 -> 168 bytes src/sprites/space-clear.png | Bin 0 -> 125 bytes src/sprites/space-flag.png | Bin 0 -> 177 bytes src/sprites/space-q-2.png | Bin 0 -> 166 bytes src/sprites/space-q.png | Bin 0 -> 149 bytes src/sprites/space-uncl.png | Bin 0 -> 143 bytes src/sprites/square-2.png | Bin 0 -> 166 bytes 37 files changed, 89 insertions(+), 44 deletions(-) create mode 100644 src/img/mine.png create mode 100644 src/sprites/bomb-ex.png create mode 100644 src/sprites/bomb-x.png create mode 100644 src/sprites/cool.png create mode 100644 src/sprites/dead.png create mode 100644 src/sprites/dig-0.png create mode 100644 src/sprites/dig-1.png create mode 100644 src/sprites/dig-2.png create mode 100644 src/sprites/dig-3.png create mode 100644 src/sprites/dig-4.png create mode 100644 src/sprites/dig-5.png create mode 100644 src/sprites/dig-6.png create mode 100644 src/sprites/dig-7.png create mode 100644 src/sprites/dig-8.png create mode 100644 src/sprites/dig-9.png create mode 100644 src/sprites/dig-dash.png create mode 100644 src/sprites/dig-nothing.png create mode 100644 src/sprites/shock.png create mode 100644 src/sprites/smiley-clicked.png create mode 100644 src/sprites/smiley.png create mode 100644 src/sprites/space-1.png create mode 100644 src/sprites/space-3.png create mode 100644 src/sprites/space-4.png create mode 100644 src/sprites/space-5.png create mode 100644 src/sprites/space-6.png create mode 100644 src/sprites/space-7.png create mode 100644 src/sprites/space-8.png create mode 100644 src/sprites/space-bomb.png create mode 100644 src/sprites/space-clear.png create mode 100644 src/sprites/space-flag.png create mode 100644 src/sprites/space-q-2.png create mode 100644 src/sprites/space-q.png create mode 100644 src/sprites/space-uncl.png create mode 100644 src/sprites/square-2.png diff --git a/html/display.html b/html/display.html index a24255e..28d1871 100644 --- a/html/display.html +++ b/html/display.html @@ -345,6 +345,12 @@ } let bar_items_left = [] function load_bar() { + document.getElementById("bar-menu").onclick = ((ev) => { + if (document.getElementById("bar-menu-root").style.display == "block") + document.getElementById("bar-menu-root").style.display = "none" + else + document.getElementById("bar-menu-root").style.display = "block" + }) let items = document.getElementById("bar-menu-root").children for (let item = 0; item != items.length; item++) { //console.log(items.item(item)) @@ -380,9 +386,21 @@ for (let l of dd[ite].content.split("\n")) { if (l.split(" ")[0] == "meta") { - if (l.split(" ")[1] == "icon") { - icon = `` + let tem = l.split(" ") + tem.splice(0, 1); + tem = tem.join(" ") + //console.log(tem) + tem = tem.split(",") + //console.log(tem) + for (let tw of tem) { + if (tw.trim().split(" ")[0] == "icon") { + icon = `` + } } + /*if (l.split(" ")[1] == "icon") { + icon = `` + }*/ + } } ins += icon @@ -480,8 +498,8 @@ function window_create(uid, name, content, options = {}) { let lines = content.split("
").length let a = '' - let size = (options.size != undefined) ? ("width:" + options.size.width + "px;height:" + options.size.height + "px;") : ("width:" + Math.max(document.body.clientWidth * .56, minx) + "px;height:" + Math.max(miny, document.body.clientHeight * .30) + "px;"); - let pos = (options.pos != undefined) ? ("left:" + options.pos.left + "px;top:" + options.pos.top + "px;") : ("left:0px;top:0px;"); + let size = (options.width != undefined && options.height != undefined) ? ("width:" + options.width + "px;height:" + options.height + "px;") : ("width:" + Math.max(document.body.clientWidth * .56, minx) + "px;height:" + Math.max(miny, document.body.clientHeight * .30) + "px;"); + let pos = (options.left != undefined && options.top != undefined) ? ("left:" + options.left + "px;top:" + options.top + "px;") : ("left:0px;top:0px;"); a += "
" //console.log(document.getElementById(uid).attributes["window-name"].value) a += "
" + name + "
" @@ -490,21 +508,27 @@
` - a += "
" - a += "
" - a += "
" - a += "
" + if (options.resize != false && options.resize != "false") { + a += "
" + a += "
" + a += "
" + a += "
" + } a += "
" a += "
" + a += "
" + content + "
" - a += "
" - a += "
" + if (options.scroll != false && options.scroll != "false") { + a += "
" + a += "
" + } a += "
" - - a += "
" - a += "
" - a += "
" - a += "
" + if (options.resize != false && options.resize != "false") { + a += "
" + a += "
" + a += "
" + a += "
" + } document.getElementById("root").innerHTML += a //console.log(document.getElementById(uid + "-content-root").clientHeight / (document.getElementById(uid + "-content-content").clientHeight / document.getElementById(uid + "-content-root").clientHeight)) @@ -516,18 +540,21 @@ let elems = document.getElementsByClassName("window") for (let i = 0; i != elems.length; i++) { let uid = elems.item(i).id.split("-")[0] - document.getElementById(uid + "-content-scrollbar-point").style.height = (document.getElementById(uid + "-content-root").clientHeight / (document.getElementById(uid + "-content-content").clientHeight / document.getElementById(uid + "-content-root").clientHeight)) + "px" - if (document.getElementById(uid + "-content-scrollbar-point").clientHeight >= document.getElementById(uid + "-content-root").clientHeight) { - document.getElementById(uid + "-content-scrollbar").style.display = 'none' - } - else { - if (document.getElementById(uid + "-content-scrollbar").style.display == 'none') { - document.getElementById(uid + "-content-scrollbar").style.display = 'block' - if (document.getElementById(uid + "-content-scrollbar-point").clientHeight >= document.getElementById(uid + "-content-root").clientHeight) { - document.getElementById(uid + "-content-scrollbar").style.display = 'none' + try { + document.getElementById(uid + "-content-scrollbar-point").style.height = (document.getElementById(uid + "-content-root").clientHeight / (document.getElementById(uid + "-content-content").clientHeight / document.getElementById(uid + "-content-root").clientHeight)) + "px" + + if (document.getElementById(uid + "-content-scrollbar-point").clientHeight >= document.getElementById(uid + "-content-root").clientHeight) { + document.getElementById(uid + "-content-scrollbar").style.display = 'none' + } + else { + if (document.getElementById(uid + "-content-scrollbar").style.display == 'none') { + document.getElementById(uid + "-content-scrollbar").style.display = 'block' + if (document.getElementById(uid + "-content-scrollbar-point").clientHeight >= document.getElementById(uid + "-content-root").clientHeight) { + document.getElementById(uid + "-content-scrollbar").style.display = 'none' + } } } - } + } catch (e) { } //let elem = elems.item(i).children[0] let elec = elems.item(i).children let elem @@ -833,14 +860,12 @@ } } document.getElementById("bar-menu-root").style.display = "none" - document.getElementById("bar-menu").onclick = ((ev) => { - if (document.getElementById("bar-menu-root").style.display == "block") - document.getElementById("bar-menu-root").style.display = "none" - else - document.getElementById("bar-menu-root").style.display = "block" - }) + load_bar() } + + + async function main() { fs = await req('src/fs.json') document.getElementById("bar-menu").onclick = ((ev) => { diff --git a/src/fs.json b/src/fs.json index 96cbf9f..be1a7b4 100644 --- a/src/fs.json +++ b/src/fs.json @@ -6,17 +6,21 @@ "content": [ { "name": "notepad", - "icon": "./src/img/notepad.png", "perms": { "r": true }, "dir": false, "content": "window Notepad \nmeta icon src/img/notepad.png" }, { "name": "cmd", - "icon": "./src/img/cmd.png", "perms": { "r": true }, "dir": false, "content": "window cmd
λ
\nmeta icon src/img/cmd.png" + }, + { + "name": "Mine Sweeper", + "perms": { "r": true }, + "dir": false, + "content": "window uwu uwu\nmeta icon src/img/mine.png, resize false, left 250, top 250, width 144, height 192, scroll false\njs let id = #_ID - 1;let cont = document.getElementById(id + '-content-content');let width = 9; let height = 10;cont.innerHTML='';let board = [];for(let i = 0; i!=height;i++){let temp = [];for(let i = 0; i!=width;i++){if(Math.random() < 0.19){temp.push(-1);} else {temp.push(0);}};board.push(temp);};for(let i = 0; i!= board.length; i++){for(let ii = 0; ii!=board[i].length; ii++){if((i!=0&&i!=height-1&&ii!=0&&ii!=width-1)&&board[i][ii]!=-1){board[i][ii] = (board[i-1][ii]==-1) + (board[i-1][ii-1]==-1) + (board[i][ii-1]==-1) + (board[i+1][ii-1]==-1) + (board[i+1][ii]==-1) + (board[i+1][ii+1]==-1) + (board[i][ii+1]==-1) + (board[i-1][ii+1]==-1);}}};for(let l of board){console.log(l)}" } ] } diff --git a/src/img/mine.png b/src/img/mine.png new file mode 100644 index 0000000..a3ae447 Binary files /dev/null and b/src/img/mine.png differ diff --git a/src/jssh.js b/src/jssh.js index fcc2956..b93a4de 100644 --- a/src/jssh.js +++ b/src/jssh.js @@ -80,7 +80,6 @@ class jssh { stdout(line) { if (this.history != "null" && this.input != "null") document.getElementById(this.history).innerHTML += line; - else console.log("aaa"); return; } add_file(fs, path, dir) { @@ -108,7 +107,7 @@ class jssh { for (let f in fs) { if (fs[f].name == path[0] && !fs[f].dir) { //console.log(append ? fs[f].content + content : content); - fs[f].content = append ? fs[f].content + content : content; + fs[f].content = append ? fs[f].content + "\n" + content : content; return fs; } } @@ -135,7 +134,7 @@ class jssh { //console.log(fs, path); if (path.length == 1) { for (let f in fs) { - console.log(f); + //console.log(f); if (fs[f].name == path[0]) { fs.splice(f, 1); break; @@ -161,23 +160,33 @@ class jssh { if (i.name == it[0] && !i.dir) { let cont = i.content; for (let line of cont.split("\n")) { - console.log(line); + //console.log(line); let stripped = line.split(" "); switch (stripped[0]) { case "window": if (this.window_create != null) { let t = line.split(" "); t.splice(0, 2); + let settings = {}; + let con2 = cont.split("\n"); + for (let l of con2) { + if (l.trim().split(" ")[0] == "meta") { + let nuwu = l.trim().split(" "); + nuwu.splice(0, 1); + let trim = nuwu.join(" ").trim().split(","); + for (let i of trim) { + settings[i.trim().split(" ")[0]] = i.trim().split(" ")[1]; + } + } + } + console.log(settings); let id = document.getElementsByClassName("window").length; - console.log(id); + //console.log(id); this.window_create( id, stripped[1], t.join(" ").replace(/#_ID/g, id), - { - size: { width: 500, height: 300 }, - pos: { left: 250, top: 50 }, - } + settings ); } else { this.stdout("unable to make window reference"); @@ -188,17 +197,24 @@ class jssh { t.splice(0, 1); this.stdout(t.join(" ")); break; + case "js": + let id = document.getElementsByClassName("window").length; + let tt = line.split(" "); + tt.splice(0, 1); + eval(tt.join(" ").replace(/#_ID/g, id)); + break; } } break; } } } - ex() { + ex(stdin = null) { let temp_working_dir = this.working_dir; //document.getElementById(this.history).innerHTML += // "λ " + document.getElementById(this.input).value + "
"; let com = document.getElementById(this.input).value; + if (stdin != null) com = stdin; let stripped = com.split(" "); let redir = false, redir_app = false; @@ -208,7 +224,7 @@ class jssh { "λ " + document.getElementById(this.input).value + "
"; if (stripped.includes(">")) redir = true; else if (stripped.includes(">>")) redir_app = true; - console.log(redir, redir_app); + //console.log(redir, redir_app); swi: switch (stripped[0]) { case "touch": this.add_file( diff --git a/src/sprites/bomb-ex.png b/src/sprites/bomb-ex.png new file mode 100644 index 0000000..b3a7260 Binary files /dev/null and b/src/sprites/bomb-ex.png differ diff --git a/src/sprites/bomb-x.png b/src/sprites/bomb-x.png new file mode 100644 index 0000000..6a5e1b2 Binary files /dev/null and b/src/sprites/bomb-x.png differ diff --git a/src/sprites/cool.png b/src/sprites/cool.png new file mode 100644 index 0000000..c0679ef Binary files /dev/null and b/src/sprites/cool.png differ diff --git a/src/sprites/dead.png b/src/sprites/dead.png new file mode 100644 index 0000000..343ee24 Binary files /dev/null and b/src/sprites/dead.png differ diff --git a/src/sprites/dig-0.png b/src/sprites/dig-0.png new file mode 100644 index 0000000..3f47382 Binary files /dev/null and b/src/sprites/dig-0.png differ diff --git a/src/sprites/dig-1.png b/src/sprites/dig-1.png new file mode 100644 index 0000000..68d8055 Binary files /dev/null and b/src/sprites/dig-1.png differ diff --git a/src/sprites/dig-2.png b/src/sprites/dig-2.png new file mode 100644 index 0000000..467ce62 Binary files /dev/null and b/src/sprites/dig-2.png differ diff --git a/src/sprites/dig-3.png b/src/sprites/dig-3.png new file mode 100644 index 0000000..018a975 Binary files /dev/null and b/src/sprites/dig-3.png differ diff --git a/src/sprites/dig-4.png b/src/sprites/dig-4.png new file mode 100644 index 0000000..f6015b3 Binary files /dev/null and b/src/sprites/dig-4.png differ diff --git a/src/sprites/dig-5.png b/src/sprites/dig-5.png new file mode 100644 index 0000000..7369441 Binary files /dev/null and b/src/sprites/dig-5.png differ diff --git a/src/sprites/dig-6.png b/src/sprites/dig-6.png new file mode 100644 index 0000000..a8c78e7 Binary files /dev/null and b/src/sprites/dig-6.png differ diff --git a/src/sprites/dig-7.png b/src/sprites/dig-7.png new file mode 100644 index 0000000..2943d87 Binary files /dev/null and b/src/sprites/dig-7.png differ diff --git a/src/sprites/dig-8.png b/src/sprites/dig-8.png new file mode 100644 index 0000000..19c26c0 Binary files /dev/null and b/src/sprites/dig-8.png differ diff --git a/src/sprites/dig-9.png b/src/sprites/dig-9.png new file mode 100644 index 0000000..91f384d Binary files /dev/null and b/src/sprites/dig-9.png differ diff --git a/src/sprites/dig-dash.png b/src/sprites/dig-dash.png new file mode 100644 index 0000000..464c97d Binary files /dev/null and b/src/sprites/dig-dash.png differ diff --git a/src/sprites/dig-nothing.png b/src/sprites/dig-nothing.png new file mode 100644 index 0000000..ed3a2e8 Binary files /dev/null and b/src/sprites/dig-nothing.png differ diff --git a/src/sprites/shock.png b/src/sprites/shock.png new file mode 100644 index 0000000..d66fadd Binary files /dev/null and b/src/sprites/shock.png differ diff --git a/src/sprites/smiley-clicked.png b/src/sprites/smiley-clicked.png new file mode 100644 index 0000000..cd754aa Binary files /dev/null and b/src/sprites/smiley-clicked.png differ diff --git a/src/sprites/smiley.png b/src/sprites/smiley.png new file mode 100644 index 0000000..87444c9 Binary files /dev/null and b/src/sprites/smiley.png differ diff --git a/src/sprites/space-1.png b/src/sprites/space-1.png new file mode 100644 index 0000000..268343d Binary files /dev/null and b/src/sprites/space-1.png differ diff --git a/src/sprites/space-3.png b/src/sprites/space-3.png new file mode 100644 index 0000000..4db8267 Binary files /dev/null and b/src/sprites/space-3.png differ diff --git a/src/sprites/space-4.png b/src/sprites/space-4.png new file mode 100644 index 0000000..c1f0600 Binary files /dev/null and b/src/sprites/space-4.png differ diff --git a/src/sprites/space-5.png b/src/sprites/space-5.png new file mode 100644 index 0000000..4d9a161 Binary files /dev/null and b/src/sprites/space-5.png differ diff --git a/src/sprites/space-6.png b/src/sprites/space-6.png new file mode 100644 index 0000000..75e77bd Binary files /dev/null and b/src/sprites/space-6.png differ diff --git a/src/sprites/space-7.png b/src/sprites/space-7.png new file mode 100644 index 0000000..7e44724 Binary files /dev/null and b/src/sprites/space-7.png differ diff --git a/src/sprites/space-8.png b/src/sprites/space-8.png new file mode 100644 index 0000000..7ee9ddc Binary files /dev/null and b/src/sprites/space-8.png differ diff --git a/src/sprites/space-bomb.png b/src/sprites/space-bomb.png new file mode 100644 index 0000000..e3d8a1b Binary files /dev/null and b/src/sprites/space-bomb.png differ diff --git a/src/sprites/space-clear.png b/src/sprites/space-clear.png new file mode 100644 index 0000000..de23ec5 Binary files /dev/null and b/src/sprites/space-clear.png differ diff --git a/src/sprites/space-flag.png b/src/sprites/space-flag.png new file mode 100644 index 0000000..6044e57 Binary files /dev/null and b/src/sprites/space-flag.png differ diff --git a/src/sprites/space-q-2.png b/src/sprites/space-q-2.png new file mode 100644 index 0000000..5b12833 Binary files /dev/null and b/src/sprites/space-q-2.png differ diff --git a/src/sprites/space-q.png b/src/sprites/space-q.png new file mode 100644 index 0000000..37e2cde Binary files /dev/null and b/src/sprites/space-q.png differ diff --git a/src/sprites/space-uncl.png b/src/sprites/space-uncl.png new file mode 100644 index 0000000..78c5618 Binary files /dev/null and b/src/sprites/space-uncl.png differ diff --git a/src/sprites/square-2.png b/src/sprites/square-2.png new file mode 100644 index 0000000..156a2b5 Binary files /dev/null and b/src/sprites/square-2.png differ -- cgit v1.2.3