{"id":101067,"date":"2022-04-13T15:34:03","date_gmt":"2022-04-13T07:34:03","guid":{"rendered":"http:\/\/www.zhushiyao.com\/?p=101067"},"modified":"2022-04-13T15:34:57","modified_gmt":"2022-04-13T07:34:57","slug":"ecbc20516f","status":"publish","type":"post","link":"http:\/\/www.zhushiyao.com\/?p=101067","title":{"rendered":"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f"},"content":{"rendered":"<div class=\"bpp-post-content\">\n<blockquote class=\"js_blockquote_wrap\">\n<section class=\"js_blockquote_digest\">\n<section>\n<section style=\"text-align: left;\"><span style=\"color: #0052ff;\"><strong><span style=\"font-size: 14px;\">\u6765\u6e90\uff1a\u7f16\u7a0b\u5ba2\u6808\uff0c\u7f51\u7edc\u6574\u7406<\/span><\/strong><\/span><\/section>\n<section style=\"text-align: left;\"><span style=\"color: #0052ff;\"><strong><span style=\"font-size: 14px;\">\u94fe\u63a5\uff1ahttp:\/\/www.cppcns.com\/jiaoben\/python\/425387.html<\/span><\/strong><\/span><\/section>\n<\/section>\n<\/section>\n<\/blockquote>\n<p style=\"text-align: left;\"><strong><span style=\"font-family: 'Microsoft YaHei', Arial, Verdana, Tahoma, sans-serif; text-align: start; background-color: #ffffff; color: #000000; font-size: 15px;\">\u4ec5\u9650\u6280\u672f\u5b66\u4e60\u53c2\u8003<\/span><\/strong><\/p>\n<p style=\"text-align: left;\">\n<p style=\"text-align: left;\"><span style=\"font-family: 'Microsoft YaHei', Arial, Verdana, Tahoma, sans-serif; text-align: start; background-color: #ffffff; color: #000000; font-size: 15px;\">\u5206\u4eab13\u4e2a\u6e38\u620f\u6e90\u7801\uff0c\u53ef\u4ee5\u81ea\u5df1\u590d\u73b0\u73a9\u73a9\uff0c\u7814\u7a76\u4e0b\u91cc\u9762\u7684\u7f16\u7a0b\u903b\u8f91\uff0c\u5bf9\u5b66\u4e60\u7f16\u7a0b\uff08\u7279\u522b\u662f\u521d\u5b66\u8005\uff09\u5e94\u8be5\u4f1a\u6709\u5f88\u5927\u5e2e\u52a9\u3002<\/span><\/p>\n<h2 style=\"margin-top: 30px; margin-bottom: 15px; outline: 0px; font-weight: bold; font-size: 1.3em; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; text-align: left; white-space: normal; background-color: #ffffff; border-bottom: 2px solid #ef7060;\"><span style=\"margin-right: 3px; padding: 3px 10px 1px; outline: 0px; display: inline-block; background: #ef7060; color: #ffffff; border-top-right-radius: 3px; border-top-left-radius: 3px;\">1\u3001\u5403\u91d1\u5e01<\/span><\/h2>\n<figure style=\"margin-top: 10px; margin-bottom: 10px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; display: flex; flex-direction: column; justify-content: center; align-items: center;\"><img decoding=\"async\" class=\"rich_pages wxw-img __bg_gif\" style=\"margin-right: auto; margin-left: auto; outline: 0px; display: block; box-sizing: border-box !important; width: 558px !important; visibility: visible !important;\" title=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" src=\"http:\/\/www.zhushiyao.com\/wp-content\/uploads\/2022\/04\/7-1649835243.gif\" alt=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" \/><\/figure>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\"><span style=\"font-size: 15px;\">\u6e90\u7801\u5206\u4eab\uff1a<\/span><\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; outline: 0px; color: #000000; font-size: 16px; text-align: left; background-color: #ffffff; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"padding: 15px 16px 16px; outline: 0px; overflow-x: auto; color: #abb2bf; display: -webkit-box; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; font-size: 12px; background: #282c34; border-radius: 5px;\">import\u00a0os<br style=\"outline: 0px;\" \/>import\u00a0cfg<br style=\"outline: 0px;\" \/>import\u00a0sys<br style=\"outline: 0px;\" \/>import\u00a0pygame<br style=\"outline: 0px;\" \/>import\u00a0random<br style=\"outline: 0px;\" \/>from\u00a0modules\u00a0import\u00a0*<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u6e38\u620f\u521d\u59cb\u5316'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0initGame():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u521d\u59cb\u5316pygame,\u00a0\u8bbe\u7f6e\u5c55\u793a\u7a97\u53e3<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.init()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0screen\u00a0=\u00a0pygame.display.set_mode(cfg.SCREENSIZE)<br style=\"outline: 0px;\" \/><\/code><\/pre>\n<p><code style=\"padding: 15px 16px 16px; outline: 0px; overflow-x: auto; color: #abb2bf; display: -webkit-box; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; font-size: 12px; background: #282c34; border-radius: 5px;\">\u00a0\u00a0\u00a0\u00a0<\/code><code style=\"padding: 15px 16px 16px; outline: 0px; overflow-x: auto; color: #abb2bf; display: -webkit-box; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; font-size: 12px; background: #282c34; border-radius: 5px;\"><br \/>\n<\/code><code style=\"padding: 15px 16px 16px; outline: 0px; overflow-x: auto; color: #abb2bf; display: -webkit-box; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; font-size: 12px; background: #282c34; border-radius: 5px;\"><br \/>\n<\/code><\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; outline: 0px; color: #000000; font-size: 16px; text-align: left; background-color: #ffffff; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"padding: 15px 16px 16px; outline: 0px; overflow-x: auto; color: #abb2bf; display: -webkit-box; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; font-size: 12px; background: #282c34; border-radius: 5px;\">\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u52a0\u8f7d\u5fc5\u8981\u7684\u6e38\u620f\u7d20\u6750<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0game_images\u00a0=\u00a0{}<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0key,\u00a0value\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0cfg.IMAGE_PATHS.items():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0isinstance(value,\u00a0list):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0images\u00a0=\u00a0[]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0item\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0value:\u00a0images.append(pygame.image.load(item))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0game_images[key]\u00a0=\u00a0images<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0game_images[key]\u00a0=\u00a0pygame.image.load(value)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0game_sounds\u00a0=\u00a0{}<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0key,\u00a0value\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0cfg.AUDIO_PATHS.items():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0key\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'bgm'<\/span>:\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">continue<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0game_sounds[key]\u00a0=\u00a0pygame.mixer.Sound(value)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u8fd4\u56de\u521d\u59cb\u5316\u6570\u636e<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span>\u00a0screen,\u00a0game_images,\u00a0game_sounds<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u4e3b\u51fd\u6570'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0main():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u521d\u59cb\u5316<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0screen,\u00a0game_images,\u00a0game_sounds\u00a0=\u00a0initGame()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u64ad\u653e\u80cc\u666f\u97f3\u4e50<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.music.load(cfg.AUDIO_PATHS[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'bgm'<\/span>])<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.music.play(-1,\u00a00.0)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u5b57\u4f53\u52a0\u8f7d<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0font\u00a0=\u00a0pygame.font.Font(cfg.FONT_PATH,\u00a040)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u5b9a\u4e49hero<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0hero\u00a0=\u00a0Hero(game_images[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'hero'<\/span>],\u00a0position=(375,\u00a0520))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u5b9a\u4e49\u98df\u7269\u7ec4<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0food_sprites_group\u00a0=\u00a0pygame.sprite.Group()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0generate_food_freq\u00a0=\u00a0random.randint(10,\u00a020)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0generate_food_count\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u5f53\u524d\u5206\u6570\/\u5386\u53f2\u6700\u9ad8\u5206<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0score\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0highest_score\u00a0=\u00a00\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0not\u00a0os.path.exists(cfg.HIGHEST_SCORE_RECORD_FILEPATH)\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>\u00a0int(open(cfg.HIGHEST_SCORE_RECORD_FILEPATH).<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">read<\/span>())<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6e38\u620f\u4e3b\u5faa\u73af<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0clock\u00a0=\u00a0pygame.time.Clock()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">while<\/span>\u00a0True:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u586b\u5145\u80cc\u666f<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0screen.fill(0)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0screen.blit(game_images[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'background'<\/span>],\u00a0(0,\u00a00))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u5012\u8ba1\u65f6\u4fe1\u606f<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0countdown_text\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Count\u00a0down:\u00a0'<\/span>\u00a0+\u00a0str((90000\u00a0-\u00a0pygame.time.get_ticks())\u00a0\/\/\u00a060000)\u00a0+\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\":\"<\/span>\u00a0+\u00a0str((90000\u00a0-\u00a0pygame.time.get_ticks())\u00a0\/\/\u00a01000\u00a0%\u00a060).zfill(2)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0countdown_text\u00a0=\u00a0font.render(countdown_text,\u00a0True,\u00a0(0,\u00a00,\u00a00))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0countdown_rect\u00a0=\u00a0countdown_text.get_rect()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0countdown_rect.topright\u00a0=\u00a0[cfg.SCREENSIZE[0]-30,\u00a05]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0screen.blit(countdown_text,\u00a0countdown_rect)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u6309\u952e\u68c0\u6d4b<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0event\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0pygame.event.get():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.type\u00a0==\u00a0pygame.QUIT:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.quit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sys.exit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0key_pressed\u00a0=\u00a0pygame.key.get_pressed()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0key_pressed[pygame.K_a]\u00a0or\u00a0key_pressed[pygame.K_LEFT]:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0hero.move(cfg.SCREENSIZE,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'left'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0key_pressed[pygame.K_d]\u00a0or\u00a0key_pressed[pygame.K_RIGHT]:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0hero.move(cfg.SCREENSIZE,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'right'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u968f\u673a\u751f\u6210\u98df\u7269<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0generate_food_count\u00a0+=\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0generate_food_count\u00a0&gt;\u00a0generate_food_freq:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0generate_food_freq\u00a0=\u00a0random.randint(10,\u00a020)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0generate_food_count\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0food\u00a0=\u00a0Food(game_images,\u00a0random.choice([<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'gold'<\/span>,]\u00a0*\u00a010\u00a0+\u00a0[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'apple'<\/span>]),\u00a0cfg.SCREENSIZE)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0food_sprites_group.add(food)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u66f4\u65b0\u98df\u7269<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0food\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0food_sprites_group:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0food.update():\u00a0food_sprites_group.remove(food)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u78b0\u649e\u68c0\u6d4b<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0food\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0food_sprites_group:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0pygame.sprite.collide_mask(food,\u00a0hero):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0game_sounds[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'get'<\/span>].play()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0food_sprites_group.remove(food)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0score\u00a0+=\u00a0food.score<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0score\u00a0&gt;\u00a0highest_score:\u00a0highest_score\u00a0=\u00a0score<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u753bhero<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0hero.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u753b\u98df\u7269<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0food_sprites_group.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u663e\u793a\u5f97\u5206<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0score_text\u00a0=\u00a0f<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Score:\u00a0{score},\u00a0Highest:\u00a0{highest_score}'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0score_text\u00a0=\u00a0font.render(score_text,\u00a0True,\u00a0(0,\u00a00,\u00a00))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0score_rect\u00a0=\u00a0score_text.get_rect()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0score_rect.topleft\u00a0=\u00a0[5,\u00a05]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0screen.blit(score_text,\u00a0score_rect)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u5224\u65ad\u6e38\u620f\u662f\u5426\u7ed3\u675f<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0pygame.time.get_ticks()\u00a0&gt;=\u00a090000:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">break<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u66f4\u65b0\u5c4f\u5e55<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.display.flip()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0clock.tick(cfg.FPS)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6e38\u620f\u7ed3\u675f,\u00a0\u8bb0\u5f55\u6700\u9ad8\u5206\u5e76\u663e\u793a\u6e38\u620f\u7ed3\u675f\u753b\u9762<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0fp\u00a0=\u00a0open(cfg.HIGHEST_SCORE_RECORD_FILEPATH,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'w'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0fp.write(str(highest_score))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0fp.close()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span>\u00a0showEndGameInterface(screen,\u00a0cfg,\u00a0score,\u00a0highest_score)<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''run'''<\/span><br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0__name__\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'__main__'<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">while<\/span>\u00a0main():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pass<br style=\"outline: 0px;\" \/><\/code><\/pre>\n<h2 style=\"margin-top: 30px; margin-bottom: 15px; outline: 0px; font-weight: bold; font-size: 1.3em; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; text-align: left; white-space: normal; background-color: #ffffff; border-bottom: 2px solid #ef7060;\"><span style=\"margin-right: 3px; padding: 3px 10px 1px; outline: 0px; display: inline-block; background: #ef7060; color: #ffffff; border-top-right-radius: 3px; border-top-left-radius: 3px;\">2\u3001\u6253\u4e52\u4e53<\/span><\/h2>\n<figure style=\"margin-top: 10px; margin-bottom: 10px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; display: flex; flex-direction: column; justify-content: center; align-items: center;\"><img decoding=\"async\" class=\"rich_pages wxw-img __bg_gif\" style=\"margin-right: auto; margin-left: auto; outline: 0px; display: block; box-sizing: border-box !important; width: 558px !important; visibility: visible !important;\" title=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" src=\"http:\/\/www.zhushiyao.com\/wp-content\/uploads\/2022\/04\/0-1649835243.gif\" alt=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" \/><\/figure>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\"><span style=\"font-size: 15px;\">\u6e90\u7801\u5206\u4eab\uff1a<\/span><\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; outline: 0px; color: #000000; font-size: 16px; text-align: left; background-color: #ffffff; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"padding: 15px 16px 16px; outline: 0px; overflow-x: auto; color: #abb2bf; display: -webkit-box; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; font-size: 12px; background: #282c34; border-radius: 5px;\">\u00a0<br style=\"outline: 0px;\" \/>import\u00a0sys<br style=\"outline: 0px;\" \/>import\u00a0cfg<br style=\"outline: 0px;\" \/>import\u00a0pygame<br style=\"outline: 0px;\" \/>from\u00a0modules\u00a0import\u00a0*<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u5b9a\u4e49\u6309\u94ae'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0Button(screen,\u00a0position,\u00a0text,\u00a0button_size=(200,\u00a050)):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0left,\u00a0top\u00a0=\u00a0position<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0bwidth,\u00a0bheight\u00a0=\u00a0button_size<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.draw.line(screen,\u00a0(150,\u00a0150,\u00a0150),\u00a0(left,\u00a0top),\u00a0(left+bwidth,\u00a0top),\u00a05)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.draw.line(screen,\u00a0(150,\u00a0150,\u00a0150),\u00a0(left,\u00a0top-2),\u00a0(left,\u00a0top+bheight),\u00a05)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.draw.line(screen,\u00a0(50,\u00a050,\u00a050),\u00a0(left,\u00a0top+bheight),\u00a0(left+bwidth,\u00a0top+bheight),\u00a05)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.draw.line(screen,\u00a0(50,\u00a050,\u00a050),\u00a0(left+bwidth,\u00a0top+bheight),\u00a0(left+bwidth,\u00a0top),\u00a05)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.draw.rect(screen,\u00a0(100,\u00a0100,\u00a0100),\u00a0(left,\u00a0top,\u00a0bwidth,\u00a0bheight))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0font\u00a0=\u00a0pygame.font.Font(cfg.FONTPATH,\u00a030)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0text_render\u00a0=\u00a0font.render(text,\u00a01,\u00a0(255,\u00a0235,\u00a0205))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span>\u00a0screen.blit(text_render,\u00a0(left+50,\u00a0top+10))<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''<br style=\"outline: 0px;\" \/>Function:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u5f00\u59cb\u754c\u9762<br style=\"outline: 0px;\" \/>Input:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0--screen:\u00a0\u6e38\u620f\u754c\u9762<br style=\"outline: 0px;\" \/>Return:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0--game_mode:\u00a01(\u5355\u4eba\u6a21\u5f0f)\/2(\u53cc\u4eba\u6a21\u5f0f)<br style=\"outline: 0px;\" \/>'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0startInterface(screen):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0clock\u00a0=\u00a0pygame.time.Clock()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">while<\/span>\u00a0True:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0screen.fill((41,\u00a036,\u00a033))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0button_1\u00a0=\u00a0Button(screen,\u00a0(150,\u00a0175),\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'1\u00a0Player'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0button_2\u00a0=\u00a0Button(screen,\u00a0(150,\u00a0275),\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'2\u00a0Player'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0event\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0pygame.event.get():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.type\u00a0==\u00a0pygame.QUIT:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.quit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sys.exit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.type\u00a0==\u00a0pygame.MOUSEBUTTONDOWN:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0button_1.collidepoint(pygame.mouse.get_pos()):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span>\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0button_2.collidepoint(pygame.mouse.get_pos()):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span>\u00a02<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0clock.tick(10)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.display.update()<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u7ed3\u675f\u754c\u9762'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0endInterface(screen,\u00a0score_left,\u00a0score_right):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0clock\u00a0=\u00a0pygame.time.Clock()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0font1\u00a0=\u00a0pygame.font.Font(cfg.FONTPATH,\u00a030)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0font2\u00a0=\u00a0pygame.font.Font(cfg.FONTPATH,\u00a020)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0msg\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Player\u00a0on\u00a0left\u00a0won!'<\/span>\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0score_left\u00a0&gt;\u00a0score_right\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Player\u00a0on\u00a0right\u00a0won!'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0texts\u00a0=\u00a0[font1.render(msg,\u00a0True,\u00a0cfg.WHITE),<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0font2.render(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Press\u00a0ESCAPE\u00a0to\u00a0quit.'<\/span>,\u00a0True,\u00a0cfg.WHITE),<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0font2.render(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Press\u00a0ENTER\u00a0to\u00a0continue\u00a0or\u00a0play\u00a0again.'<\/span>,\u00a0True,\u00a0cfg.WHITE)]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0positions\u00a0=\u00a0[[120,\u00a0200],\u00a0[155,\u00a0270],\u00a0[80,\u00a0300]]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">while<\/span>\u00a0True:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0screen.fill((41,\u00a036,\u00a033))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0event\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0pygame.event.get():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.type\u00a0==\u00a0pygame.QUIT:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.quit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sys.exit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.type\u00a0==\u00a0pygame.KEYDOWN:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.key\u00a0==\u00a0pygame.K_RETURN:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0event.key\u00a0==\u00a0pygame.K_ESCAPE:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sys.exit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.quit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0text,\u00a0pos\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0zip(texts,\u00a0positions):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0screen.blit(text,\u00a0pos)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0clock.tick(10)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.display.update()<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u8fd0\u884c\u6e38\u620fDemo'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0runDemo(screen):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u52a0\u8f7d\u6e38\u620f\u7d20\u6750<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0hit_sound\u00a0=\u00a0pygame.mixer.Sound(cfg.HITSOUNDPATH)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0goal_sound\u00a0=\u00a0pygame.mixer.Sound(cfg.GOALSOUNDPATH)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.music.load(cfg.BGMPATH)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.music.play(-1,\u00a00.0)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0font\u00a0=\u00a0pygame.font.Font(cfg.FONTPATH,\u00a050)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u5f00\u59cb\u754c\u9762<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0game_mode\u00a0=\u00a0startInterface(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6e38\u620f\u4e3b\u5faa\u73af<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u5de6\u8fb9\u7403\u62cd(ws\u63a7\u5236,\u00a0\u4ec5\u53cc\u4eba\u6a21\u5f0f\u65f6\u53ef\u63a7\u5236)<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0score_left\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0racket_left\u00a0=\u00a0Racket(cfg.RACKETPICPATH,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'LEFT'<\/span>,\u00a0cfg)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u53f3\u8fb9\u7403\u62cd(\u2191\u2193\u63a7\u5236)<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0score_right\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0racket_right\u00a0=\u00a0Racket(cfg.RACKETPICPATH,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'RIGHT'<\/span>,\u00a0cfg)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u7403<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0ball\u00a0=\u00a0Ball(cfg.BALLPICPATH,\u00a0cfg)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0clock\u00a0=\u00a0pygame.time.Clock()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">while<\/span>\u00a0True:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0event\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0pygame.event.get():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.type\u00a0==\u00a0pygame.QUIT:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.quit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sys.exit(-1)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0screen.fill((41,\u00a036,\u00a033))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u73a9\u5bb6\u64cd\u4f5c<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pressed_keys\u00a0=\u00a0pygame.key.get_pressed()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0pressed_keys[pygame.K_UP]:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0racket_right.move(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'UP'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0pressed_keys[pygame.K_DOWN]:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0racket_right.move(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'DOWN'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0game_mode\u00a0==\u00a02:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0pressed_keys[pygame.K_w]:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0racket_left.move(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'UP'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0pressed_keys[pygame.K_s]:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0racket_left.move(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'DOWN'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0racket_left.automove(ball)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u7403\u8fd0\u52a8<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0scores\u00a0=\u00a0ball.move(ball,\u00a0racket_left,\u00a0racket_right,\u00a0hit_sound,\u00a0goal_sound)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0score_left\u00a0+=\u00a0scores[0]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0score_right\u00a0+=\u00a0scores[1]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u663e\u793a<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u5206\u9694\u7ebf<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.draw.rect(screen,\u00a0cfg.WHITE,\u00a0(247,\u00a00,\u00a06,\u00a0500))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u7403<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ball.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u62cd<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0racket_left.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0racket_right.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u5f97\u5206<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0screen.blit(font.render(str(score_left),\u00a0False,\u00a0cfg.WHITE),\u00a0(150,\u00a010))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0screen.blit(font.render(str(score_right),\u00a0False,\u00a0cfg.WHITE),\u00a0(300,\u00a010))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0score_left\u00a0==\u00a011\u00a0or\u00a0score_right\u00a0==\u00a011:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span>\u00a0score_left,\u00a0score_right<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0clock.tick(100)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.display.update()<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u4e3b\u51fd\u6570'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0main():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u521d\u59cb\u5316<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.init()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.init()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0screen\u00a0=\u00a0pygame.display.set_mode((cfg.WIDTH,\u00a0cfg.HEIGHT))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.display.set_caption(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'pingpong\u00a0\u2014\u2014\u00a0\u4e5d\u6b4c'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u5f00\u59cb\u6e38\u620f<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">while<\/span>\u00a0True:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0score_left,\u00a0score_right\u00a0=\u00a0runDemo(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0endInterface(screen,\u00a0score_left,\u00a0score_right)<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''run'''<\/span><br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0__name__\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'__main__'<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0main()<br style=\"outline: 0px;\" \/><\/code><\/pre>\n<h2 style=\"margin-top: 30px; margin-bottom: 15px; outline: 0px; font-weight: bold; font-size: 1.3em; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; text-align: left; white-space: normal; background-color: #ffffff; border-bottom: 2px solid #ef7060;\"><span style=\"margin-right: 3px; padding: 3px 10px 1px; outline: 0px; display: inline-block; background: #ef7060; color: #ffffff; border-top-right-radius: 3px; border-top-left-radius: 3px;\">3\u3001\u6ed1\u96ea<\/span><\/h2>\n<figure style=\"margin-top: 10px; margin-bottom: 10px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; display: flex; flex-direction: column; justify-content: center; align-items: center;\"><img decoding=\"async\" class=\"rich_pages wxw-img __bg_gif\" style=\"margin-right: auto; margin-left: auto; outline: 0px; display: block; box-sizing: border-box !important; width: 558px !important; visibility: visible !important;\" title=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" src=\"http:\/\/www.zhushiyao.com\/wp-content\/uploads\/2022\/04\/1-1649835243.gif\" alt=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" \/><\/figure>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\"><span style=\"font-size: 15px;\">\u6e90\u7801\u5206\u4eab\uff1a<\/span><\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; outline: 0px; color: #000000; font-size: 16px; text-align: left; background-color: #ffffff; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"padding: 15px 16px 16px; outline: 0px; overflow-x: auto; color: #abb2bf; display: -webkit-box; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; font-size: 12px; background: #282c34; border-radius: 5px;\">\u00a0<br style=\"outline: 0px;\" \/>import\u00a0sys<br style=\"outline: 0px;\" \/>import\u00a0cfg<br style=\"outline: 0px;\" \/>import\u00a0pygame<br style=\"outline: 0px;\" \/>import\u00a0random<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u6ed1\u96ea\u8005\u7c7b'''<\/span><br style=\"outline: 0px;\" \/>class\u00a0SkierClass(pygame.sprite.Sprite):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0def\u00a0__init__(self):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.sprite.Sprite.__init__(self)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6ed1\u96ea\u8005\u7684\u671d\u5411(-2\u52302)<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.direction\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.imagepaths\u00a0=\u00a0cfg.SKIER_IMAGE_PATHS[:-1]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.image\u00a0=\u00a0pygame.image.load(self.imagepaths[self.direction])<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.rect\u00a0=\u00a0self.image.get_rect()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.rect.center\u00a0=\u00a0[320,\u00a0100]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.speed\u00a0=\u00a0[self.direction,\u00a06-abs(self.direction)*2]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u6539\u53d8\u6ed1\u96ea\u8005\u7684\u671d\u5411.\u00a0\u8d1f\u6570\u4e3a\u5411\u5de6\uff0c\u6b63\u6570\u4e3a\u5411\u53f3\uff0c0\u4e3a\u5411\u524d'''<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0def\u00a0turn(self,\u00a0num):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.direction\u00a0+=\u00a0num<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.direction\u00a0=\u00a0max(-2,\u00a0self.direction)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.direction\u00a0=\u00a0min(2,\u00a0self.direction)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0center\u00a0=\u00a0self.rect.center<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.image\u00a0=\u00a0pygame.image.load(self.imagepaths[self.direction])<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.rect\u00a0=\u00a0self.image.get_rect()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.rect.center\u00a0=\u00a0center<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.speed\u00a0=\u00a0[self.direction,\u00a06-abs(self.direction)*2]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span>\u00a0self.speed<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u79fb\u52a8\u6ed1\u96ea\u8005'''<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0def\u00a0move(self):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.rect.centerx\u00a0+=\u00a0self.speed[0]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.rect.centerx\u00a0=\u00a0max(20,\u00a0self.rect.centerx)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.rect.centerx\u00a0=\u00a0min(620,\u00a0self.rect.centerx)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u8bbe\u7f6e\u4e3a\u6454\u5012\u72b6\u6001'''<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0def\u00a0setFall(self):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.image\u00a0=\u00a0pygame.image.load(cfg.SKIER_IMAGE_PATHS[-1])<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u8bbe\u7f6e\u4e3a\u7ad9\u7acb\u72b6\u6001'''<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0def\u00a0setForward(self):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.direction\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.image\u00a0=\u00a0pygame.image.load(self.imagepaths[self.direction])<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''<br style=\"outline: 0px;\" \/>Function:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u969c\u788d\u7269\u7c7b<br style=\"outline: 0px;\" \/>Input:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0img_path:\u00a0\u969c\u788d\u7269\u56fe\u7247\u8def\u5f84<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0location:\u00a0\u969c\u788d\u7269\u4f4d\u7f6e<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0attribute:\u00a0\u969c\u788d\u7269\u7c7b\u522b\u5c5e\u6027<br style=\"outline: 0px;\" \/>'''<\/span><br style=\"outline: 0px;\" \/>class\u00a0ObstacleClass(pygame.sprite.Sprite):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0def\u00a0__init__(self,\u00a0img_path,\u00a0location,\u00a0attribute):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.sprite.Sprite.__init__(self)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.img_path\u00a0=\u00a0img_path<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.image\u00a0=\u00a0pygame.image.load(self.img_path)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.location\u00a0=\u00a0location<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.rect\u00a0=\u00a0self.image.get_rect()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.rect.center\u00a0=\u00a0self.location<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.attribute\u00a0=\u00a0attribute<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.passed\u00a0=\u00a0False<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u79fb\u52a8'''<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0def\u00a0move(self,\u00a0num):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.rect.centery\u00a0=\u00a0self.location[1]\u00a0-\u00a0num<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u521b\u5efa\u969c\u788d\u7269'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0createObstacles(s,\u00a0e,\u00a0num=10):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0obstacles\u00a0=\u00a0pygame.sprite.Group()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0locations\u00a0=\u00a0[]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0i\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0range(num):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0row\u00a0=\u00a0random.randint(s,\u00a0e)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0col\u00a0=\u00a0random.randint(0,\u00a09)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0location\u00a0\u00a0=\u00a0[col*64+20,\u00a0row*64+20]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0location\u00a0not\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0locations:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0locations.append(location)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0attribute\u00a0=\u00a0random.choice(list(cfg.OBSTACLE_PATHS.keys()))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0img_path\u00a0=\u00a0cfg.OBSTACLE_PATHS[attribute]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0obstacle\u00a0=\u00a0ObstacleClass(img_path,\u00a0location,\u00a0attribute)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0obstacles.add(obstacle)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span>\u00a0obstacles<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u5408\u5e76\u969c\u788d\u7269'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0AddObstacles(obstacles0,\u00a0obstacles1):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0obstacles\u00a0=\u00a0pygame.sprite.Group()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0obstacle\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0obstacles0:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0obstacles.add(obstacle)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0obstacle\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0obstacles1:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0obstacles.add(obstacle)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span>\u00a0obstacles<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u663e\u793a\u6e38\u620f\u5f00\u59cb\u754c\u9762'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0ShowStartInterface(screen,\u00a0screensize):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0screen.fill((255,\u00a0255,\u00a0255))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0tfont\u00a0=\u00a0pygame.font.Font(cfg.FONTPATH,\u00a0screensize[0]\/\/5)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0cfont\u00a0=\u00a0pygame.font.Font(cfg.FONTPATH,\u00a0screensize[0]\/\/20)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0title\u00a0=\u00a0tfont.render(u<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'\u6ed1\u96ea\u6e38\u620f'<\/span>,\u00a0True,\u00a0(255,\u00a00,\u00a00))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0content\u00a0=\u00a0cfont.render(u<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'\u6309\u4efb\u610f\u952e\u5f00\u59cb\u6e38\u620f'<\/span>,\u00a0True,\u00a0(0,\u00a00,\u00a0255))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0trect\u00a0=\u00a0title.get_rect()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0trect.midtop\u00a0=\u00a0(screensize[0]\/2,\u00a0screensize[1]\/5)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0crect\u00a0=\u00a0content.get_rect()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0crect.midtop\u00a0=\u00a0(screensize[0]\/2,\u00a0screensize[1]\/2)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0screen.blit(title,\u00a0trect)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0screen.blit(content,\u00a0crect)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">while<\/span>\u00a0True:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0event\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0pygame.event.get():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.type\u00a0==\u00a0pygame.QUIT:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.quit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sys.exit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0event.type\u00a0==\u00a0pygame.KEYDOWN:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.display.update()<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u663e\u793a\u5206\u6570'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0showScore(screen,\u00a0score,\u00a0pos=(10,\u00a010)):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0font\u00a0=\u00a0pygame.font.Font(cfg.FONTPATH,\u00a030)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0score_text\u00a0=\u00a0font.render(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Score:\u00a0%s\"<\/span>\u00a0%\u00a0score,\u00a0True,\u00a0(0,\u00a00,\u00a00))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0screen.blit(score_text,\u00a0pos)<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u66f4\u65b0\u5f53\u524d\u5e27\u7684\u6e38\u620f\u753b\u9762'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0updateFrame(screen,\u00a0obstacles,\u00a0skier,\u00a0score):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0screen.fill((255,\u00a0255,\u00a0255))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0obstacles.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0screen.blit(skier.image,\u00a0skier.rect)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0showScore(screen,\u00a0score)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.display.update()<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u4e3b\u7a0b\u5e8f'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0main():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6e38\u620f\u521d\u59cb\u5316<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.init()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.init()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.music.load(cfg.BGMPATH)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.music.set_volume(0.4)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.music.play(-1)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u8bbe\u7f6e\u5c4f\u5e55<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0screen\u00a0=\u00a0pygame.display.set_mode(cfg.SCREENSIZE)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.display.set_caption(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'\u6ed1\u96ea\u6e38\u620f\u00a0\u2014\u2014\u00a0\u4e5d\u6b4c'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6e38\u620f\u5f00\u59cb\u754c\u9762<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0ShowStartInterface(screen,\u00a0cfg.SCREENSIZE)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u5b9e\u4f8b\u5316\u6e38\u620f\u7cbe\u7075<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u6ed1\u96ea\u8005<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0skier\u00a0=\u00a0SkierClass()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u521b\u5efa\u969c\u788d\u7269<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0obstacles0\u00a0=\u00a0createObstacles(20,\u00a029)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0obstacles1\u00a0=\u00a0createObstacles(10,\u00a019)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0obstaclesflag\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0obstacles\u00a0=\u00a0AddObstacles(obstacles0,\u00a0obstacles1)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6e38\u620fclock<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0clock\u00a0=\u00a0pygame.time.Clock()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u8bb0\u5f55\u6ed1\u96ea\u7684\u8ddd\u79bb<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0distance\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u8bb0\u5f55\u5f53\u524d\u7684\u5206\u6570<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0score\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u8bb0\u5f55\u5f53\u524d\u7684\u901f\u5ea6<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0speed\u00a0=\u00a0[0,\u00a06]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6e38\u620f\u4e3b\u5faa\u73af<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">while<\/span>\u00a0True:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u4e8b\u4ef6\u6355\u83b7<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0event\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0pygame.event.get():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.type\u00a0==\u00a0pygame.QUIT:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.quit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sys.exit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.type\u00a0==\u00a0pygame.KEYDOWN:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.key\u00a0==\u00a0pygame.K_LEFT\u00a0or\u00a0event.key\u00a0==\u00a0pygame.K_a:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0speed\u00a0=\u00a0skier.turn(-1)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0event.key\u00a0==\u00a0pygame.K_RIGHT\u00a0or\u00a0event.key\u00a0==\u00a0pygame.K_d:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0speed\u00a0=\u00a0skier.turn(1)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u66f4\u65b0\u5f53\u524d\u6e38\u620f\u5e27\u7684\u6570\u636e<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0skier.move()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0distance\u00a0+=\u00a0speed[1]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0distance\u00a0&gt;=\u00a0640\u00a0and\u00a0obstaclesflag\u00a0==\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0obstaclesflag\u00a0=\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0obstacles0\u00a0=\u00a0createObstacles(20,\u00a029)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0obstacles\u00a0=\u00a0AddObstacles(obstacles0,\u00a0obstacles1)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0distance\u00a0&gt;=\u00a01280\u00a0and\u00a0obstaclesflag\u00a0==\u00a01:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0obstaclesflag\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0distance\u00a0-=\u00a01280<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0obstacle\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0obstacles0:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0obstacle.location[1]\u00a0=\u00a0obstacle.location[1]\u00a0-\u00a01280<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0obstacles1\u00a0=\u00a0createObstacles(10,\u00a019)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0obstacles\u00a0=\u00a0AddObstacles(obstacles0,\u00a0obstacles1)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0obstacle\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0obstacles:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0obstacle.move(distance)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u78b0\u649e\u68c0\u6d4b<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0hitted_obstacles\u00a0=\u00a0pygame.sprite.spritecollide(skier,\u00a0obstacles,\u00a0False)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0hitted_obstacles:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0hitted_obstacles[0].attribute\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"tree\"<\/span>\u00a0and\u00a0not\u00a0hitted_obstacles[0].passed:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0score\u00a0-=\u00a050<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0skier.setFall()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0updateFrame(screen,\u00a0obstacles,\u00a0skier,\u00a0score)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.time.delay(1000)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0skier.setForward()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0speed\u00a0=\u00a0[0,\u00a06]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0hitted_obstacles[0].passed\u00a0=\u00a0True<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0hitted_obstacles[0].attribute\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"flag\"<\/span>\u00a0and\u00a0not\u00a0hitted_obstacles[0].passed:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0score\u00a0+=\u00a010<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0obstacles.remove(hitted_obstacles[0])<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u66f4\u65b0\u5c4f\u5e55<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0updateFrame(screen,\u00a0obstacles,\u00a0skier,\u00a0score)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0clock.tick(cfg.FPS)<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''run'''<\/span><br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0__name__\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'__main__'<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0 main()\uff1b<br style=\"outline: 0px;\" \/><\/code><\/pre>\n<h2 style=\"margin-top: 30px; margin-bottom: 15px; outline: 0px; font-weight: bold; font-size: 1.3em; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; text-align: left; white-space: normal; background-color: #ffffff; border-bottom: 2px solid #ef7060;\"><span style=\"margin-right: 3px; padding: 3px 10px 1px; outline: 0px; display: inline-block; background: #ef7060; color: #ffffff; border-top-right-radius: 3px; border-top-left-radius: 3px;\">4\u3001\u5e76\u5915\u5915\u7248\u98de\u673a\u5927\u6218<\/span><\/h2>\n<p style=\"outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; white-space: normal; background-color: #ffffff; text-align: center;\"><img decoding=\"async\" class=\"rich_pages wxw-img __bg_gif\" style=\"outline: 0px; box-sizing: border-box !important; width: 636px !important; visibility: visible !important;\" title=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" src=\"http:\/\/www.zhushiyao.com\/wp-content\/uploads\/2022\/04\/4-1649835243.gif\" alt=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" \/><\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\"><span style=\"font-size: 15px;\">\u6e90\u7801\u5206\u4eab\uff1a<\/span><\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; outline: 0px; color: #000000; font-size: 16px; text-align: left; background-color: #ffffff; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"padding: 15px 16px 16px; outline: 0px; overflow-x: auto; color: #abb2bf; display: -webkit-box; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; font-size: 12px; background: #282c34; border-radius: 5px;\">\u00a0<br style=\"outline: 0px;\" \/>import\u00a0sys<br style=\"outline: 0px;\" \/>import\u00a0cfg<br style=\"outline: 0px;\" \/>import\u00a0pygame<br style=\"outline: 0px;\" \/>from\u00a0modules\u00a0import\u00a0*<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u6e38\u620f\u754c\u9762'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0GamingInterface(num_player,\u00a0screen):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u521d\u59cb\u5316<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.music.load(cfg.SOUNDPATHS[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Cool\u00a0Space\u00a0Music'<\/span>])<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.music.set_volume(0.4)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.music.play(-1)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0explosion_sound\u00a0=\u00a0pygame.mixer.Sound(cfg.SOUNDPATHS[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'boom'<\/span>])<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0fire_sound\u00a0=\u00a0pygame.mixer.Sound(cfg.SOUNDPATHS[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'shot'<\/span>])<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0font\u00a0=\u00a0pygame.font.Font(cfg.FONTPATH,\u00a020)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6e38\u620f\u80cc\u666f\u56fe<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0bg_imgs\u00a0=\u00a0[cfg.IMAGEPATHS[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'bg_big'<\/span>],\u00a0cfg.IMAGEPATHS[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'seamless_space'<\/span>],\u00a0cfg.IMAGEPATHS[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'space3'<\/span>]]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0bg_move_dis\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0bg_1\u00a0=\u00a0pygame.image.load(bg_imgs[0]).convert()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0bg_2\u00a0=\u00a0pygame.image.load(bg_imgs[1]).convert()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0bg_3\u00a0=\u00a0pygame.image.load(bg_imgs[2]).convert()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u73a9\u5bb6,\u00a0\u5b50\u5f39\u548c\u5c0f\u884c\u661f\u7cbe\u7075\u7ec4<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0player_group\u00a0=\u00a0pygame.sprite.Group()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0bullet_group\u00a0=\u00a0pygame.sprite.Group()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0asteroid_group\u00a0=\u00a0pygame.sprite.Group()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u4ea7\u751f\u5c0f\u884c\u661f\u7684\u65f6\u95f4\u95f4\u9694<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0asteroid_ticks\u00a0=\u00a090<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0i\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0range(num_player):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0player_group.add(Ship(i+1,\u00a0cfg))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0clock\u00a0=\u00a0pygame.time.Clock()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u5206\u6570<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0score_1,\u00a0score_2\u00a0=\u00a00,\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6e38\u620f\u4e3b\u5faa\u73af<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">while<\/span>\u00a0True:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0event\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0pygame.event.get():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.type\u00a0==\u00a0pygame.QUIT:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.quit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sys.exit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u73a9\u5bb6\u4e00:\u00a0\u2191\u2193\u2190\u2192\u63a7\u5236,\u00a0j\u5c04\u51fb;\u00a0\u73a9\u5bb6\u4e8c:\u00a0wsad\u63a7\u5236,\u00a0\u7a7a\u683c\u5c04\u51fb<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pressed_keys\u00a0=\u00a0pygame.key.get_pressed()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0idx,\u00a0player\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0enumerate(player_group):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0direction\u00a0=\u00a0None<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0idx\u00a0==\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0pressed_keys[pygame.K_UP]:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0direction\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'up'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0pressed_keys[pygame.K_DOWN]:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0direction\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'down'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0pressed_keys[pygame.K_LEFT]:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0direction\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'left'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0pressed_keys[pygame.K_RIGHT]:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0direction\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'right'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0direction:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0player.move(direction)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0pressed_keys[pygame.K_j]:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0player.cooling_time\u00a0==\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0fire_sound.play()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0bullet_group.add(player.shot())<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0player.cooling_time\u00a0=\u00a020<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0idx\u00a0==\u00a01:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0pressed_keys[pygame.K_w]:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0direction\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'up'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0pressed_keys[pygame.K_s]:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0direction\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'down'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0pressed_keys[pygame.K_a]:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0direction\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'left'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0pressed_keys[pygame.K_d]:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0direction\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'right'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0direction:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0player.move(direction)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0pressed_keys[pygame.K_SPACE]:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0player.cooling_time\u00a0==\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0fire_sound.play()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0bullet_group.add(player.shot())<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0player.cooling_time\u00a0=\u00a020<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0player.cooling_time\u00a0&gt;\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0player.cooling_time\u00a0-=\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0(score_1\u00a0+\u00a0score_2)\u00a0&lt;\u00a0500:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0background\u00a0=\u00a0bg_1<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0(score_1\u00a0+\u00a0score_2)\u00a0&lt;\u00a01500:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0background\u00a0=\u00a0bg_2<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0background\u00a0=\u00a0bg_3<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u5411\u4e0b\u79fb\u52a8\u80cc\u666f\u56fe\u5b9e\u73b0\u98de\u8239\u5411\u4e0a\u79fb\u52a8\u7684\u6548\u679c<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0screen.blit(background,\u00a0(0,\u00a0-background.get_rect().height\u00a0+\u00a0bg_move_dis))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0screen.blit(background,\u00a0(0,\u00a0bg_move_dis))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0bg_move_dis\u00a0=\u00a0(bg_move_dis\u00a0+\u00a02)\u00a0%\u00a0background.get_rect().height<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u751f\u6210\u5c0f\u884c\u661f<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0asteroid_ticks\u00a0==\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0asteroid_ticks\u00a0=\u00a090<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0asteroid_group.add(Asteroid(cfg))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0asteroid_ticks\u00a0-=\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u753b\u98de\u8239<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0player\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0player_group:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0pygame.sprite.spritecollide(player,\u00a0asteroid_group,\u00a0True,\u00a0None):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0player.explode_step\u00a0=\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0explosion_sound.play()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0player.explode_step\u00a0&gt;\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0player.explode_step\u00a0&gt;\u00a03:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0player_group.remove(player)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0len(player_group)\u00a0==\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0player.explode(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0player.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u753b\u5b50\u5f39<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0bullet\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0bullet_group:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0bullet.move()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0pygame.sprite.spritecollide(bullet,\u00a0asteroid_group,\u00a0True,\u00a0None):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0bullet_group.remove(bullet)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0bullet.player_idx\u00a0==\u00a01:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0score_1\u00a0+=\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0score_2\u00a0+=\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0bullet.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u753b\u5c0f\u884c\u661f<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0asteroid\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0asteroid_group:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0asteroid.move()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0asteroid.rotate()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0asteroid.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u663e\u793a\u5206\u6570<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0score_1_text\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'\u73a9\u5bb6\u4e00\u5f97\u5206:\u00a0%s'<\/span>\u00a0%\u00a0score_1<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0score_2_text\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'\u73a9\u5bb6\u4e8c\u5f97\u5206:\u00a0%s'<\/span>\u00a0%\u00a0score_2<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0text_1\u00a0=\u00a0font.render(score_1_text,\u00a0True,\u00a0(0,\u00a00,\u00a0255))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0text_2\u00a0=\u00a0font.render(score_2_text,\u00a0True,\u00a0(255,\u00a00,\u00a00))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0screen.blit(text_1,\u00a0(2,\u00a05))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0screen.blit(text_2,\u00a0(2,\u00a035))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u5c4f\u5e55\u5237\u65b0<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.display.update()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0clock.tick(60)<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u4e3b\u51fd\u6570'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0main():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.init()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.font.init()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.init()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0screen\u00a0=\u00a0pygame.display.set_mode(cfg.SCREENSIZE)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.display.set_caption(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'\u98de\u673a\u5927\u6218\u00a0\u2014\u2014\u00a0\u4e5d\u6b4c'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0num_player\u00a0=\u00a0StartInterface(screen,\u00a0cfg)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0num_player\u00a0==\u00a01:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">while<\/span>\u00a0True:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0GamingInterface(num_player=1,\u00a0screen=screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0EndInterface(screen,\u00a0cfg)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">while<\/span>\u00a0True:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0GamingInterface(num_player=2,\u00a0screen=screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0EndInterface(screen,\u00a0cfg)<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''run'''<\/span><br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0__name__\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'__main__'<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0main()<br style=\"outline: 0px;\" \/><\/code><\/pre>\n<h2 style=\"margin-top: 30px; margin-bottom: 15px; outline: 0px; font-weight: bold; font-size: 1.3em; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; text-align: left; white-space: normal; background-color: #ffffff; border-bottom: 2px solid #ef7060;\"><span style=\"margin-right: 3px; padding: 3px 10px 1px; outline: 0px; display: inline-block; background: #ef7060; color: #ffffff; border-top-right-radius: 3px; border-top-left-radius: 3px;\">5\u3001\u6253\u5730\u9f20<\/span><\/h2>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"rich_pages wxw-img\" title=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" src=\"http:\/\/www.zhushiyao.com\/wp-content\/uploads\/2022\/04\/7-1649835243-1.gif\" alt=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" \/><\/p>\n<p style=\"outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff;\"><span style=\"outline: 0px; letter-spacing: 0px; font-size: 15px;\">\u6e90\u7801\u5206\u4eab\uff1a<\/span><\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; outline: 0px; color: #000000; font-size: 16px; text-align: left; background-color: #ffffff; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"padding: 15px 16px 16px; outline: 0px; overflow-x: auto; color: #abb2bf; display: -webkit-box; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; font-size: 12px; background: #282c34; border-radius: 5px;\">\u00a0<br style=\"outline: 0px;\" \/>import\u00a0cfg<br style=\"outline: 0px;\" \/>import\u00a0sys<br style=\"outline: 0px;\" \/>import\u00a0pygame<br style=\"outline: 0px;\" \/>import\u00a0random<br style=\"outline: 0px;\" \/>from\u00a0modules\u00a0import\u00a0*<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u6e38\u620f\u521d\u59cb\u5316'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0initGame():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.init()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.init()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0screen\u00a0=\u00a0pygame.display.set_mode(cfg.SCREENSIZE)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.display.set_caption(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'\u6253\u5730\u9f20\u00a0\u2014\u2014\u00a0\u4e5d\u6b4c'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span>\u00a0screen<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u4e3b\u51fd\u6570'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0main():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u521d\u59cb\u5316<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0screen\u00a0=\u00a0initGame()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u52a0\u8f7d\u80cc\u666f\u97f3\u4e50\u548c\u5176\u4ed6\u97f3\u6548<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.music.load(cfg.BGM_PATH)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.music.play(-1)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0audios\u00a0=\u00a0{<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'count_down'<\/span>:\u00a0pygame.mixer.Sound(cfg.COUNT_DOWN_SOUND_PATH),<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'hammering'<\/span>:\u00a0pygame.mixer.Sound(cfg.HAMMERING_SOUND_PATH)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0}<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u52a0\u8f7d\u5b57\u4f53<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0font\u00a0=\u00a0pygame.font.Font(cfg.FONT_PATH,\u00a040)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u52a0\u8f7d\u80cc\u666f\u56fe\u7247<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0bg_img\u00a0=\u00a0pygame.image.load(cfg.GAME_BG_IMAGEPATH)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u5f00\u59cb\u754c\u9762<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0startInterface(screen,\u00a0cfg.GAME_BEGIN_IMAGEPATHS)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u5730\u9f20\u6539\u53d8\u4f4d\u7f6e\u7684\u8ba1\u65f6<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0hole_pos\u00a0=\u00a0random.choice(cfg.HOLE_POSITIONS)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0change_hole_event\u00a0=\u00a0pygame.USEREVENT<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.time.set_timer(change_hole_event,\u00a0800)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u5730\u9f20<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0mole\u00a0=\u00a0Mole(cfg.MOLE_IMAGEPATHS,\u00a0hole_pos)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u9524\u5b50<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0hammer\u00a0=\u00a0Hammer(cfg.HAMMER_IMAGEPATHS,\u00a0(500,\u00a0250))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u65f6\u949f<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0clock\u00a0=\u00a0pygame.time.Clock()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u5206\u6570<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0your_score\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0flag\u00a0=\u00a0False<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u521d\u59cb\u65f6\u95f4<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0init_time\u00a0=\u00a0pygame.time.get_ticks()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6e38\u620f\u4e3b\u5faa\u73af<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">while<\/span>\u00a0True:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u6e38\u620f\u65f6\u95f4\u4e3a60s<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0time_remain\u00a0=\u00a0round((61000\u00a0-\u00a0(pygame.time.get_ticks()\u00a0-\u00a0init_time))\u00a0\/\u00a01000.)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u6e38\u620f\u65f6\u95f4\u51cf\u5c11,\u00a0\u5730\u9f20\u53d8\u4f4d\u7f6e\u901f\u5ea6\u53d8\u5feb<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0time_remain\u00a0==\u00a040\u00a0and\u00a0not\u00a0flag:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0hole_pos\u00a0=\u00a0random.choice(cfg.HOLE_POSITIONS)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mole.reset()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mole.setPosition(hole_pos)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.time.set_timer(change_hole_event,\u00a0650)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0flag\u00a0=\u00a0True<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0time_remain\u00a0==\u00a020\u00a0and\u00a0flag:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0hole_pos\u00a0=\u00a0random.choice(cfg.HOLE_POSITIONS)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mole.reset()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mole.setPosition(hole_pos)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.time.set_timer(change_hole_event,\u00a0500)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0flag\u00a0=\u00a0False<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u5012\u8ba1\u65f6\u97f3\u6548<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0time_remain\u00a0==\u00a010:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0audios[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'count_down'<\/span>].play()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u6e38\u620f\u7ed3\u675f<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0time_remain\u00a0&lt;\u00a00:\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">break<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0count_down_text\u00a0=\u00a0font.render(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Time:\u00a0'<\/span>+str(time_remain),\u00a0True,\u00a0cfg.WHITE)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u6309\u952e\u68c0\u6d4b<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0event\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0pygame.event.get():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.type\u00a0==\u00a0pygame.QUIT:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.quit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sys.exit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0event.type\u00a0==\u00a0pygame.MOUSEMOTION:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0hammer.setPosition(pygame.mouse.get_pos())<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0event.type\u00a0==\u00a0pygame.MOUSEBUTTONDOWN:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.button\u00a0==\u00a01:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0hammer.setHammering()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0event.type\u00a0==\u00a0change_hole_event:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0hole_pos\u00a0=\u00a0random.choice(cfg.HOLE_POSITIONS)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mole.reset()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mole.setPosition(hole_pos)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u78b0\u649e\u68c0\u6d4b<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0hammer.is_hammering\u00a0and\u00a0not\u00a0mole.is_hammer:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0is_hammer\u00a0=\u00a0pygame.sprite.collide_mask(hammer,\u00a0mole)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0is_hammer:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0audios[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'hammering'<\/span>].play()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mole.setBeHammered()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0your_score\u00a0+=\u00a010<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u5206\u6570<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0your_score_text\u00a0=\u00a0font.render(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Score:\u00a0'<\/span>+str(your_score),\u00a0True,\u00a0cfg.BROWN)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u7ed1\u5b9a\u5fc5\u8981\u7684\u6e38\u620f\u5143\u7d20\u5230\u5c4f\u5e55(\u6ce8\u610f\u987a\u5e8f)<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0screen.blit(bg_img,\u00a0(0,\u00a00))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0screen.blit(count_down_text,\u00a0(875,\u00a08))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0screen.blit(your_score_text,\u00a0(800,\u00a0430))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mole.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0hammer.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u66f4\u65b0<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.display.flip()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0clock.tick(60)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u8bfb\u53d6\u6700\u4f73\u5206\u6570(try\u5757\u907f\u514d\u7b2c\u4e00\u6b21\u6e38\u620f\u65e0.rec\u6587\u4ef6)<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0try:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0best_score\u00a0=\u00a0int(open(cfg.RECORD_PATH).<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">read<\/span>())<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0except:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0best_score\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u82e5\u5f53\u524d\u5206\u6570\u5927\u4e8e\u6700\u4f73\u5206\u6570\u5219\u66f4\u65b0\u6700\u4f73\u5206\u6570<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0your_score\u00a0&gt;\u00a0best_score:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0f\u00a0=\u00a0open(cfg.RECORD_PATH,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'w'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0f.write(str(your_score))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0f.close()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u7ed3\u675f\u754c\u9762<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0score_info\u00a0=\u00a0{<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'your_score'<\/span>:\u00a0your_score,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'best_score'<\/span>:\u00a0best_score}<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0is_restart\u00a0=\u00a0endInterface(screen,\u00a0cfg.GAME_END_IMAGEPATH,\u00a0cfg.GAME_AGAIN_IMAGEPATHS,\u00a0score_info,\u00a0cfg.FONT_PATH,\u00a0[cfg.WHITE,\u00a0cfg.RED],\u00a0cfg.SCREENSIZE)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span>\u00a0is_restart<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''run'''<\/span><br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0__name__\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'__main__'<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">while<\/span>\u00a0True:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0is_restart\u00a0=\u00a0main()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0not\u00a0is_restart:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">break<\/span><br style=\"outline: 0px;\" \/><\/code><\/pre>\n<h2 style=\"margin-top: 30px; margin-bottom: 15px; outline: 0px; font-weight: bold; font-size: 1.3em; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; text-align: left; white-space: normal; background-color: #ffffff; border-bottom: 2px solid #ef7060;\"><span style=\"margin-right: 3px; padding: 3px 10px 1px; outline: 0px; display: inline-block; background: #ef7060; color: #ffffff; border-top-right-radius: 3px; border-top-left-radius: 3px;\">6\u3001\u5c0f\u6050\u9f99<\/span><\/h2>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"rich_pages wxw-img\" title=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" src=\"http:\/\/www.zhushiyao.com\/wp-content\/uploads\/2022\/04\/0-1649835243-1.gif\" alt=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" \/><\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\"><span style=\"font-size: 15px;\">\u73a9\u6cd5\uff1a\u4e0a\u4e0b\u63a7\u5236\u8d77\u8df3\u8eb2\u907f<br \/>\n<\/span><\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\"><span style=\"font-size: 15px;\">\u6e90\u7801\u5206\u4eab\uff1a<\/span><\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; outline: 0px; color: #000000; font-size: 16px; text-align: left; background-color: #ffffff; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"padding: 15px 16px 16px; outline: 0px; overflow-x: auto; color: #abb2bf; display: -webkit-box; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; font-size: 12px; background: #282c34; border-radius: 5px;\">\u00a0<br style=\"outline: 0px;\" \/>import\u00a0cfg<br style=\"outline: 0px;\" \/>import\u00a0sys<br style=\"outline: 0px;\" \/>import\u00a0random<br style=\"outline: 0px;\" \/>import\u00a0pygame<br style=\"outline: 0px;\" \/>from\u00a0modules\u00a0import\u00a0*<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''main'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0main(highest_score):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6e38\u620f\u521d\u59cb\u5316<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.init()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0screen\u00a0=\u00a0pygame.display.set_mode(cfg.SCREENSIZE)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.display.set_caption(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'\u4e5d\u6b4c'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u5bfc\u5165\u6240\u6709\u58f0\u97f3\u6587\u4ef6<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0sounds\u00a0=\u00a0{}<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0key,\u00a0value\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0cfg.AUDIO_PATHS.items():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sounds[key]\u00a0=\u00a0pygame.mixer.Sound(value)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6e38\u620f\u5f00\u59cb\u754c\u9762<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0GameStartInterface(screen,\u00a0sounds,\u00a0cfg)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u5b9a\u4e49\u4e00\u4e9b\u6e38\u620f\u4e2d\u5fc5\u8981\u7684\u5143\u7d20\u548c\u53d8\u91cf<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0score\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0score_board\u00a0=\u00a0Scoreboard(cfg.IMAGE_PATHS[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'numbers'<\/span>],\u00a0position=(534,\u00a015),\u00a0bg_color=cfg.BACKGROUND_COLOR)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0highest_score\u00a0=\u00a0highest_score<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0highest_score_board\u00a0=\u00a0Scoreboard(cfg.IMAGE_PATHS[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'numbers'<\/span>],\u00a0position=(435,\u00a015),\u00a0bg_color=cfg.BACKGROUND_COLOR,\u00a0is_highest=True)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0dino\u00a0=\u00a0Dinosaur(cfg.IMAGE_PATHS[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'dino'<\/span>])<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0ground\u00a0=\u00a0Ground(cfg.IMAGE_PATHS[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'ground'<\/span>],\u00a0position=(0,\u00a0cfg.SCREENSIZE[1]))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0cloud_sprites_group\u00a0=\u00a0pygame.sprite.Group()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0cactus_sprites_group\u00a0=\u00a0pygame.sprite.Group()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0ptera_sprites_group\u00a0=\u00a0pygame.sprite.Group()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0add_obstacle_timer\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0score_timer\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6e38\u620f\u4e3b\u5faa\u73af<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0clock\u00a0=\u00a0pygame.time.Clock()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">while<\/span>\u00a0True:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0event\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0pygame.event.get():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.type\u00a0==\u00a0pygame.QUIT:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.quit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sys.exit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0event.type\u00a0==\u00a0pygame.KEYDOWN:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.key\u00a0==\u00a0pygame.K_SPACE\u00a0or\u00a0event.key\u00a0==\u00a0pygame.K_UP:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dino.jump(sounds)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0event.key\u00a0==\u00a0pygame.K_DOWN:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dino.duck()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0event.type\u00a0==\u00a0pygame.KEYUP\u00a0and\u00a0event.key\u00a0==\u00a0pygame.K_DOWN:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dino.unduck()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0screen.fill(cfg.BACKGROUND_COLOR)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u968f\u673a\u6dfb\u52a0\u4e91<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0len(cloud_sprites_group)\u00a0&lt;\u00a05\u00a0and\u00a0random.randrange(0,\u00a0300)\u00a0==\u00a010:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cloud_sprites_group.add(Cloud(cfg.IMAGE_PATHS[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'cloud'<\/span>],\u00a0position=(cfg.SCREENSIZE[0],\u00a0random.randrange(30,\u00a075))))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u968f\u673a\u6dfb\u52a0\u4ed9\u4eba\u638c\/\u98de\u9f99<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0add_obstacle_timer\u00a0+=\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0add_obstacle_timer\u00a0&gt;\u00a0random.randrange(50,\u00a0150):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0add_obstacle_timer\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0random_value\u00a0=\u00a0random.randrange(0,\u00a010)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0random_value\u00a0&gt;=\u00a05\u00a0and\u00a0random_value\u00a0&lt;=\u00a07:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cactus_sprites_group.add(Cactus(cfg.IMAGE_PATHS[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'cacti'<\/span>]))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0position_ys\u00a0=\u00a0[cfg.SCREENSIZE[1]*0.82,\u00a0cfg.SCREENSIZE[1]*0.75,\u00a0cfg.SCREENSIZE[1]*0.60,\u00a0cfg.SCREENSIZE[1]*0.20]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ptera_sprites_group.add(Ptera(cfg.IMAGE_PATHS[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'ptera'<\/span>],\u00a0position=(600,\u00a0random.choice(position_ys))))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u66f4\u65b0\u6e38\u620f\u5143\u7d20<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dino.update()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ground.update()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cloud_sprites_group.update()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cactus_sprites_group.update()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ptera_sprites_group.update()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0score_timer\u00a0+=\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0score_timer\u00a0&gt;\u00a0(cfg.FPS\/\/12):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0score_timer\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0score\u00a0+=\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0score\u00a0=\u00a0min(score,\u00a099999)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0score\u00a0&gt;\u00a0highest_score:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0highest_score\u00a0=\u00a0score<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0score\u00a0%\u00a0100\u00a0==\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sounds[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'point'<\/span>].play()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0score\u00a0%\u00a01000\u00a0==\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ground.speed\u00a0-=\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0item\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0cloud_sprites_group:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0item.speed\u00a0-=\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0item\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0cactus_sprites_group:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0item.speed\u00a0-=\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0item\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0ptera_sprites_group:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0item.speed\u00a0-=\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u78b0\u649e\u68c0\u6d4b<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0item\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0cactus_sprites_group:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0pygame.sprite.collide_mask(dino,\u00a0item):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dino.die(sounds)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0item\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0ptera_sprites_group:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0pygame.sprite.collide_mask(dino,\u00a0item):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dino.die(sounds)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u5c06\u6e38\u620f\u5143\u7d20\u753b\u5230\u5c4f\u5e55\u4e0a<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dino.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ground.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cloud_sprites_group.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cactus_sprites_group.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ptera_sprites_group.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0score_board.set(score)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0highest_score_board.set(highest_score)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0score_board.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0highest_score_board.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u66f4\u65b0\u5c4f\u5e55<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.display.update()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0clock.tick(cfg.FPS)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u6e38\u620f\u662f\u5426\u7ed3\u675f<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0dino.is_dead:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">break<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6e38\u620f\u7ed3\u675f\u754c\u9762<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span>\u00a0GameEndInterface(screen,\u00a0cfg),\u00a0highest_score<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''run'''<\/span><br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0__name__\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'__main__'<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0highest_score\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">while<\/span>\u00a0True:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0flag,\u00a0highest_score\u00a0=\u00a0main(highest_score)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0not\u00a0flag:\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">break<\/span><br style=\"outline: 0px;\" \/><\/code><\/pre>\n<h2 style=\"margin-top: 30px; margin-bottom: 15px; outline: 0px; font-weight: bold; font-size: 1.3em; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; text-align: left; white-space: normal; background-color: #ffffff; border-bottom: 2px solid #ef7060;\"><span style=\"margin-right: 3px; padding: 3px 10px 1px; outline: 0px; display: inline-block; background: #ef7060; color: #ffffff; border-top-right-radius: 3px; border-top-left-radius: 3px;\">7\u3001\u6d88\u6d88\u4e50<\/span><\/h2>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\"><span style=\"font-size: 15px;\">\u73a9\u6cd5\uff1a\u4e09\u4e2a\u76f8\u8fde\u5c31\u80fd\u6d88\u9664<\/span><\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\"><img decoding=\"async\" class=\"rich_pages wxw-img __bg_gif\" style=\"outline: 0px; box-sizing: border-box !important; width: 636px !important; visibility: visible !important;\" title=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" src=\"http:\/\/www.zhushiyao.com\/wp-content\/uploads\/2022\/04\/10-1649835243.gif\" alt=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" \/><\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\"><span style=\"font-size: 15px;\">\u6e90\u7801\u5206\u4eab\uff1a<\/span><\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; outline: 0px; color: #000000; font-size: 16px; text-align: left; background-color: #ffffff; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"padding: 15px 16px 16px; outline: 0px; overflow-x: auto; color: #abb2bf; display: -webkit-box; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; font-size: 12px; background: #282c34; border-radius: 5px;\">\u00a0<br style=\"outline: 0px;\" \/>import\u00a0os<br style=\"outline: 0px;\" \/>import\u00a0sys<br style=\"outline: 0px;\" \/>import\u00a0cfg<br style=\"outline: 0px;\" \/>import\u00a0pygame<br style=\"outline: 0px;\" \/>from\u00a0modules\u00a0import\u00a0*<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u6e38\u620f\u4e3b\u7a0b\u5e8f'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0main():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.init()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0screen\u00a0=\u00a0pygame.display.set_mode(cfg.SCREENSIZE)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.display.set_caption(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Gemgem\u00a0\u2014\u2014\u00a0\u4e5d\u6b4c'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u52a0\u8f7d\u80cc\u666f\u97f3\u4e50<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.init()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.music.load(os.path.join(cfg.ROOTDIR,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"resources\/audios\/bg.mp3\"<\/span>))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.music.set_volume(0.6)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.music.play(-1)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u52a0\u8f7d\u97f3\u6548<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0sounds\u00a0=\u00a0{}<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0sounds[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'mismatch'<\/span>]\u00a0=\u00a0pygame.mixer.Sound(os.path.join(cfg.ROOTDIR,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'resources\/audios\/badswap.wav'<\/span>))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0sounds[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'match'<\/span>]\u00a0=\u00a0[]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0i\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0range(6):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sounds[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'match'<\/span>].append(pygame.mixer.Sound(os.path.join(cfg.ROOTDIR,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'resources\/audios\/match%s.wav'<\/span>\u00a0%\u00a0i)))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u52a0\u8f7d\u5b57\u4f53<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0font\u00a0=\u00a0pygame.font.Font(os.path.join(cfg.ROOTDIR,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'resources\/font\/font.TTF'<\/span>),\u00a025)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u56fe\u7247\u52a0\u8f7d<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0gem_imgs\u00a0=\u00a0[]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0i\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0range(1,\u00a08):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0gem_imgs.append(os.path.join(cfg.ROOTDIR,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'resources\/images\/gem%s.png'<\/span>\u00a0%\u00a0i))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u4e3b\u5faa\u73af<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0game\u00a0=\u00a0gemGame(screen,\u00a0sounds,\u00a0font,\u00a0gem_imgs,\u00a0cfg)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">while<\/span>\u00a0True:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0score\u00a0=\u00a0game.start()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0flag\u00a0=\u00a0False<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u4e00\u8f6e\u6e38\u620f\u7ed3\u675f\u540e\u73a9\u5bb6\u9009\u62e9\u91cd\u73a9\u6216\u8005\u9000\u51fa<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">while<\/span>\u00a0True:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0event\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0pygame.event.get():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.type\u00a0==\u00a0pygame.QUIT\u00a0or\u00a0(event.type\u00a0==\u00a0pygame.KEYUP\u00a0and\u00a0event.key\u00a0==\u00a0pygame.K_ESCAPE):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.quit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sys.exit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0event.type\u00a0==\u00a0pygame.KEYUP\u00a0and\u00a0event.key\u00a0==\u00a0pygame.K_r:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0flag\u00a0=\u00a0True<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0flag:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">break<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0screen.fill((135,\u00a0206,\u00a0235))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0text0\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Final\u00a0score:\u00a0%s'<\/span>\u00a0%\u00a0score<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0text1\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Press\u00a0&lt;R&gt;\u00a0to\u00a0restart\u00a0the\u00a0game.'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0text2\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Press\u00a0&lt;Esc&gt;\u00a0to\u00a0quit\u00a0the\u00a0game.'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0y\u00a0=\u00a0150<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0idx,\u00a0text\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0enumerate([text0,\u00a0text1,\u00a0text2]):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0text_render\u00a0=\u00a0font.render(text,\u00a01,\u00a0(85,\u00a065,\u00a00))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0rect\u00a0=\u00a0text_render.get_rect()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0idx\u00a0==\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0rect.left,\u00a0rect.top\u00a0=\u00a0(212,\u00a0y)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0idx\u00a0==\u00a01:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0rect.left,\u00a0rect.top\u00a0=\u00a0(122.5,\u00a0y)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0rect.left,\u00a0rect.top\u00a0=\u00a0(126.5,\u00a0y)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0y\u00a0+=\u00a0100<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0screen.blit(text_render,\u00a0rect)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.display.update()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0game.reset()<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''run'''<\/span><br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0__name__\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'__main__'<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0main()<br style=\"outline: 0px;\" \/><\/code><\/pre>\n<h2 style=\"margin-top: 30px; margin-bottom: 15px; outline: 0px; font-weight: bold; font-size: 1.3em; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; text-align: left; white-space: normal; background-color: #ffffff; border-bottom: 2px solid #ef7060;\"><span style=\"margin-right: 3px; padding: 3px 10px 1px; outline: 0px; display: inline-block; background: #ef7060; color: #ffffff; border-top-right-radius: 3px; border-top-left-radius: 3px;\">8\u3001\u4fc4\u7f57\u65af\u65b9\u5757<\/span><\/h2>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\"><span style=\"font-size: 15px;\">\u73a9\u6cd5\uff1a\u7ae5\u5e74\u7ecf\u5178\uff0c\u666e\u901a\u6a21\u5f0f\u6ca1\u5565\u610f\u601d\uff0c\u5c0f\u65f6\u5019\u6211\u4eec\u90fd\u662f\u73a9\u52a0\u901f\u7684\u3002<\/span><\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\"><img decoding=\"async\" class=\"rich_pages wxw-img __bg_gif\" style=\"outline: 0px; box-sizing: border-box !important; width: 636px !important; visibility: visible !important;\" title=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" src=\"http:\/\/www.zhushiyao.com\/wp-content\/uploads\/2022\/04\/10-1649835243-1.gif\" alt=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" \/><\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\"><span style=\"font-size: 15px;\">\u6e90\u7801\u5206\u4eab\uff1a<\/span><\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; outline: 0px; color: #000000; font-size: 16px; text-align: left; background-color: #ffffff; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"padding: 15px 16px 16px; outline: 0px; overflow-x: auto; color: #abb2bf; display: -webkit-box; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; font-size: 12px; background: #282c34; border-radius: 5px;\">\u00a0<br style=\"outline: 0px;\" \/>import\u00a0os<br style=\"outline: 0px;\" \/>import\u00a0sys<br style=\"outline: 0px;\" \/>import\u00a0random<br style=\"outline: 0px;\" \/>from\u00a0modules\u00a0import\u00a0*<br style=\"outline: 0px;\" \/>from\u00a0PyQt5.QtGui\u00a0import\u00a0*<br style=\"outline: 0px;\" \/>from\u00a0PyQt5.QtCore\u00a0import\u00a0*<br style=\"outline: 0px;\" \/>from\u00a0PyQt5.QtWidgets\u00a0import\u00a0*<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u5b9a\u4e49\u4fc4\u7f57\u65af\u65b9\u5757\u6e38\u620f\u7c7b'''<\/span><br style=\"outline: 0px;\" \/>class\u00a0TetrisGame(QMainWindow):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0def\u00a0__init__(self,\u00a0parent=None):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0super(TetrisGame,\u00a0self).__init__(parent)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u662f\u5426\u6682\u505cing<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.is_paused\u00a0=\u00a0False<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u662f\u5426\u5f00\u59cbing<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.is_started\u00a0=\u00a0False<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.initUI()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u754c\u9762\u521d\u59cb\u5316'''<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0def\u00a0initUI(self):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0icon<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.setWindowIcon(QIcon(os.path.join(os.getcwd(),\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'resources\/icon.jpg'<\/span>)))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u5757\u5927\u5c0f<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.grid_size\u00a0=\u00a022<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6e38\u620f\u5e27\u7387<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.fps\u00a0=\u00a0200<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.timer\u00a0=\u00a0QBasicTimer()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u7126\u70b9<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.setFocusPolicy(Qt.StrongFocus)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6c34\u5e73\u5e03\u5c40<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0layout_horizontal\u00a0=\u00a0QHBoxLayout()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.inner_board\u00a0=\u00a0InnerBoard()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.external_board\u00a0=\u00a0ExternalBoard(self,\u00a0self.grid_size,\u00a0self.inner_board)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0layout_horizontal.addWidget(self.external_board)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.side_panel\u00a0=\u00a0SidePanel(self,\u00a0self.grid_size,\u00a0self.inner_board)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0layout_horizontal.addWidget(self.side_panel)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.status_bar\u00a0=\u00a0self.statusBar()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.external_board.score_signal[str].connect(self.status_bar.showMessage)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.start()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.center()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.setWindowTitle(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Tetris\u00a0\u2014\u2014\u00a0\u4e5d\u6b4c'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.show()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.setFixedSize(self.external_board.width()\u00a0+\u00a0self.side_panel.width(),\u00a0self.side_panel.height()\u00a0+\u00a0self.status_bar.height())<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u6e38\u620f\u754c\u9762\u79fb\u52a8\u5230\u5c4f\u5e55\u4e2d\u95f4'''<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0def\u00a0center(self):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0screen\u00a0=\u00a0QDesktopWidget().screenGeometry()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0size\u00a0=\u00a0self.geometry()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.move((screen.width()\u00a0-\u00a0size.width())\u00a0\/\/\u00a02,\u00a0(screen.height()\u00a0-\u00a0size.height())\u00a0\/\/\u00a02)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u66f4\u65b0\u754c\u9762'''<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0def\u00a0updateWindow(self):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.external_board.updateData()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.side_panel.updateData()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.update()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u5f00\u59cb'''<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0def\u00a0start(self):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0self.is_started:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.is_started\u00a0=\u00a0True<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.inner_board.createNewTetris()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.timer.start(self.fps,\u00a0self)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u6682\u505c\/\u4e0d\u6682\u505c'''<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0def\u00a0pause(self):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0not\u00a0self.is_started:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.is_paused\u00a0=\u00a0not\u00a0self.is_paused<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0self.is_paused:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.timer.stop()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.external_board.score_signal.emit(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Paused'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.timer.start(self.fps,\u00a0self)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.updateWindow()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u8ba1\u65f6\u5668\u4e8b\u4ef6'''<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0def\u00a0timerEvent(self,\u00a0event):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.timerId()\u00a0==\u00a0self.timer.timerId():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0removed_lines\u00a0=\u00a0self.inner_board.moveDown()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.external_board.score\u00a0+=\u00a0removed_lines<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.updateWindow()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0super(TetrisGame,\u00a0self).timerEvent(event)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u6309\u952e\u4e8b\u4ef6'''<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0def\u00a0keyPressEvent(self,\u00a0event):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0not\u00a0self.is_started\u00a0or\u00a0self.inner_board.current_tetris\u00a0==\u00a0tetrisShape().shape_empty:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0super(TetrisGame,\u00a0self).keyPressEvent(event)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0key\u00a0=\u00a0event.key()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0P\u952e\u6682\u505c<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0key\u00a0==\u00a0Qt.Key_P:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.pause()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0self.is_paused:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u5411\u5de6<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0key\u00a0==\u00a0Qt.Key_Left:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.inner_board.moveLeft()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u5411\u53f3<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0key\u00a0==\u00a0Qt.Key_Right:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.inner_board.moveRight()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u65cb\u8f6c<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0key\u00a0==\u00a0Qt.Key_Up:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.inner_board.rotateAnticlockwise()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u5feb\u901f\u5760\u843d<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0key\u00a0==\u00a0Qt.Key_Space:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.external_board.score\u00a0+=\u00a0self.inner_board.dropDown()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0super(TetrisGame,\u00a0self).keyPressEvent(event)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.updateWindow()<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''run'''<\/span><br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0__name__\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'__main__'<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0app\u00a0=\u00a0QApplication([])<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0tetris\u00a0=\u00a0TetrisGame()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0sys.exit(app.exec_())<br style=\"outline: 0px;\" \/><\/code><\/pre>\n<h2 style=\"margin-top: 30px; margin-bottom: 15px; outline: 0px; font-weight: bold; font-size: 1.3em; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; text-align: left; white-space: normal; background-color: #ffffff; border-bottom: 2px solid #ef7060;\"><span style=\"margin-right: 3px; padding: 3px 10px 1px; outline: 0px; display: inline-block; background: #ef7060; color: #ffffff; border-top-right-radius: 3px; border-top-left-radius: 3px;\">9\u3001\u8d2a\u5403\u86c7<\/span><\/h2>\n<p style=\"text-align: center; margin-bottom: 0em;\"><img decoding=\"async\" class=\"rich_pages wxw-img js_insertlocalimg\" title=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" src=\"http:\/\/www.zhushiyao.com\/wp-content\/uploads\/2022\/04\/2-1649835243.png\" alt=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" \/><\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\"><span style=\"font-size: 15px;\">\u73a9\u6cd5\uff1a\u7ae5\u5e74\u7ecf\u5178\uff0c\u666e\u901a\u9b54\u672f\u4e5f\u6ca1\u5565\u610f\u601d\uff0c\u5c0f\u65f6\u5019\u73a9\u7684\u4e5f\u662f\u52a0\u901f\u7684\u3002<br \/>\n<\/span><\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\"><span style=\"font-size: 15px;\">\u6e90\u7801\u5206\u4eab\uff1a<\/span><\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; outline: 0px; color: #000000; font-size: 16px; text-align: left; background-color: #ffffff; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"padding: 15px 16px 16px; outline: 0px; overflow-x: auto; color: #abb2bf; display: -webkit-box; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; font-size: 12px; background: #282c34; border-radius: 5px;\">\u00a0<br style=\"outline: 0px;\" \/>import\u00a0cfg<br style=\"outline: 0px;\" \/>import\u00a0sys<br style=\"outline: 0px;\" \/>import\u00a0pygame<br style=\"outline: 0px;\" \/>from\u00a0modules\u00a0import\u00a0*<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u4e3b\u51fd\u6570'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0main(cfg):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6e38\u620f\u521d\u59cb\u5316<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.init()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0screen\u00a0=\u00a0pygame.display.set_mode(cfg.SCREENSIZE)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.display.set_caption(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Greedy\u00a0Snake\u00a0\u2014\u2014\u00a0\u4e5d\u6b4c'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0clock\u00a0=\u00a0pygame.time.Clock()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u64ad\u653e\u80cc\u666f\u97f3\u4e50<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.music.load(cfg.BGMPATH)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.music.play(-1)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6e38\u620f\u4e3b\u5faa\u73af<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0snake\u00a0=\u00a0Snake(cfg)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0apple\u00a0=\u00a0Apple(cfg,\u00a0snake.coords)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0score\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">while<\/span>\u00a0True:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0screen.fill(cfg.BLACK)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u6309\u952e\u68c0\u6d4b<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0event\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0pygame.event.get():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.type\u00a0==\u00a0pygame.QUIT:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.quit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sys.exit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0event.type\u00a0==\u00a0pygame.KEYDOWN:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.key\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0[pygame.K_UP,\u00a0pygame.K_DOWN,\u00a0pygame.K_LEFT,\u00a0pygame.K_RIGHT]:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0snake.setDirection({pygame.K_UP:\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'up'<\/span>,\u00a0pygame.K_DOWN:\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'down'<\/span>,\u00a0pygame.K_LEFT:\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'left'<\/span>,\u00a0pygame.K_RIGHT:\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'right'<\/span>}[event.key])<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u66f4\u65b0\u8d2a\u5403\u86c7\u548c\u98df\u7269<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0snake.update(apple):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0apple\u00a0=\u00a0Apple(cfg,\u00a0snake.coords)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0score\u00a0+=\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u5224\u65ad\u6e38\u620f\u662f\u5426\u7ed3\u675f<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0snake.isgameover:\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">break<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u663e\u793a\u6e38\u620f\u91cc\u5fc5\u8981\u7684\u5143\u7d20<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0drawGameGrid(cfg,\u00a0screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0snake.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0apple.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0showScore(cfg,\u00a0score,\u00a0screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u5c4f\u5e55\u66f4\u65b0<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.display.update()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0clock.tick(cfg.FPS)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span>\u00a0endInterface(screen,\u00a0cfg)<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''run'''<\/span><br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0__name__\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'__main__'<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">while<\/span>\u00a0True:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0not\u00a0main(cfg):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">break<\/span><br style=\"outline: 0px;\" \/><\/code><\/pre>\n<h2 style=\"margin-top: 30px; margin-bottom: 15px; outline: 0px; font-weight: bold; font-size: 1.3em; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; text-align: left; white-space: normal; background-color: #ffffff; border-bottom: 2px solid #ef7060;\"><span style=\"margin-right: 3px; padding: 3px 10px 1px; outline: 0px; display: inline-block; background: #ef7060; color: #ffffff; border-top-right-radius: 3px; border-top-left-radius: 3px;\">10\u300124\u70b9\u5c0f\u6e38\u620f<\/span><\/h2>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\">\u73a9\u6cd5\uff1a\u901a\u8fc7\u52a0\u51cf\u4e58\u9664\u64cd\u4f5c\uff0c\u5c0f\u5b66\u751f\u90fd\u6ca1\u95ee\u9898\u7684\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\"><img decoding=\"async\" class=\"rich_pages wxw-img __bg_gif\" style=\"outline: 0px; box-sizing: border-box !important; width: 636px !important; visibility: visible !important;\" title=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" src=\"http:\/\/www.zhushiyao.com\/wp-content\/uploads\/2022\/04\/10-1649835243-2.gif\" alt=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" \/><\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\"><span style=\"font-size: 15px;\">\u6e90\u7801\u5206\u4eab\uff1a<\/span><\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; outline: 0px; color: #000000; font-size: 16px; text-align: left; background-color: #ffffff; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"padding: 15px 16px 16px; outline: 0px; overflow-x: auto; color: #abb2bf; display: -webkit-box; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; font-size: 12px; background: #282c34; border-radius: 5px;\">\u00a0<br style=\"outline: 0px;\" \/>import\u00a0os<br style=\"outline: 0px;\" \/>import\u00a0sys<br style=\"outline: 0px;\" \/>import\u00a0pygame<br style=\"outline: 0px;\" \/>from\u00a0cfg\u00a0import\u00a0*<br style=\"outline: 0px;\" \/>from\u00a0modules\u00a0import\u00a0*<br style=\"outline: 0px;\" \/>from\u00a0fractions\u00a0import\u00a0Fraction<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u68c0\u67e5\u63a7\u4ef6\u662f\u5426\u88ab\u70b9\u51fb'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0checkClicked(group,\u00a0mouse_pos,\u00a0group_type=<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'NUMBER'<\/span>):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0selected\u00a0=\u00a0[]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6570\u5b57\u5361\u7247\/\u8fd0\u7b97\u7b26\u5361\u7247<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0group_type\u00a0==\u00a0GROUPTYPES[0]\u00a0or\u00a0group_type\u00a0==\u00a0GROUPTYPES[1]:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0max_selected\u00a0=\u00a02\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0group_type\u00a0==\u00a0GROUPTYPES[0]\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0num_selected\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0each\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0group:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0num_selected\u00a0+=\u00a0int(each.is_selected)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0each\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0group:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0each.rect.collidepoint(mouse_pos):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0each.is_selected:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0each.is_selected\u00a0=\u00a0not\u00a0each.is_selected<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0num_selected\u00a0-=\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0each.select_order\u00a0=\u00a0None<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0num_selected\u00a0&lt;\u00a0max_selected:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0each.is_selected\u00a0=\u00a0not\u00a0each.is_selected<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0num_selected\u00a0+=\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0each.select_order\u00a0=\u00a0str(num_selected)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0each.is_selected:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0selected.append(each.attribute)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6309\u94ae\u5361\u7247<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0group_type\u00a0==\u00a0GROUPTYPES[2]:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0each\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0group:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0each.rect.collidepoint(mouse_pos):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0each.is_selected\u00a0=\u00a0True<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0selected.append(each.attribute)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u629b\u51fa\u5f02\u5e38<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0raise\u00a0ValueError(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'checkClicked.group_type\u00a0unsupport\u00a0%s,\u00a0expect\u00a0%s,\u00a0%s\u00a0or\u00a0%s...'<\/span>\u00a0%\u00a0(group_type,\u00a0*GROUPTYPES))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span>\u00a0selected<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u83b7\u53d6\u6570\u5b57\u7cbe\u7075\u7ec4'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0getNumberSpritesGroup(numbers):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0number_sprites_group\u00a0=\u00a0pygame.sprite.Group()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0idx,\u00a0number\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0enumerate(numbers):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0args\u00a0=\u00a0(*NUMBERCARD_POSITIONS[idx],\u00a0str(number),\u00a0NUMBERFONT,\u00a0NUMBERFONT_COLORS,\u00a0NUMBERCARD_COLORS,\u00a0str(number))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0number_sprites_group.add(Card(*args))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span>\u00a0number_sprites_group<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u83b7\u53d6\u8fd0\u7b97\u7b26\u7cbe\u7075\u7ec4'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0getOperatorSpritesGroup(operators):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0operator_sprites_group\u00a0=\u00a0pygame.sprite.Group()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0idx,\u00a0operator\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0enumerate(operators):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0args\u00a0=\u00a0(*OPERATORCARD_POSITIONS[idx],\u00a0str(operator),\u00a0OPERATORFONT,\u00a0OPREATORFONT_COLORS,\u00a0OPERATORCARD_COLORS,\u00a0str(operator))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0operator_sprites_group.add(Card(*args))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span>\u00a0operator_sprites_group<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u83b7\u53d6\u6309\u94ae\u7cbe\u7075\u7ec4'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0getButtonSpritesGroup(buttons):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0button_sprites_group\u00a0=\u00a0pygame.sprite.Group()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0idx,\u00a0button\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0enumerate(buttons):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0args\u00a0=\u00a0(*BUTTONCARD_POSITIONS[idx],\u00a0str(button),\u00a0BUTTONFONT,\u00a0BUTTONFONT_COLORS,\u00a0BUTTONCARD_COLORS,\u00a0str(button))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0button_sprites_group.add(Button(*args))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span>\u00a0button_sprites_group<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u8ba1\u7b97'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0calculate(number1,\u00a0number2,\u00a0operator):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0operator_map\u00a0=\u00a0{<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'+'<\/span>:\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'+'<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'-'<\/span>:\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'-'<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'\u00d7'<\/span>:\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'*'<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'\u00f7'<\/span>:\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'\/'<\/span>}<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0try:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0result\u00a0=\u00a0str(<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">eval<\/span>(number1+operator_map[operator]+number2))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span>\u00a0result\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'.'<\/span>\u00a0not\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0result\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>\u00a0str(Fraction(number1+operator_map[operator]+number2))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0except:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span>\u00a0None<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u5728\u5c4f\u5e55\u4e0a\u663e\u793a\u4fe1\u606f'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0showInfo(text,\u00a0screen):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0rect\u00a0=\u00a0pygame.Rect(200,\u00a0180,\u00a0400,\u00a0200)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.draw.rect(screen,\u00a0PAPAYAWHIP,\u00a0rect)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0font\u00a0=\u00a0pygame.font.Font(FONTPATH,\u00a040)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0text_render\u00a0=\u00a0font.render(text,\u00a0True,\u00a0BLACK)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0font_size\u00a0=\u00a0font.size(text)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0screen.blit(text_render,\u00a0(rect.x+(rect.width-font_size[0])\/2,\u00a0rect.y+(rect.height-font_size[1])\/2))<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u4e3b\u51fd\u6570'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0main():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u521d\u59cb\u5316,\u00a0\u5bfc\u5165\u5fc5\u8981\u7684\u6e38\u620f\u7d20\u6750<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.init()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.init()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0screen\u00a0=\u00a0pygame.display.set_mode(SCREENSIZE)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.display.set_caption(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'24\u00a0point\u00a0\u2014\u2014\u00a0\u4e5d\u6b4c'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0win_sound\u00a0=\u00a0pygame.mixer.Sound(AUDIOWINPATH)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0lose_sound\u00a0=\u00a0pygame.mixer.Sound(AUDIOLOSEPATH)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0warn_sound\u00a0=\u00a0pygame.mixer.Sound(AUDIOWARNPATH)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.music.load(BGMPATH)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.music.play(-1,\u00a00.0)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a024\u70b9\u6e38\u620f\u751f\u6210\u5668<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0game24_gen\u00a0=\u00a0game24Generator()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0game24_gen.generate()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u7cbe\u7075\u7ec4<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u6570\u5b57<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0number_sprites_group\u00a0=\u00a0getNumberSpritesGroup(game24_gen.numbers_now)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u8fd0\u7b97\u7b26<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0operator_sprites_group\u00a0=\u00a0getOperatorSpritesGroup(OPREATORS)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u6309\u94ae<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0button_sprites_group\u00a0=\u00a0getButtonSpritesGroup(BUTTONS)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6e38\u620f\u4e3b\u5faa\u73af<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0clock\u00a0=\u00a0pygame.time.Clock()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0selected_numbers\u00a0=\u00a0[]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0selected_operators\u00a0=\u00a0[]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0selected_buttons\u00a0=\u00a0[]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0is_win\u00a0=\u00a0False<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">while<\/span>\u00a0True:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0event\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0pygame.event.get():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.type\u00a0==\u00a0pygame.QUIT:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.quit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sys.exit(-1)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0event.type\u00a0==\u00a0pygame.MOUSEBUTTONUP:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mouse_pos\u00a0=\u00a0pygame.mouse.get_pos()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0selected_numbers\u00a0=\u00a0checkClicked(number_sprites_group,\u00a0mouse_pos,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'NUMBER'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0selected_operators\u00a0=\u00a0checkClicked(operator_sprites_group,\u00a0mouse_pos,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'OPREATOR'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0selected_buttons\u00a0=\u00a0checkClicked(button_sprites_group,\u00a0mouse_pos,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'BUTTON'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0screen.fill(AZURE)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u66f4\u65b0\u6570\u5b57<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0len(selected_numbers)\u00a0==\u00a02\u00a0and\u00a0len(selected_operators)\u00a0==\u00a01:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0noselected_numbers\u00a0=\u00a0[]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0each\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0number_sprites_group:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0each.is_selected:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0each.select_order\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'1'<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0selected_number1\u00a0=\u00a0each.attribute<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0each.select_order\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'2'<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0selected_number2\u00a0=\u00a0each.attribute<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0raise\u00a0ValueError(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Unknow\u00a0select_order\u00a0%s,\u00a0expect\u00a01\u00a0or\u00a02...'<\/span>\u00a0%\u00a0each.select_order)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0noselected_numbers.append(each.attribute)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0each.is_selected\u00a0=\u00a0False<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0each\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0operator_sprites_group:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0each.is_selected\u00a0=\u00a0False<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0result\u00a0=\u00a0calculate(selected_number1,\u00a0selected_number2,\u00a0*selected_operators)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0result\u00a0is\u00a0not\u00a0None:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0game24_gen.numbers_now\u00a0=\u00a0noselected_numbers\u00a0+\u00a0[result]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0is_win\u00a0=\u00a0game24_gen.check()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0is_win:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0win_sound.play()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0not\u00a0is_win\u00a0and\u00a0len(game24_gen.numbers_now)\u00a0==\u00a01:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0lose_sound.play()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0warn_sound.play()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0selected_numbers\u00a0=\u00a0[]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0selected_operators\u00a0=\u00a0[]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0number_sprites_group\u00a0=\u00a0getNumberSpritesGroup(game24_gen.numbers_now)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u7cbe\u7075\u90fd\u753b\u5230screen\u4e0a<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0each\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0number_sprites_group:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0each.draw(screen,\u00a0pygame.mouse.get_pos())<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0each\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0operator_sprites_group:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0each.draw(screen,\u00a0pygame.mouse.get_pos())<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0each\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0button_sprites_group:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0selected_buttons\u00a0and\u00a0selected_buttons[0]\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'RESET'<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'NEXT'<\/span>]:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0is_win\u00a0=\u00a0False<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0selected_buttons\u00a0and\u00a0each.attribute\u00a0==\u00a0selected_buttons[0]:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0each.is_selected\u00a0=\u00a0False<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0number_sprites_group\u00a0=\u00a0each.do(game24_gen,\u00a0getNumberSpritesGroup,\u00a0number_sprites_group,\u00a0button_sprites_group)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0selected_buttons\u00a0=\u00a0[]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0each.draw(screen,\u00a0pygame.mouse.get_pos())<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6e38\u620f\u80dc\u5229<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0is_win:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0showInfo(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Congratulations'<\/span>,\u00a0screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6e38\u620f\u5931\u8d25<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0not\u00a0is_win\u00a0and\u00a0len(game24_gen.numbers_now)\u00a0==\u00a01:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0showInfo(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Game\u00a0Over'<\/span>,\u00a0screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.display.flip()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0clock.tick(30)<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''run'''<\/span><br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0__name__\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'__main__'<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0main()<br style=\"outline: 0px;\" \/><\/code><\/pre>\n<h2 style=\"margin-top: 30px; margin-bottom: 15px; outline: 0px; font-weight: bold; font-size: 1.3em; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; text-align: left; white-space: normal; background-color: #ffffff; border-bottom: 2px solid #ef7060;\"><span style=\"margin-right: 3px; padding: 3px 10px 1px; outline: 0px; display: inline-block; background: #ef7060; color: #ffffff; border-top-right-radius: 3px; border-top-left-radius: 3px;\">11\u3001\u5e73\u8861\u6728<\/span><\/h2>\n<p style=\"text-align: center; margin-bottom: 0em;\"><img decoding=\"async\" class=\"rich_pages wxw-img js_insertlocalimg\" title=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" src=\"http:\/\/www.zhushiyao.com\/wp-content\/uploads\/2022\/04\/10-1649835243.jpeg\" alt=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" \/><\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\"><span style=\"font-size: 15px;\">\u73a9\u6cd5\uff1a\u4e5f\u662f\u5c0f\u65f6\u5019\u7684\u7ecf\u5178\u6e38\u620f\uff0c\u63a7\u5236\u5de6\u53f3\u5c31\u884c\uff0c\u5230\u540e\u9762\u624d\u6709\u4e00\u70b9\u70b9\u96be\u5ea6\u3002<br \/>\n<\/span><\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\"><span style=\"font-size: 15px;\">\u6e90\u7801\u5206\u4eab\uff1a<\/span><\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; outline: 0px; color: #000000; font-size: 16px; text-align: left; background-color: #ffffff; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"padding: 15px 16px 16px; outline: 0px; overflow-x: auto; color: #abb2bf; display: -webkit-box; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; font-size: 12px; background: #282c34; border-radius: 5px;\">\u00a0<br style=\"outline: 0px;\" \/>import\u00a0cfg<br style=\"outline: 0px;\" \/>from\u00a0modules\u00a0import\u00a0breakoutClone<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u4e3b\u51fd\u6570'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0main():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0game\u00a0=\u00a0breakoutClone(cfg)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0game.run()<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''run'''<\/span><br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0__name__\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'__main__'<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0main()<br style=\"outline: 0px;\" \/><\/code><\/pre>\n<h2 style=\"margin-top: 30px; margin-bottom: 15px; outline: 0px; font-weight: bold; font-size: 1.3em; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; text-align: left; white-space: normal; background-color: #ffffff; border-bottom: 2px solid #ef7060;\"><span style=\"margin-right: 3px; padding: 3px 10px 1px; outline: 0px; display: inline-block; background: #ef7060; color: #ffffff; border-top-right-radius: 3px; border-top-left-radius: 3px;\">12\u3001\u5916\u661f\u4eba\u5165\u4fb5<\/span><\/h2>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\"><span style=\"font-size: 15px;\">\u73a9\u6cd5\uff1a\u8fd9\u8ba9\u6211\u60f3\u8d77\u4e86\u9b42\u6597\u7f57\u90a3\u7b2c\u51e0\u5173\u7684boss\uff0c\u6709\u70b9\u7c7b\u4f3c\uff0c\u4e0d\u8fc7\u9b42\u6597\u7f57\u90a3\u4e2a\u96be\u5ea6\u80af\u5b9a\u9ad8\u70b9\u3002<\/span><\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\"><img decoding=\"async\" class=\"rich_pages wxw-img __bg_gif\" style=\"outline: 0px; box-sizing: border-box !important; width: 636px !important; visibility: visible !important;\" title=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" src=\"http:\/\/www.zhushiyao.com\/wp-content\/uploads\/2022\/04\/1-1649835243-1.gif\" alt=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" \/><\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\"><span style=\"font-size: 15px;\">\u6e90\u7801\u5206\u4eab\uff1a<\/span><\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; outline: 0px; color: #000000; font-size: 16px; text-align: left; background-color: #ffffff; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"padding: 15px 16px 16px; outline: 0px; overflow-x: auto; color: #abb2bf; display: -webkit-box; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; font-size: 12px; background: #282c34; border-radius: 5px;\">\u00a0<br style=\"outline: 0px;\" \/>import\u00a0os<br style=\"outline: 0px;\" \/>import\u00a0sys<br style=\"outline: 0px;\" \/>import\u00a0cfg<br style=\"outline: 0px;\" \/>import\u00a0random<br style=\"outline: 0px;\" \/>import\u00a0pygame<br style=\"outline: 0px;\" \/>from\u00a0modules\u00a0import\u00a0*<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u5f00\u59cb\u6e38\u620f'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0startGame(screen):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0clock\u00a0=\u00a0pygame.time.Clock()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u52a0\u8f7d\u5b57\u4f53<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0font\u00a0=\u00a0pygame.font.SysFont(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'arial'<\/span>,\u00a018)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0not\u00a0os.path.isfile(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'score'<\/span>):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0f\u00a0=\u00a0open(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'score'<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'w'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0f.write(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'0'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0f.close()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0with\u00a0open(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'score'<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'r'<\/span>)\u00a0as\u00a0f:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0highest_score\u00a0=\u00a0int(f.read().strip())<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u654c\u65b9<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0enemies_group\u00a0=\u00a0pygame.sprite.Group()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0i\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0range(55):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0i\u00a0&lt;\u00a011:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy\u00a0=\u00a0enemySprite(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'small'<\/span>,\u00a0i,\u00a0cfg.WHITE,\u00a0cfg.WHITE)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0i\u00a0&lt;\u00a033:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy\u00a0=\u00a0enemySprite(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'medium'<\/span>,\u00a0i,\u00a0cfg.WHITE,\u00a0cfg.WHITE)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy\u00a0=\u00a0enemySprite(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'large'<\/span>,\u00a0i,\u00a0cfg.WHITE,\u00a0cfg.WHITE)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy.rect.x\u00a0=\u00a085\u00a0+\u00a0(i\u00a0%\u00a011)\u00a0*\u00a050<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy.rect.y\u00a0=\u00a0120\u00a0+\u00a0(i\u00a0\/\/\u00a011)\u00a0*\u00a045<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemies_group.add(enemy)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0boomed_enemies_group\u00a0=\u00a0pygame.sprite.Group()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0en_bullets_group\u00a0=\u00a0pygame.sprite.Group()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0ufo\u00a0=\u00a0ufoSprite(color=cfg.RED)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6211\u65b9<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0myaircraft\u00a0=\u00a0aircraftSprite(color=cfg.GREEN,\u00a0bullet_color=cfg.WHITE)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0my_bullets_group\u00a0=\u00a0pygame.sprite.Group()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u7528\u4e8e\u63a7\u5236\u654c\u65b9\u4f4d\u7f6e\u66f4\u65b0<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u79fb\u52a8\u4e00\u884c<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0enemy_move_count\u00a0=\u00a024<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0enemy_move_interval\u00a0=\u00a024<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0enemy_move_flag\u00a0=\u00a0False<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u6539\u53d8\u79fb\u52a8\u65b9\u5411(\u6539\u53d8\u65b9\u5411\u7684\u540c\u65f6\u96c6\u4f53\u4e0b\u964d\u4e00\u6b21)<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0enemy_change_direction_count\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0enemy_change_direction_interval\u00a0=\u00a060<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0enemy_need_down\u00a0=\u00a0False<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0enemy_move_right\u00a0=\u00a0True<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0enemy_need_move_row\u00a0=\u00a06<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0enemy_max_row\u00a0=\u00a05<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u7528\u4e8e\u63a7\u5236\u654c\u65b9\u53d1\u5c04\u5b50\u5f39<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0enemy_shot_interval\u00a0=\u00a0100<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0enemy_shot_count\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0enemy_shot_flag\u00a0=\u00a0False<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u6e38\u620f\u8fdb\u884c\u4e2d<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0running\u00a0=\u00a0True<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0is_win\u00a0=\u00a0False<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u4e3b\u5faa\u73af<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">while<\/span>\u00a0running:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0screen.fill(cfg.BLACK)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0event\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0pygame.event.get():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u70b9\u53f3\u4e0a\u89d2\u7684X\u6216\u8005\u6309Esc\u952e\u9000\u51fa\u6e38\u620f<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.type\u00a0==\u00a0pygame.QUIT:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.quit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sys.exit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.type\u00a0==\u00a0pygame.KEYDOWN:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.key\u00a0==\u00a0pygame.K_ESCAPE:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.quit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sys.exit()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u5c04\u51fb<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0event.type\u00a0==\u00a0pygame.MOUSEBUTTONDOWN:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0my_bullet\u00a0=\u00a0myaircraft.shot()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0my_bullet:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0my_bullets_group.add(my_bullet)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u6211\u65b9\u5b50\u5f39\u4e0e\u654c\u65b9\/UFO\u78b0\u649e\u68c0\u6d4b<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0enemy\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0enemies_group:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0pygame.sprite.spritecollide(enemy,\u00a0my_bullets_group,\u00a0True,\u00a0None):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0boomed_enemies_group.add(enemy)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemies_group.remove(enemy)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0myaircraft.score\u00a0+=\u00a0enemy.reward<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0pygame.sprite.spritecollide(ufo,\u00a0my_bullets_group,\u00a0True,\u00a0None):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ufo.is_dead\u00a0=\u00a0True<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0myaircraft.score\u00a0+=\u00a0ufo.reward<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u66f4\u65b0\u5e76\u753b\u654c\u65b9<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0----\u654c\u65b9\u5b50\u5f39<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy_shot_count\u00a0+=\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0enemy_shot_count\u00a0&gt;\u00a0enemy_shot_interval:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy_shot_flag\u00a0=\u00a0True<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemies_survive_list\u00a0=\u00a0[enemy.number\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0enemy\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0enemies_group]<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0shot_number\u00a0=\u00a0random.choice(enemies_survive_list)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy_shot_count\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0----\u654c\u65b9\u79fb\u52a8<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy_move_count\u00a0+=\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0enemy_move_count\u00a0&gt;\u00a0enemy_move_interval:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy_move_count\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy_move_flag\u00a0=\u00a0True<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy_need_move_row\u00a0-=\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0enemy_need_move_row\u00a0==\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy_need_move_row\u00a0=\u00a0enemy_max_row<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy_change_direction_count\u00a0+=\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0enemy_change_direction_count\u00a0&gt;\u00a0enemy_change_direction_interval:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy_change_direction_count\u00a0=\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy_move_right\u00a0=\u00a0not\u00a0enemy_move_right<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy_need_down\u00a0=\u00a0True<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0----\u6bcf\u6b21\u4e0b\u964d\u63d0\u9ad8\u79fb\u52a8\u548c\u5c04\u51fb\u901f\u5ea6<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy_move_interval\u00a0=\u00a0max(15,\u00a0enemy_move_interval-3)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy_shot_interval\u00a0=\u00a0max(50,\u00a0enemy_move_interval-10)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0----\u904d\u5386\u66f4\u65b0<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0enemy\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0enemies_group:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0enemy_shot_flag:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0enemy.number\u00a0==\u00a0shot_number:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0en_bullet\u00a0=\u00a0enemy.shot()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0en_bullets_group.add(en_bullet)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0enemy_move_flag:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0enemy.number\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0range((enemy_need_move_row-1)*11,\u00a0enemy_need_move_row*11):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0enemy_move_right:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy.update(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'right'<\/span>,\u00a0cfg.SCREENSIZE[1])<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy.update(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'left'<\/span>,\u00a0cfg.SCREENSIZE[1])<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy.update(None,\u00a0cfg.SCREENSIZE[1])<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0enemy_need_down:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0enemy.update(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'down'<\/span>,\u00a0cfg.SCREENSIZE[1]):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0running\u00a0=\u00a0False<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0is_win\u00a0=\u00a0False<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy.change_count\u00a0-=\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy_move_flag\u00a0=\u00a0False<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy_need_down\u00a0=\u00a0False<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0enemy_shot_flag\u00a0=\u00a0False<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0----\u654c\u65b9\u7206\u70b8\u7279\u6548<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0boomed_enemy\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0boomed_enemies_group:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0boomed_enemy.boom(screen):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0boomed_enemies_group.remove(boomed_enemy)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0del\u00a0boomed_enemy<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u654c\u65b9\u5b50\u5f39\u4e0e\u6211\u65b9\u98de\u8239\u78b0\u649e\u68c0\u6d4b<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0not\u00a0myaircraft.one_dead:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0pygame.sprite.spritecollide(myaircraft,\u00a0en_bullets_group,\u00a0True,\u00a0None):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0myaircraft.one_dead\u00a0=\u00a0True<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0myaircraft.one_dead:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0myaircraft.boom(screen):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0myaircraft.resetBoom()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0myaircraft.num_life\u00a0-=\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0myaircraft.num_life\u00a0&lt;\u00a01:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0running\u00a0=\u00a0False<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0is_win\u00a0=\u00a0False<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0----\u66f4\u65b0\u98de\u8239<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0myaircraft.update(cfg.SCREENSIZE[0])<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0----\u753b\u98de\u8239<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0myaircraft.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0(not\u00a0ufo.has_boomed)\u00a0and\u00a0(ufo.is_dead):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0ufo.boom(screen):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ufo.has_boomed\u00a0=\u00a0True<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0----\u66f4\u65b0UFO<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ufo.update(cfg.SCREENSIZE[0])<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0----\u753bUFO<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ufo.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u753b\u6211\u65b9\u98de\u8239\u5b50\u5f39<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0bullet\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0my_bullets_group:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0bullet.update():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0my_bullets_group.remove(bullet)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0del\u00a0bullet<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0bullet.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u753b\u654c\u65b9\u5b50\u5f39<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">for<\/span>\u00a0bullet\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0en_bullets_group:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0bullet.update(cfg.SCREENSIZE[1]):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0en_bullets_group.remove(bullet)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0del\u00a0bullet<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">else<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0bullet.draw(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0myaircraft.score\u00a0&gt;\u00a0highest_score:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0highest_score\u00a0=\u00a0myaircraft.score<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u5f97\u5206\u6bcf\u589e\u52a02000\u6211\u65b9\u98de\u8239\u589e\u52a0\u4e00\u6761\u751f\u547d<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0(myaircraft.score\u00a0%\u00a02000\u00a0==\u00a00)\u00a0and\u00a0(myaircraft.score\u00a0&gt;\u00a00)\u00a0and\u00a0(myaircraft.score\u00a0!=\u00a0myaircraft.old_score):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0myaircraft.old_score\u00a0=\u00a0myaircraft.score<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0myaircraft.num_life\u00a0=\u00a0min(myaircraft.num_life\u00a0+\u00a01,\u00a0myaircraft.max_num_life)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u654c\u4eba\u90fd\u6b7b\u5149\u4e86\u7684\u8bdd\u5c31\u80dc\u5229\u4e86<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0len(enemies_group)\u00a0&lt;\u00a01:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0is_win\u00a0=\u00a0True<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0running\u00a0=\u00a0False<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u663e\u793a\u6587\u5b57<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0----\u5f53\u524d\u5f97\u5206<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0showText(screen,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'SCORE:\u00a0'<\/span>,\u00a0cfg.WHITE,\u00a0font,\u00a0200,\u00a08)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0showText(screen,\u00a0str(myaircraft.score),\u00a0cfg.WHITE,\u00a0font,\u00a0200,\u00a024)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0----\u654c\u4eba\u6570\u91cf<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0showText(screen,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'ENEMY:\u00a0'<\/span>,\u00a0cfg.WHITE,\u00a0font,\u00a0370,\u00a08)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0showText(screen,\u00a0str(len(enemies_group)),\u00a0cfg.WHITE,\u00a0font,\u00a0370,\u00a024)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0----\u5386\u53f2\u6700\u9ad8\u5206<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0showText(screen,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'HIGHEST:\u00a0'<\/span>,\u00a0cfg.WHITE,\u00a0font,\u00a0540,\u00a08)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0showText(screen,\u00a0str(highest_score),\u00a0cfg.WHITE,\u00a0font,\u00a0540,\u00a024)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0----FPS<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0showText(screen,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'FPS:\u00a0'<\/span>\u00a0+\u00a0str(int(clock.get_fps())),\u00a0cfg.RED,\u00a0font,\u00a08,\u00a08)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0--\u663e\u793a\u5269\u4f59\u751f\u547d\u503c<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0showLife(screen,\u00a0myaircraft.num_life,\u00a0cfg.GREEN)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pygame.display.update()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0clock.tick(cfg.FPS)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0with\u00a0open(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'score'<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'w'<\/span>)\u00a0as\u00a0f:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0f.write(str(highest_score))<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span>\u00a0is_win<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''\u4e3b\u51fd\u6570'''<\/span><br style=\"outline: 0px;\" \/>def\u00a0main():<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0\u521d\u59cb\u5316<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.init()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.display.set_caption(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'\u5916\u661f\u4eba\u5165\u4fb5\u00a0\u2014\u2014\u00a0\u4e5d\u6b4c'<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0screen\u00a0=\u00a0pygame.display.set_mode(cfg.SCREENSIZE)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.init()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.music.load(cfg.BGMPATH)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.music.set_volume(0.4)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0pygame.mixer.music.play(-1)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">while<\/span>\u00a0True:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0is_win\u00a0=\u00a0startGame(screen)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0endInterface(screen,\u00a0cfg.BLACK,\u00a0is_win)<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'''run'''<\/span><br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0__name__\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'__main__'<\/span>:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0main()<br style=\"outline: 0px;\" \/><\/code><\/pre>\n<h2 style=\"margin-top: 30px; margin-bottom: 15px; outline: 0px; font-weight: bold; font-size: 1.3em; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; text-align: left; white-space: normal; background-color: #ffffff; border-bottom: 2px solid #ef7060;\"><span style=\"margin-right: 3px; padding: 3px 10px 1px; outline: 0px; display: inline-block; background: #ef7060; color: #ffffff; border-top-right-radius: 3px; border-top-left-radius: 3px;\">13\u3001\u4e95\u5b57\u68cb888<\/span><\/h2>\n<p style=\"text-align: center; margin-bottom: 0em;\"><img decoding=\"async\" class=\"rich_pages wxw-img js_insertlocalimg\" title=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" src=\"http:\/\/www.zhushiyao.com\/wp-content\/uploads\/2022\/04\/10-1649835244.png\" alt=\"\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f(\u9644\u6e90\u7801)\" \/><\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\"><span style=\"font-size: 15px;\">\u73a9\u6cd5\uff1a\u6211\u6253\u8d4c\u5927\u5bb6\u5728\u8bfe\u5802\u4e0a\u80af\u5b9a\u73a9\u8fc7\u8fd9\u4e2a\uff0c\u60f3\u60f3\u5f53\u5e74\u548c\u540c\u684c\u73a9\u8fd9\u4e2a\u5e9f\u4e86\u597d\u51e0\u672c\u672c\u5b50\u3002<br \/>\n<\/span><\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\"><span style=\"font-size: 15px;\">\u6e90\u7801\u5206\u4eab<\/span><\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; outline: 0px; color: #000000; font-size: 16px; text-align: left; background-color: #ffffff; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"padding: 15px 16px 16px; outline: 0px; overflow-x: auto; color: #abb2bf; display: -webkit-box; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; font-size: 12px; background: #282c34; border-radius: 5px;\">from\u00a0tkinter\u00a0import\u00a0*<br style=\"outline: 0px;\" \/>import\u00a0tkinter.messagebox\u00a0as\u00a0msg<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>root\u00a0=\u00a0Tk()<br style=\"outline: 0px;\" \/>root.title(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'TIC-TAC-TOE---Project\u00a0Gurukul'<\/span>)<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0labels<\/span><br style=\"outline: 0px;\" \/>Label(root,\u00a0text=<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"player1\u00a0:\u00a0X\"<\/span>,\u00a0font=<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"times\u00a015\"<\/span>).grid(row=0,\u00a0column=1)<br style=\"outline: 0px;\" \/>Label(root,\u00a0text=<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"player2\u00a0:\u00a0O\"<\/span>,\u00a0font=<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"times\u00a015\"<\/span>).grid(row=0,\u00a0column=2)<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>digits\u00a0=\u00a0[1,\u00a02,\u00a03,\u00a04,\u00a05,\u00a06,\u00a07,\u00a08,\u00a09]<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0for\u00a0player1\u00a0sign\u00a0=\u00a0X\u00a0and\u00a0for\u00a0player2\u00a0sign=\u00a0Y<\/span><br style=\"outline: 0px;\" \/>mark\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">''<\/span><br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0counting\u00a0the\u00a0no.\u00a0of\u00a0click<\/span><br style=\"outline: 0px;\" \/>count\u00a0=\u00a00<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>panels\u00a0=\u00a0[<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"panel\"<\/span>]\u00a0*\u00a010<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>def\u00a0win(panels,\u00a0sign):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">return<\/span>\u00a0((panels[1]\u00a0==\u00a0panels[2]\u00a0==\u00a0panels[3]\u00a0==\u00a0sign)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0or\u00a0(panels[1]\u00a0==\u00a0panels[4]\u00a0==\u00a0panels[7]\u00a0==\u00a0sign)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0or\u00a0(panels[1]\u00a0==\u00a0panels[5]\u00a0==\u00a0panels[9]\u00a0==\u00a0sign)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0or\u00a0(panels[2]\u00a0==\u00a0panels[5]\u00a0==\u00a0panels[8]\u00a0==\u00a0sign)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0or\u00a0(panels[3]\u00a0==\u00a0panels[6]\u00a0==\u00a0panels[9]\u00a0==\u00a0sign)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0or\u00a0(panels[3]\u00a0==\u00a0panels[5]\u00a0==\u00a0panels[7]\u00a0==\u00a0sign)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0or\u00a0(panels[4]\u00a0==\u00a0panels[5]\u00a0==\u00a0panels[6]\u00a0==\u00a0sign)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0or\u00a0(panels[7]\u00a0==\u00a0panels[8]\u00a0==\u00a0panels[9]\u00a0==\u00a0sign))<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>def\u00a0checker(digit):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0global\u00a0count,\u00a0mark,\u00a0digits<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">#\u00a0Check\u00a0which\u00a0button\u00a0clicked<\/span><br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0digit\u00a0==\u00a01\u00a0and\u00a0digit\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0digits:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0digits.remove(digit)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">##player1\u00a0will\u00a0play\u00a0if\u00a0the\u00a0value\u00a0of\u00a0count\u00a0is\u00a0even\u00a0and\u00a0for\u00a0odd\u00a0player2\u00a0will\u00a0play<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0count\u00a0%\u00a02\u00a0==\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mark\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'X'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0panels[digit]\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0count\u00a0%\u00a02\u00a0!=\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mark\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'O'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0panels[digit]\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0button1.config(text=mark)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0count\u00a0=\u00a0count\u00a0+\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sign\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0(win(panels,\u00a0sign)\u00a0and\u00a0sign\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'X'<\/span>):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0msg.showinfo(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Result\"<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Player1\u00a0wins\"<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0root.destroy()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0(win(panels,\u00a0sign)\u00a0and\u00a0sign\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'O'<\/span>):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0msg.showinfo(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Result\"<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Player2\u00a0wins\"<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0root.destroy()<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0digit\u00a0==\u00a02\u00a0and\u00a0digit\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0digits:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0digits.remove(digit)<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0count\u00a0%\u00a02\u00a0==\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mark\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'X'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0panels[digit]\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0count\u00a0%\u00a02\u00a0!=\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mark\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'O'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0panels[digit]\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0button2.config(text=mark)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0count\u00a0=\u00a0count\u00a0+\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sign\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0(win(panels,\u00a0sign)\u00a0and\u00a0sign\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'X'<\/span>):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0msg.showinfo(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Result\"<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Player1\u00a0wins\"<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0root.destroy()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0(win(panels,\u00a0sign)\u00a0and\u00a0sign\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'O'<\/span>):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0msg.showinfo(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Result\"<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Player2\u00a0wins\"<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0root.destroy()<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0digit\u00a0==\u00a03\u00a0and\u00a0digit\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0digits:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0digits.remove(digit)<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0count\u00a0%\u00a02\u00a0==\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mark\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'X'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0panels[digit]\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0count\u00a0%\u00a02\u00a0!=\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mark\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'O'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0panels[digit]\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0button3.config(text=mark)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0count\u00a0=\u00a0count\u00a0+\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sign\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0(win(panels,\u00a0sign)\u00a0and\u00a0sign\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'X'<\/span>):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0msg.showinfo(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Result\"<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Player1\u00a0wins\"<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0root.destroy()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0(win(panels,\u00a0sign)\u00a0and\u00a0sign\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'O'<\/span>):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0msg.showinfo(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Result\"<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Player2\u00a0wins\"<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0root.destroy()<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0digit\u00a0==\u00a04\u00a0and\u00a0digit\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0digits:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0digits.remove(digit)<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0count\u00a0%\u00a02\u00a0==\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mark\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'X'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0panels[digit]\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0count\u00a0%\u00a02\u00a0!=\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mark\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'O'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0panels[digit]\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0button4.config(text=mark)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0count\u00a0=\u00a0count\u00a0+\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sign\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0(win(panels,\u00a0sign)\u00a0and\u00a0sign\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'X'<\/span>):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0msg.showinfo(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Result\"<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Player1\u00a0wins\"<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0root.destroy()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0(win(panels,\u00a0sign)\u00a0and\u00a0sign\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'O'<\/span>):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0msg.showinfo(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Result\"<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Player2\u00a0wins\"<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0root.destroy()<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0digit\u00a0==\u00a05\u00a0and\u00a0digit\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0digits:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0digits.remove(digit)<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0count\u00a0%\u00a02\u00a0==\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mark\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'X'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0panels[digit]\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0count\u00a0%\u00a02\u00a0!=\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mark\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'O'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0panels[digit]\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0button5.config(text=mark)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0count\u00a0=\u00a0count\u00a0+\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sign\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0(win(panels,\u00a0sign)\u00a0and\u00a0sign\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'X'<\/span>):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0msg.showinfo(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Result\"<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Player1\u00a0wins\"<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0root.destroy()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0(win(panels,\u00a0sign)\u00a0and\u00a0sign\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'O'<\/span>):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0msg.showinfo(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Result\"<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Player2\u00a0wins\"<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0root.destroy()<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0digit\u00a0==\u00a06\u00a0and\u00a0digit\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0digits:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0digits.remove(digit)<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0count\u00a0%\u00a02\u00a0==\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mark\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'X'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0panels[digit]\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0count\u00a0%\u00a02\u00a0!=\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mark\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'O'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0panels[digit]\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0button6.config(text=mark)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0count\u00a0=\u00a0count\u00a0+\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sign\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0(win(panels,\u00a0sign)\u00a0and\u00a0sign\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'X'<\/span>):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0msg.showinfo(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Result\"<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Player1\u00a0wins\"<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0root.destroy()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0(win(panels,\u00a0sign)\u00a0and\u00a0sign\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'O'<\/span>):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0msg.showinfo(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Result\"<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Player2\u00a0wins\"<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0root.destroy()<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0digit\u00a0==\u00a07\u00a0and\u00a0digit\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0digits:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0digits.remove(digit)<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0count\u00a0%\u00a02\u00a0==\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mark\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'X'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0panels[digit]\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0count\u00a0%\u00a02\u00a0!=\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mark\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'O'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0panels[digit]\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0button7.config(text=mark)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0count\u00a0=\u00a0count\u00a0+\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sign\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0(win(panels,\u00a0sign)\u00a0and\u00a0sign\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'X'<\/span>):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0msg.showinfo(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Result\"<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Player1\u00a0wins\"<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0root.destroy()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0(win(panels,\u00a0sign)\u00a0and\u00a0sign\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'O'<\/span>):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0msg.showinfo(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Result\"<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Player2\u00a0wins\"<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0root.destroy()<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0digit\u00a0==\u00a08\u00a0and\u00a0digit\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0digits:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0digits.remove(digit)<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0count\u00a0%\u00a02\u00a0==\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mark\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'X'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0panels[digit]\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0count\u00a0%\u00a02\u00a0!=\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mark\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'O'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0panels[digit]\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0button8.config(text=mark)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0count\u00a0=\u00a0count\u00a0+\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sign\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0(win(panels,\u00a0sign)\u00a0and\u00a0sign\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'X'<\/span>):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0msg.showinfo(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Result\"<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Player1\u00a0wins\"<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0root.destroy()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0(win(panels,\u00a0sign)\u00a0and\u00a0sign\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'O'<\/span>):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0msg.showinfo(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Result\"<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Player2\u00a0wins\"<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0root.destroy()<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0digit\u00a0==\u00a09\u00a0and\u00a0digit\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">in<\/span>\u00a0digits:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0digits.remove(digit)<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0count\u00a0%\u00a02\u00a0==\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mark\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'X'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0panels[digit]\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0count\u00a0%\u00a02\u00a0!=\u00a00:<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mark\u00a0=\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'O'<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0panels[digit]\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0button9.config(text=mark)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0count\u00a0=\u00a0count\u00a0+\u00a01<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sign\u00a0=\u00a0mark<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0(win(panels,\u00a0sign)\u00a0and\u00a0sign\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'X'<\/span>):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0msg.showinfo(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Result\"<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Player1\u00a0wins\"<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0root.destroy()<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">elif<\/span>\u00a0(win(panels,\u00a0sign)\u00a0and\u00a0sign\u00a0==\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'O'<\/span>):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0msg.showinfo(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Result\"<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Player2\u00a0wins\"<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0root.destroy()<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">###if\u00a0count\u00a0is\u00a0greater\u00a0then\u00a08\u00a0then\u00a0the\u00a0match\u00a0has\u00a0been\u00a0tied<\/span><br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0<span style=\"outline: 0px; color: #c678dd; line-height: 26px;\">if<\/span>\u00a0(count\u00a0&gt;\u00a08\u00a0and\u00a0win(panels,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'X'<\/span>)\u00a0==\u00a0False\u00a0and\u00a0win(panels,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'O'<\/span>)\u00a0==\u00a0False):<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0msg.showinfo(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Result\"<\/span>,\u00a0<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">\"Match\u00a0Tied\"<\/span>)<br style=\"outline: 0px;\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0root.destroy()<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/><span style=\"outline: 0px; color: #5c6370; font-style: italic; line-height: 26px;\">####define\u00a0buttons<\/span><br style=\"outline: 0px;\" \/>button1\u00a0=\u00a0Button(root,\u00a0width=15,\u00a0font=(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Times\u00a016\u00a0bold'<\/span>),\u00a0height=7,\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">command<\/span>=lambda:\u00a0checker(1))<br style=\"outline: 0px;\" \/>button1.grid(row=1,\u00a0column=1)<br style=\"outline: 0px;\" \/>button2\u00a0=\u00a0Button(root,\u00a0width=15,\u00a0height=7,\u00a0font=(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Times\u00a016\u00a0bold'<\/span>),\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">command<\/span>=lambda:\u00a0checker(2))<br style=\"outline: 0px;\" \/>button2.grid(row=1,\u00a0column=2)<br style=\"outline: 0px;\" \/>button3\u00a0=\u00a0Button(root,\u00a0width=15,\u00a0height=7,\u00a0font=(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Times\u00a016\u00a0bold'<\/span>),\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">command<\/span>=lambda:\u00a0checker(3))<br style=\"outline: 0px;\" \/>button3.grid(row=1,\u00a0column=3)<br style=\"outline: 0px;\" \/>button4\u00a0=\u00a0Button(root,\u00a0width=15,\u00a0height=7,\u00a0font=(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Times\u00a016\u00a0bold'<\/span>),\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">command<\/span>=lambda:\u00a0checker(4))<br style=\"outline: 0px;\" \/>button4.grid(row=2,\u00a0column=1)<br style=\"outline: 0px;\" \/>button5\u00a0=\u00a0Button(root,\u00a0width=15,\u00a0height=7,\u00a0font=(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Times\u00a016\u00a0bold'<\/span>),\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">command<\/span>=lambda:\u00a0checker(5))<br style=\"outline: 0px;\" \/>button5.grid(row=2,\u00a0column=2)<br style=\"outline: 0px;\" \/>button6\u00a0=\u00a0Button(root,\u00a0width=15,\u00a0height=7,\u00a0font=(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Times\u00a016\u00a0bold'<\/span>),\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">command<\/span>=lambda:\u00a0checker(6))<br style=\"outline: 0px;\" \/>button6.grid(row=2,\u00a0column=3)<br style=\"outline: 0px;\" \/>button7\u00a0=\u00a0Button(root,\u00a0width=15,\u00a0height=7,\u00a0font=(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Times\u00a016\u00a0bold'<\/span>),\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">command<\/span>=lambda:\u00a0checker(7))<br style=\"outline: 0px;\" \/>button7.grid(row=3,\u00a0column=1)<br style=\"outline: 0px;\" \/>button8\u00a0=\u00a0Button(root,\u00a0width=15,\u00a0height=7,\u00a0font=(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Times\u00a016\u00a0bold'<\/span>),\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">command<\/span>=lambda:\u00a0checker(8))<br style=\"outline: 0px;\" \/>button8.grid(row=3,\u00a0column=2)<br style=\"outline: 0px;\" \/>button9\u00a0=\u00a0Button(root,\u00a0width=15,\u00a0height=7,\u00a0font=(<span style=\"outline: 0px; color: #98c379; line-height: 26px;\">'Times\u00a016\u00a0bold'<\/span>),\u00a0<span style=\"outline: 0px; color: #e6c07b; line-height: 26px;\">command<\/span>=lambda:\u00a0checker(9))<br style=\"outline: 0px;\" \/>button9.grid(row=3,\u00a0column=3)<br style=\"outline: 0px;\" \/>\u00a0<br style=\"outline: 0px;\" \/>root.mainloop()<br style=\"outline: 0px;\" \/><\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; outline: 0px; color: #000000; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; font-size: 16px; text-align: left; white-space: normal; background-color: #ffffff; line-height: 26px;\"><span style=\"font-size: 15px;\">\u00a0<\/span><\/p>\n<figure style=\"outline: 0px; color: #222222; font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei UI', 'Microsoft YaHei', Arial, sans-serif; letter-spacing: 0.544px; white-space: normal; background-color: #ffffff; text-align: center;\"><span style=\"outline: 0px; text-align: justify; font-size: 15px;\">&#8212; EOF &#8212;<\/span><\/figure>\n<p style=\"outline: 0px; color: #222222; font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei UI', 'Microsoft YaHei', Arial, sans-serif; letter-spacing: 0.544px; white-space: normal; background-color: #ffffff;\">\u8f6c\u81ea\uff1ahttps:\/\/mp.weixin.qq.com\/s\/ROTfeSHr5J8W1DJZhajdww<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u6765\u6e90\uff1a\u7f16\u7a0b\u5ba2\u6808\uff0c\u7f51\u7edc\u6574\u7406 \u94fe\u63a5\uff1ahttp:\/\/www.cppcns.com\/jiaoben\/python\/42 &hellip; <a href=\"http:\/\/www.zhushiyao.com\/?p=101067\" class=\"more-link\">\u7ee7\u7eed\u9605\u8bfb<span class=\"screen-reader-text\">\u201c\u4e00\u53e3\u6c14\u7528Python\u5199\u4e8613\u4e2a\u5c0f\u6e38\u620f\u201d<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[8,890],"_links":{"self":[{"href":"http:\/\/www.zhushiyao.com\/index.php?rest_route=\/wp\/v2\/posts\/101067"}],"collection":[{"href":"http:\/\/www.zhushiyao.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.zhushiyao.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.zhushiyao.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.zhushiyao.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=101067"}],"version-history":[{"count":2,"href":"http:\/\/www.zhushiyao.com\/index.php?rest_route=\/wp\/v2\/posts\/101067\/revisions"}],"predecessor-version":[{"id":101083,"href":"http:\/\/www.zhushiyao.com\/index.php?rest_route=\/wp\/v2\/posts\/101067\/revisions\/101083"}],"wp:attachment":[{"href":"http:\/\/www.zhushiyao.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=101067"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.zhushiyao.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=101067"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.zhushiyao.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=101067"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}