{"id":1076134,"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:52.515+08:00","updated_at":"2025-07-31T22:00:08.108+08:00","name":"Snake","language":"python","screenshot":{"url":null},"parent_id":1076132,"plugin":"","description":null,"note":null,"status":"public","like_student_ids":[],"is_featured":false,"views":33,"hashid":"ej9s5r66p","is_content_changed":false,"review_status":"unsubmitted","submitted_at":null,"reviewed_at":null,"advise":null,"is_deleted":false}
[{"id":40067787,"file_name":"bg_grid.jpg","project_id":1076134,"asset_id":251902,"created_at":"2025-07-31T21:59:52.521+08:00","updated_at":"2025-07-31T21:59:52.521+08:00"},{"id":40067788,"file_name":"bg.jpg","project_id":1076134,"asset_id":251903,"created_at":"2025-07-31T21:59:52.522+08:00","updated_at":"2025-07-31T21:59:52.522+08:00"},{"id":40067789,"file_name":"body_left.png","project_id":1076134,"asset_id":251904,"created_at":"2025-07-31T21:59:52.523+08:00","updated_at":"2025-07-31T21:59:52.523+08:00"},{"id":40067790,"file_name":"body.png","project_id":1076134,"asset_id":251905,"created_at":"2025-07-31T21:59:52.525+08:00","updated_at":"2025-07-31T21:59:52.525+08:00"},{"id":40067791,"file_name":"apple.png","project_id":1076134,"asset_id":251906,"created_at":"2025-07-31T21:59:52.526+08:00","updated_at":"2025-07-31T21:59:52.526+08:00"},{"id":40067792,"file_name":"gameover.png","project_id":1076134,"asset_id":251907,"created_at":"2025-07-31T21:59:52.526+08:00","updated_at":"2025-07-31T21:59:52.526+08:00"},{"id":40067793,"file_name":"head.png","project_id":1076134,"asset_id":251908,"created_at":"2025-07-31T21:59:52.527+08:00","updated_at":"2025-07-31T21:59:52.527+08:00"},{"id":40067794,"file_name":"hint.png","project_id":1076134,"asset_id":251909,"created_at":"2025-07-31T21:59:52.528+08:00","updated_at":"2025-07-31T21:59:52.528+08:00"},{"id":40067795,"file_name":"tail.png","project_id":1076134,"asset_id":251910,"created_at":"2025-07-31T21:59:52.529+08:00","updated_at":"2025-07-31T21:59:52.529+08:00"},{"id":40067796,"file_name":"orange.png","project_id":1076134,"asset_id":251911,"created_at":"2025-07-31T21:59:52.530+08:00","updated_at":"2025-07-31T21:59:52.530+08:00"},{"id":40067797,"file_name":"bling.ogg","project_id":1076134,"asset_id":251912,"created_at":"2025-07-31T21:59:52.531+08:00","updated_at":"2025-07-31T21:59:52.531+08:00"},{"id":40067798,"file_name":"bgm.mp3","project_id":1076134,"asset_id":251913,"created_at":"2025-07-31T21:59:52.532+08:00","updated_at":"2025-07-31T21:59:52.532+08:00"},{"id":40067799,"file_name":"body_right.png","project_id":1076134,"asset_id":251914,"created_at":"2025-07-31T21:59:52.533+08:00","updated_at":"2025-07-31T21:59:52.533+08:00"}]
橘蘋學習平台
我的作品
檢視專案頁
匯出
複製
匯入
刪除
截圖
繁中
简中
English
日本語
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦