{"id":1000606,"student_id":1443,"content":"from game import *\r\nfrom random import *\r\n\r\nX = None #點擊的 X 位置\r\nY = None #點擊的 Y 位置\r\nscore = 0 #玩家分數\r\ncombo = 0 #連續得分\r\ncount = 0\r\ngrid = [[],[],[],[],[],[],[],[]] #儲存所有動物角色\r\nimgs = [str(i) + '.png' for i in range(16)] #動物造型圖片\r\n\r\n#創造 64 個動物\r\nfor x in range(8):\r\n for y in range(8):\r\n b = create_sprite(imgs)\r\n grid[x].append(b)\r\n\r\nset_backdrop('bg.png') #設定背景\r\ntarget = create_sprite('target.png') #創造準星\r\nline = create_sprite('line.png') #創造血量條\r\ncreate_sprite('cover.png') #創造背板圖片\r\ninfo = create_sprite('rules.png', 'end.png') #遊戲說明與結束\r\n# bgm = create_sound('bgm.wav', True) #背景音樂\r\nalarm = create_sound('alert.wav', True) #背景音樂\r\nalarm.set_volume(0)\r\n\r\n#開始遊戲\r\ndef start_game():\r\n global X, Y, score\r\n if info.y \u003c 450: return\r\n line.move_to(1075, 400 + 700)\r\n target.hidden = True\r\n info.hidden = True\r\n X = None\r\n Y = None\r\n score = 0\r\n \r\n for row in grid:\r\n for cell in row:\r\n cell.costume_id = randrange(8)\r\n \r\n#遊戲主迴圈\r\ndef loop():\r\n if info.hidden:\r\n draw_text(score, 1024, 787, '#b67760', 40)\r\n update_grid() #更新動物們\r\n update_life() #更新血量條\r\n check_grid() #檢查連線並消除\r\n \r\n elif info.costume_id == 1 and info.y \u003e= 450:\r\n draw_text(f'獲得 {score} 分', 400, 400, '#3a483f', 80)\r\n if info.y \u003c 450: info.y += 5\r\n\r\n#更新怒氣\r\ndef update_life():\r\n line.y -= 0.3 + count * 0.003\r\n if line.y \u003e 1100: line.y = 1100\r\n if line.y \u003c= 400: gameover()\r\n alarm.set_volume(0.5 if line.y \u003c= 600 and info.hidden else 0)\r\n\r\n#更新動物們\r\ndef update_grid():\r\n \r\n for x in range(8):\r\n for y in range(8):\r\n b = grid[x][y]\r\n b.x = x * 100 + 140\r\n b.y = y * 100 + 100\r\n # 綜合練習 start\r\n tx = x * 100 + 140\r\n ty = y * 100 + 100\r\n if b.x \u003e tx: b.x -= 10\r\n if b.x \u003c tx: b.x += 10\r\n if b.y \u003e ty: b.y -= 10\r\n if b.y \u003c ty: b.y += 10\r\n # 綜合練習 end\r\n fade_rm(x, y)\r\n \r\n\r\n# 淡出並消除\r\ndef fade_rm(x, y):\r\n global score\r\n b = grid[x][y]\r\n if b.costume_id \u003e= 8: b.opacity -= 0.01\r\n if b.opacity \u003c= 0.6:\r\n b.opacity = 1\r\n b.costume_id = randrange(8)\r\n b.y = grid[x][0].y - 100\r\n grid[x].pop(y)\r\n grid[x].insert(0, b)\r\n score += combo * 10\r\n line.y += 30\r\n\r\n#檢查十六個行列連線\r\ndef check_grid():\r\n for i in range(8):\r\n v = [row[i] for row in grid]\r\n h = grid[i]\r\n check_line(v)\r\n check_line(h)\r\n\r\n#檢查某一行連線\r\ndef check_line(arr):\r\n global combo, count\r\n for i in range(6):\r\n a = arr[i + 0]\r\n b = arr[i + 1]\r\n c = arr[i + 2]\r\n if a.costume_id % 8 == b.costume_id % 8 == c.costume_id % 8:\r\n if a.costume_id \u003c 8:\r\n a.costume_id += 8\r\n combo += 1\r\n count += 1\r\n create_sound(str(combo % 4) + '.wav')\r\n if b.costume_id \u003c 8: b.costume_id += 8\r\n if c.costume_id \u003c 8: c.costume_id += 8\r\n\r\n#遊戲結束\r\ndef gameover():\r\n info.costume_id = 1\r\n info.hidden = False\r\n info.y = -450\r\n \r\n#畫面點擊\r\ndef click():\r\n global X, Y, combo, count\r\n x = (cursor.x - 90) // 100\r\n y = (cursor.y - 50) // 100\r\n if x \u003c 0 or y \u003c 0 or x \u003e 7 or y \u003e 7 or not info.hidden: return\r\n if X == None or abs(X - x) + abs(Y - y) \u003e 1:\r\n X = x\r\n Y = y\r\n target.move_to(grid[x][y])\r\n target.hidden = False\r\n create_sound('click.wav')\r\n else:\r\n swap(x, y, X, Y)\r\n X = None\r\n Y = None\r\n line.y -= 50\r\n combo = 0\r\n target.hidden = True\r\n\r\n#交換兩個角色位置\r\ndef swap(x1, y1, x2, y2):\r\n \r\n a = grid[x1][y1]\r\n b = grid[x2][y2]\r\n grid[x1][y1] = b\r\n grid[x2][y2] = a\r\n\r\nforever(loop) #不斷執行遊戲迴圈\r\non('click', click) #當畫面被點擊時\r\ninfo.on('click', start_game) #點擊說明圖開始遊戲","created_at":"2025-04-28T18:59:38.506+08:00","updated_at":"2025-06-10T15:56:09.630+08:00","name":"5_動物管理員_預設版 副本","language":"python","screenshot":{"url":"https://cdn0.koding.school/uploads/project/screenshot/1000606/d6d3574efe39a0d25ad674af9598c446.jpg"},"parent_id":874502,"plugin":"","description":null,"note":null,"status":"public","like_student_ids":[],"is_featured":false,"views":39,"hashid":"6rpsdq8vv","is_content_changed":false,"review_status":"unsubmitted","submitted_at":null,"reviewed_at":null,"advise":null,"is_deleted":false}
[{"id":37986131,"file_name":"0.wav","project_id":1000606,"asset_id":788658,"created_at":"2025-04-28T18:59:38.511+08:00","updated_at":"2025-04-28T18:59:38.511+08:00"},{"id":37986132,"file_name":"1.wav","project_id":1000606,"asset_id":788659,"created_at":"2025-04-28T18:59:38.512+08:00","updated_at":"2025-04-28T18:59:38.512+08:00"},{"id":37986133,"file_name":"3.wav","project_id":1000606,"asset_id":788660,"created_at":"2025-04-28T18:59:38.513+08:00","updated_at":"2025-04-28T18:59:38.513+08:00"},{"id":37986134,"file_name":"2.wav","project_id":1000606,"asset_id":788661,"created_at":"2025-04-28T18:59:38.514+08:00","updated_at":"2025-04-28T18:59:38.514+08:00"},{"id":37986135,"file_name":"line.png","project_id":1000606,"asset_id":788662,"created_at":"2025-04-28T18:59:38.515+08:00","updated_at":"2025-04-28T18:59:38.515+08:00"},{"id":37986136,"file_name":"end.png","project_id":1000606,"asset_id":788663,"created_at":"2025-04-28T18:59:38.516+08:00","updated_at":"2025-04-28T18:59:38.516+08:00"},{"id":37986137,"file_name":"bgm.mp3","project_id":1000606,"asset_id":788664,"created_at":"2025-04-28T18:59:38.517+08:00","updated_at":"2025-04-28T18:59:38.517+08:00"},{"id":37986138,"file_name":"bg.png","project_id":1000606,"asset_id":788665,"created_at":"2025-04-28T18:59:38.518+08:00","updated_at":"2025-04-28T18:59:38.518+08:00"},{"id":37986139,"file_name":"cover.png","project_id":1000606,"asset_id":788666,"created_at":"2025-04-28T18:59:38.519+08:00","updated_at":"2025-04-28T18:59:38.519+08:00"},{"id":37986140,"file_name":"rules.png","project_id":1000606,"asset_id":788667,"created_at":"2025-04-28T18:59:38.519+08:00","updated_at":"2025-04-28T18:59:38.519+08:00"},{"id":37986141,"file_name":"target.png","project_id":1000606,"asset_id":788668,"created_at":"2025-04-28T18:59:38.520+08:00","updated_at":"2025-04-28T18:59:38.520+08:00"},{"id":37986142,"file_name":"2.png","project_id":1000606,"asset_id":788669,"created_at":"2025-04-28T18:59:38.521+08:00","updated_at":"2025-04-28T18:59:38.521+08:00"},{"id":37986143,"file_name":"3.png","project_id":1000606,"asset_id":788670,"created_at":"2025-04-28T18:59:38.522+08:00","updated_at":"2025-04-28T18:59:38.522+08:00"},{"id":37986144,"file_name":"click.wav","project_id":1000606,"asset_id":788671,"created_at":"2025-04-28T18:59:38.523+08:00","updated_at":"2025-04-28T18:59:38.523+08:00"},{"id":37986145,"file_name":"0.png","project_id":1000606,"asset_id":788672,"created_at":"2025-04-28T18:59:38.524+08:00","updated_at":"2025-04-28T18:59:38.524+08:00"},{"id":37986146,"file_name":"1.png","project_id":1000606,"asset_id":788673,"created_at":"2025-04-28T18:59:38.525+08:00","updated_at":"2025-04-28T18:59:38.525+08:00"},{"id":37986147,"file_name":"14.png","project_id":1000606,"asset_id":788674,"created_at":"2025-04-28T18:59:38.525+08:00","updated_at":"2025-04-28T18:59:38.525+08:00"},{"id":37986148,"file_name":"15.png","project_id":1000606,"asset_id":788675,"created_at":"2025-04-28T18:59:38.526+08:00","updated_at":"2025-04-28T18:59:38.526+08:00"},{"id":37986149,"file_name":"4.png","project_id":1000606,"asset_id":788676,"created_at":"2025-04-28T18:59:38.527+08:00","updated_at":"2025-04-28T18:59:38.527+08:00"},{"id":37986150,"file_name":"5.png","project_id":1000606,"asset_id":788677,"created_at":"2025-04-28T18:59:38.528+08:00","updated_at":"2025-04-28T18:59:38.528+08:00"},{"id":37986151,"file_name":"alarm.ogg","project_id":1000606,"asset_id":788678,"created_at":"2025-04-28T18:59:38.529+08:00","updated_at":"2025-04-28T18:59:38.529+08:00"},{"id":37986152,"file_name":"8.png","project_id":1000606,"asset_id":788679,"created_at":"2025-04-28T18:59:38.530+08:00","updated_at":"2025-04-28T18:59:38.530+08:00"},{"id":37986153,"file_name":"9.png","project_id":1000606,"asset_id":788680,"created_at":"2025-04-28T18:59:38.531+08:00","updated_at":"2025-04-28T18:59:38.531+08:00"},{"id":37986154,"file_name":"10.png","project_id":1000606,"asset_id":788681,"created_at":"2025-04-28T18:59:38.531+08:00","updated_at":"2025-04-28T18:59:38.531+08:00"},{"id":37986155,"file_name":"11.png","project_id":1000606,"asset_id":788682,"created_at":"2025-04-28T18:59:38.532+08:00","updated_at":"2025-04-28T18:59:38.532+08:00"},{"id":37986156,"file_name":"12.png","project_id":1000606,"asset_id":788683,"created_at":"2025-04-28T18:59:38.533+08:00","updated_at":"2025-04-28T18:59:38.533+08:00"},{"id":37986157,"file_name":"13.png","project_id":1000606,"asset_id":788684,"created_at":"2025-04-28T18:59:38.534+08:00","updated_at":"2025-04-28T18:59:38.534+08:00"},{"id":37986158,"file_name":"bgm.wav","project_id":1000606,"asset_id":788685,"created_at":"2025-04-28T18:59:38.535+08:00","updated_at":"2025-04-28T18:59:38.535+08:00"},{"id":37986159,"file_name":"6.png","project_id":1000606,"asset_id":788686,"created_at":"2025-04-28T18:59:38.536+08:00","updated_at":"2025-04-28T18:59:38.536+08:00"},{"id":37986160,"file_name":"7.png","project_id":1000606,"asset_id":788687,"created_at":"2025-04-28T18:59:38.537+08:00","updated_at":"2025-04-28T18:59:38.537+08:00"},{"id":37986161,"file_name":"alert.wav","project_id":1000606,"asset_id":788688,"created_at":"2025-04-28T18:59:38.537+08:00","updated_at":"2025-04-28T18:59:38.537+08:00"}]
橘蘋學習平台
我的作品
檢視專案頁
匯出
複製
匯入
刪除
截圖
繁中
简中
English
日本語
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦