{"id":158369,"student_id":1404,"content":"var grid = game(32, 24); // 初始化地圖\nwhen('keyup', 'space', grid.pause); // 空白鍵開始、暫停\n\nfunction update () {\n var newGrid = [];\n for (var x = 0; x \u003c 32; x++) {\n newGrid[x] = [];\n for (var y = 0; y \u003c 24; y++) {\n var c = calc(x,y)\n // print(c, 20*x, 20*y, \"red\")\n // 決定 newGrid[x][y] = true or false\n\n // 當周遭有超過 4 個細胞存活,則這個細胞會死亡\n if(c \u003e 4 \u0026\u0026 grid[x][y]) newGrid[x][y] = false;\n // 當周遭有小於 1 個細胞存活,則這個細胞會死亡\n if(c \u003c 1 \u0026\u0026 grid[x][y]) newGrid[x][y] = false;\n // 當周遭有剛好 2or3 個細胞存活,則這個細胞存活\n // if(c == 2 || c == 3 \u0026\u0026 grid[x][y]) newGrid[x][y] = true;\n // 週周遭有剛好 3 個細胞,這個格子的細胞會產生\n if(c == 2 \u0026\u0026 !grid[x][y]) newGrid[x][y] = true;\n }\n }\n for (var x = 0; x \u003c 32; x++) {\n for (var y = 0; y \u003c 24; y++) {\n grid[x][y] = newGrid[x][y];\n }\n }\n\n \n \n // var newGrid = [];\n // for (var x = 0; x \u003c 32; x++) {\n // newGrid[x] = [];\n // for (var y = 0; y \u003c 24; y++) {\n // var c = calc(x, y);\n // // print(c, x*20, y*20, 'red'); // 實作一、二\n // if (grid[x][y] \u0026\u0026 c \u003c 2) newGrid[x][y] = false;\n // if (grid[x][y] \u0026\u0026 c \u003e 3) newGrid[x][y] = false;\n // if (grid[x][y] \u0026\u0026 c == 2) newGrid[x][y] = true;\n // if (c == 3) newGrid[x][y] = true;\n // } \n // }\n\n // // 實作五 \n \n}\n\n// 實作二\nfunction calc (x, y) {\n var count = 0; //紀錄周遭有幾個活細胞\n //檢查周圍八格是否為活細胞,是的話 count += 1\n if (grid[x-1][y-1]) count++;\n if (grid[x-0][y-1]) count++;\n if (grid[x+1][y-1]) count++;\n if (grid[x-1][y+0]) count++;\n if (grid[x+1][y+0]) count++;\n if (grid[x-1][y+1]) count++;\n if (grid[x-0][y+1]) count++;\n if (grid[x+1][y+1]) count++;\n return count;\n}","created_at":"2020-06-13T12:27:02.079+08:00","updated_at":"2020-06-13T17:46:15.834+08:00","name":"生命遊戲 副本 副本","language":"javascript","screenshot":{"url":"https://cdn1.koding.school/uploads/project/screenshot/158369/553a0d90905eecc981df9e3733e72cf6.jpg"},"parent_id":123952,"plugin":"// 為了讓 print 正常在 update 中順利印出數字\nGame.set({stopRendering: true})\n\nvar game = function (w, h) {\n \n var grid = {}\n var width = 640/w;\n var height = 480/h;\n var run = false; // 開始 or 暫停\n\n for (var x=-1; x \u003c w+1; x++) {\n grid[x] = {};\n for (var y=-1; y \u003c h+1; y++) {\n grid[x][y] = false;\n }\n }\n \n var clock = 0;\n forever(function() {\n clock++;\n // if (clock % 20 == 0) return; // 每秒更新 3 次\n\n for (var x = 0; x \u003c w; x++) {\n for (var y = 0; y \u003c h; y++) {\n pen.size = 1;\n pen.fillColor = grid[x][y] ? 'black': 'white';\n pen.drawRect(x*width, y*height, width, height);\n }\n }\n\n if (run \u0026\u0026 clock % 20 === 0) update();\n });\n\n when(\"click\", function() {\n var x = Math.floor(cursor.x/(640/w));\n var y = Math.floor(cursor.y/(480/h));\n grid[x][y] = !grid[x][y];\n });\n\n grid.pause = function () {\n run = !run;\n };\n\n return grid;\n}","description":null,"note":null,"status":"public","like_student_ids":[],"is_featured":false,"views":64,"hashid":"rdvsw44g","is_content_changed":false,"review_status":"unsubmitted","submitted_at":null,"reviewed_at":null,"advise":null,"is_deleted":false}
[]
橘蘋學習平台
橘蘋學習平台
我的作品
檢視專案頁
匯出
複製
匯入
刪除
下載 Android APP (APK)
截圖
1:1:1
1:1
full
幫助
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦