{"id":1076135,"student_id":2589,"content":"import random\r\nimport game\r\n\r\ngame.set_backdrop('bg_grid.jpg')\r\nfood = game.create_sprite('apple.png', 'orange.png')\r\nhead = game.create_sprite('head.png')\r\nhint = game.create_sprite('hint.png')\r\ngame_over = game.create_sprite('gameover.png')\r\ntail = game.create_sprite('body.png', 'body_left.png', 'body_right.png', 'tail.png')\r\n\r\ntail.costume_id = 3\r\n\r\nfood.layer = 1\r\nhead.layer = 2\r\ngame_over.layer = 3\r\n\r\ngame_over.hidden = True\r\n\r\nclock = 0\r\nnext_direction = 90\r\nbodies = [tail]\r\nis_start = False\r\nlevel = 0\r\n\r\nfood.move_to(930, 450)\r\nhead.move_to(270, 450)\r\ntail.move_to(210, 450)\r\nhint.move_to(270, 450)\r\n\r\n\r\n\r\ndef loop():\r\n global clock, next_direction, is_start, level, bodies\r\n\r\n if game.key.up and head.direction != 180:\r\n next_direction = 0\r\n is_start = True\r\n \r\n if game.key.right and head.direction != 270:\r\n next_direction = 90\r\n is_start = True\r\n \r\n if game.key.down and head.direction != 0:\r\n next_direction = 180\r\n is_start = True\r\n \r\n if game.key.left and head.direction != 90:\r\n next_direction = 270\r\n is_start = True\r\n \r\n hint.hidden = is_start\r\n \r\n level = (len(bodies) - 1) // 5\r\n if level \u003e 10:\r\n level = 10\r\n \r\n clock += 1\r\n\r\n if clock % (15 - level) == 0 and is_start:\r\n if head.touched(food):\r\n food.x = random.randrange(20) * 60 + 30\r\n food.y = random.randrange(15) * 60 + 30\r\n \r\n b = game.create_sprite('body.png', 'body_left.png', 'body_right.png', 'tail.png')\r\n b.move_to(head)\r\n bodies.append(b)\r\n \r\n if len(bodies) \u003e 0:\r\n b = bodies.pop()\r\n b.move_to(head)\r\n bodies = [b] + bodies\r\n update_bodies_costume()\r\n \r\n head.direction = next_direction\r\n head.step_forward(60)\r\n \r\n if head.touched(bodies):\r\n game.stop()\r\n game_over.hidden = False\r\n game.draw_text(len(bodies) - 1, 550, 430, 'white', 80)\r\n \r\n if head.x \u003e 1200:\r\n head.x -= 1200\r\n \r\n if head.x \u003c 0:\r\n head.x += 1200\r\n \r\n if head.y \u003e 900:\r\n head.y -= 900\r\n \r\n if head.y \u003c 0:\r\n head.y += 900\r\n \r\n if clock % 20 == 0:\r\n if food.scale == 1:\r\n food.scale = 0.8\r\n hint.scale = 0.8\r\n else:\r\n food.scale = 1\r\n hint.scale = 1\r\n \r\n game.draw_text(len(bodies) - 1, 10, 10, 'white', 40)\r\n\r\n\r\ngame.forever(loop)\r\n\r\n\r\n\r\ndef update_bodies_costume():\r\n diff = next_direction - head.direction\r\n\r\n if diff == 0:\r\n bodies[0].costume_id = 0\r\n \r\n if diff == -90 or diff == 270:\r\n bodies[0].costume_id = 1\r\n \r\n if diff == 90 or diff == -270:\r\n bodies[0].costume_id = 2\r\n \r\n bodies[0].direction = next_direction\r\n\r\n bodies[-1].costume_id = 3","created_at":"2025-07-31T21:59:55.649+08:00","updated_at":"2025-07-31T22:00:12.889+08:00","name":"スネークゲーム","language":"python","screenshot":{"url":null},"parent_id":1076133,"plugin":"","description":null,"note":null,"status":"public","like_student_ids":[],"is_featured":false,"views":33,"hashid":"vngsv8nn8","is_content_changed":false,"review_status":"unsubmitted","submitted_at":null,"reviewed_at":null,"advise":null,"is_deleted":false}
[{"id":40067800,"file_name":"bg_grid.jpg","project_id":1076135,"asset_id":251902,"created_at":"2025-07-31T21:59:55.655+08:00","updated_at":"2025-07-31T21:59:55.655+08:00"},{"id":40067801,"file_name":"bg.jpg","project_id":1076135,"asset_id":251903,"created_at":"2025-07-31T21:59:55.657+08:00","updated_at":"2025-07-31T21:59:55.657+08:00"},{"id":40067802,"file_name":"body_left.png","project_id":1076135,"asset_id":251904,"created_at":"2025-07-31T21:59:55.658+08:00","updated_at":"2025-07-31T21:59:55.658+08:00"},{"id":40067803,"file_name":"body.png","project_id":1076135,"asset_id":251905,"created_at":"2025-07-31T21:59:55.659+08:00","updated_at":"2025-07-31T21:59:55.659+08:00"},{"id":40067804,"file_name":"apple.png","project_id":1076135,"asset_id":251906,"created_at":"2025-07-31T21:59:55.660+08:00","updated_at":"2025-07-31T21:59:55.660+08:00"},{"id":40067805,"file_name":"gameover.png","project_id":1076135,"asset_id":251907,"created_at":"2025-07-31T21:59:55.661+08:00","updated_at":"2025-07-31T21:59:55.661+08:00"},{"id":40067806,"file_name":"head.png","project_id":1076135,"asset_id":251908,"created_at":"2025-07-31T21:59:55.662+08:00","updated_at":"2025-07-31T21:59:55.662+08:00"},{"id":40067807,"file_name":"hint.png","project_id":1076135,"asset_id":251909,"created_at":"2025-07-31T21:59:55.663+08:00","updated_at":"2025-07-31T21:59:55.663+08:00"},{"id":40067808,"file_name":"tail.png","project_id":1076135,"asset_id":251910,"created_at":"2025-07-31T21:59:55.664+08:00","updated_at":"2025-07-31T21:59:55.664+08:00"},{"id":40067809,"file_name":"orange.png","project_id":1076135,"asset_id":251911,"created_at":"2025-07-31T21:59:55.665+08:00","updated_at":"2025-07-31T21:59:55.665+08:00"},{"id":40067810,"file_name":"bling.ogg","project_id":1076135,"asset_id":251912,"created_at":"2025-07-31T21:59:55.666+08:00","updated_at":"2025-07-31T21:59:55.666+08:00"},{"id":40067811,"file_name":"bgm.mp3","project_id":1076135,"asset_id":251913,"created_at":"2025-07-31T21:59:55.667+08:00","updated_at":"2025-07-31T21:59:55.667+08:00"},{"id":40067812,"file_name":"body_right.png","project_id":1076135,"asset_id":251914,"created_at":"2025-07-31T21:59:55.668+08:00","updated_at":"2025-07-31T21:59:55.668+08:00"}]
橘蘋學習平台
我的作品
檢視專案頁
匯出
複製
匯入
刪除
截圖
繁中
简中
English
日本語
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦