{"id":172288,"student_id":10,"content":"import random #載入產生隨機數的套件\nfrom game import (\n set_backdrop, #設定背景\n create_sprite, #創造角色\n create_sound, #創造音效\n draw_text, #繪製文字\n key, #鍵盤狀態\n forever, #重複不斷執行\n stop, #遊戲結束\n)\n\nset_backdrop('bg.jpg') #設定背景圖\nfood = create_sprite('applee.png', 'orange.png') #食物\nhead = create_sprite('head.png') #蛇頭\nhint = create_sprite('hint.png') #遊戲開始示意圖\ngameover = create_sprite('gameover.png') #遊戲結束示意圖\ntail = create_sprite('body.png', 'body_left.png', 'body_right.png', 'tail.png') #蛇尾\n\n# 設定蛇頭、食物、遊戲結束示意圖的圖層順序\nfood.layer = 1\nhead.layer = 2\ngameover.layer = 3\n\ngameover.hidden = True #預設隱藏遊戲結束示意圖\nhint.hidden = True # 預設隱藏遊戲開始示意圖\n\nclock = 0 #計數器\nnext_direction = 90 #蛇下次移動的方向\nbodies = [tail] # 用來存放蛇的身體\nis_start = False #是否開始遊戲\nlevel = 0 #分數等級用來計算移動速度\n\nfood.move_to(930, 450) #(60*15 + 30, 60*7 + 30)\nhead.move_to(330, 450) #(60*5 + 30, 60*7 + 30)\ntail.move_to(270, 450) #(60*4 + 30, 60*7 + 30)\ntail.costume_id = 3\nhint.move_to(head) #將箭頭提示圖移動到蛇頭位置\n\ncreate_sound('bgm.mp3', True)\n\n# 遊戲主迴圈\ndef loop ():\n global clock, next_direction, is_start, level, bodies\n \n if key.up and head.direction != 180:\n next_direction = 0\n is_start = True\n \n if key.right and head.direction != 270:\n next_direction = 90\n is_start = True\n \n if key.down and head.direction != 0:\n next_direction = 180\n is_start = True\n \n if key.left and head.direction != 90:\n next_direction = 270\n is_start = True\n \n hint.hidden = is_start #遊戲開始就隱藏箭頭提示\n\n clock += 1\n if clock % (12 - level) == 0 and is_start:\n \n if head.touched(food):\n food.x = random.randrange(20)*60 + 30\n food.y = random.randrange(15)*60 + 30\n b = create_sprite('body.png', 'body_left.png', 'body_right.png', 'tail.png')\n b.x = head.x\n b.y = head.y\n bodies.append(b)\n create_sound('bling.ogg')\n \n if len(bodies) \u003e 0:\n b = bodies.pop() #移出身體最後面的角色\n b.x = head.x\n b.y = head.y\n bodies = [b] + bodies #放入身體最前面\n update_costumes()\n \n head.direction = next_direction\n head.stepForward(60) #移動一格\n\n # #蛇撞到身體就結束遊戲\n if head.touched(bodies):\n stop()\n gameover.hidden = False\n draw_text(len(bodies) - 1, 550, 430, 'white', 80)\n \n draw_text(len(bodies) - 1, 10, 10, 'white', 40)\n\n level = (len(bodies) - 1)//5\n if level \u003e 10:\n level = 10\n \n if head.x \u003c 0:\n head.x += 1200\n \n if head.x \u003e 1200:\n head.x -= 1200\n \n if head.y \u003c 0:\n head.y += 900\n \n if head.y \u003e 900:\n head.y -= 900\n \n # 角色縮放動畫\n if clock % 20 == 0:\n if hint.scale == 1:\n hint.scale = 0.8\n food.scale = 1\n else:\n hint.scale = 1\n food.scale = 0.8\n\n\ndef update_costumes():\n diff = next_direction - head.direction\n if diff == 0: #蛇向前移動\n bodies[0].costume_id = 0\n \n if diff == -90 or diff == 270: #蛇左轉移動\n bodies[0].costume_id = 1\n \n if diff == 90 or diff == -270: #蛇右轉移動\n bodies[0].costume_id = 2\n \n bodies[0].direction = next_direction\n \n bodies[-1].costume_id = 3 # 蛇身體最後的部分設為尾巴\n \n\nforever(loop) #不斷執行遊戲迴圈\n\n","created_at":"2020-07-27T18:37:02.349+08:00","updated_at":"2020-10-21T10:31:44.095+08:00","name":"貪食蛇(完整版)","language":"python","screenshot":{"url":"/uploads/project/screenshot/172288/51ed5193b4172a1bacd62cef00b056d4.jpg"},"parent_id":4,"plugin":"","description":null,"note":null,"status":"public","like_student_ids":[],"is_featured":false,"views":444,"hashid":"kdmskmpy","is_content_changed":false,"review_status":"unsubmitted","submitted_at":null,"reviewed_at":null,"advise":null,"is_deleted":false}
[{"id":2969184,"file_name":"body_left.png","project_id":172288,"asset_id":243401,"created_at":"2020-07-27T18:51:52.707+08:00","updated_at":"2020-07-27T18:51:52.707+08:00"},{"id":2971027,"file_name":"bgm.mp3","project_id":172288,"asset_id":172576,"created_at":"2020-07-28T10:47:06.199+08:00","updated_at":"2020-07-28T10:47:06.199+08:00"},{"id":2969200,"file_name":"tail.png","project_id":172288,"asset_id":243409,"created_at":"2020-07-27T18:52:46.632+08:00","updated_at":"2020-07-28T10:35:33.007+08:00"},{"id":2969199,"file_name":"hint.png","project_id":172288,"asset_id":243408,"created_at":"2020-07-27T18:52:46.631+08:00","updated_at":"2020-07-28T10:35:36.033+08:00"},{"id":2969198,"file_name":"head.png","project_id":172288,"asset_id":243407,"created_at":"2020-07-27T18:52:46.392+08:00","updated_at":"2020-07-28T10:35:38.802+08:00"},{"id":2969197,"file_name":"gameover.png","project_id":172288,"asset_id":243406,"created_at":"2020-07-27T18:52:46.390+08:00","updated_at":"2020-07-28T10:35:41.040+08:00"},{"id":2969180,"file_name":"bg.jpg","project_id":172288,"asset_id":243399,"created_at":"2020-07-27T18:51:51.133+08:00","updated_at":"2020-07-28T10:50:10.706+08:00"},{"id":2969186,"file_name":"body.png","project_id":172288,"asset_id":243403,"created_at":"2020-07-27T18:51:53.019+08:00","updated_at":"2020-07-27T18:51:53.019+08:00"},{"id":2969187,"file_name":"applee.png","project_id":172288,"asset_id":243404,"created_at":"2020-07-27T18:51:53.020+08:00","updated_at":"2020-07-28T10:21:47.913+08:00"},{"id":2971026,"file_name":"bling.ogg","project_id":172288,"asset_id":172579,"created_at":"2020-07-28T10:46:43.207+08:00","updated_at":"2020-07-28T10:46:43.207+08:00"},{"id":2971048,"file_name":"body_right.png","project_id":172288,"asset_id":210010,"created_at":"2020-07-28T10:48:31.422+08:00","updated_at":"2020-07-28T10:48:31.422+08:00"},{"id":2969188,"file_name":"orange.png","project_id":172288,"asset_id":243405,"created_at":"2020-07-27T18:51:53.469+08:00","updated_at":"2020-07-28T10:21:40.737+08:00"}]
Orange Apple Learning Platform
My Projects
View Project Page
Export
Remix
Import
Delete
Screenshot
繁中
简中
English
日本語
Scan the QRCode below with your phone to install
Or you can
download APK
to this computer