Latest posts on Помогите с кодом topichttps://python.su/forum/topic/40701/2021-09-23T17:27:56+03:00Общий :: Python для новичков :: Помогите с кодом
2021-09-23T17:27:56+03:00scrrxll218401Отрыл недавно код, который не работает, суть в том что код, должен работать так, что когда я нажимаю на кнопку, должен меняться счёт, а на деле он живёт своей жизнью<br/><div class="code"><pre> <span class="kn">from</span> <span class="nn">tkinter</span> <span class="kn">import</span> <span class="o">*</span>
<span class="n">bomb</span> <span class="o">=</span> <span class="mi">100</span>
<span class="n">best_score</span> <span class="o">=</span> <span class="mi">0</span>
<span class="n">score</span> <span class="o">=</span> <span class="mi">0</span>
<span class="n">press_return</span> <span class="o">=</span> <span class="bp">True</span>
<span class="k">def</span> <span class="nf">start</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
<span class="k">global</span> <span class="n">press_return</span>
<span class="k">global</span> <span class="n">bomb</span>
<span class="k">global</span> <span class="n">score</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">press_return</span><span class="p">:</span>
<span class="k">pass</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">bomb</span> <span class="o">=</span> <span class="mi">100</span>
<span class="n">score</span> <span class="o">=</span> <span class="mi">0</span>
<span class="n">label</span><span class="o">.</span><span class="n">config</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span>
<span class="n">update_bomb</span><span class="p">()</span>
<span class="n">update_score</span><span class="p">()</span>
<span class="n">update_display</span><span class="p">()</span>
<span class="n">press_return</span> <span class="o">=</span> <span class="bp">False</span>
<span class="k">def</span> <span class="nf">update_display</span><span class="p">():</span>
<span class="k">global</span> <span class="n">bomb</span>
<span class="k">global</span> <span class="n">score</span>
<span class="k">if</span> <span class="n">bomb</span> <span class="o">></span> <span class="mi">50</span><span class="p">:</span>
<span class="n">bomb_label</span><span class="o">.</span><span class="n">config</span><span class="p">(</span><span class="n">image</span><span class="o">=</span><span class="n">normal_photo</span><span class="p">)</span>
<span class="k">elif</span> <span class="mi">0</span> <span class="o"><</span> <span class="n">bomb</span> <span class="o"><=</span> <span class="mi">50</span><span class="p">:</span>
<span class="n">bomb_label</span><span class="o">.</span><span class="n">config</span><span class="p">(</span><span class="n">image</span><span class="o">=</span><span class="n">no_photo</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">bomb_label</span><span class="o">.</span><span class="n">config</span><span class="p">(</span><span class="n">image</span><span class="o">=</span><span class="n">bang_photo</span><span class="p">)</span>
<span class="n">fuse_label</span><span class="o">.</span><span class="n">config</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="s1">'Fuse: '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">bomb</span><span class="p">))</span>
<span class="n">score_label</span><span class="o">.</span><span class="n">config</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="s1">'Score: '</span> <span class="o">+</span>
<span class="nb">str</span><span class="p">(</span><span class="n">score</span><span class="p">))</span>
<span class="n">fuse_label</span><span class="o">.</span><span class="n">after</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span> <span class="n">update_display</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">update_bomb</span><span class="p">():</span>
<span class="k">global</span> <span class="n">bomb</span>
<span class="n">bomb</span> <span class="o">-=</span> <span class="mi">5</span>
<span class="k">if</span> <span class="n">is_alive</span><span class="p">():</span>
<span class="n">fuse_label</span><span class="o">.</span><span class="n">after</span><span class="p">(</span><span class="mi">400</span><span class="p">,</span> <span class="n">update_bomb</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">update_score</span><span class="p">():</span>
<span class="k">global</span> <span class="n">score</span>
<span class="n">score</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="k">if</span> <span class="n">is_alive</span><span class="p">():</span>
<span class="n">score_label</span><span class="o">.</span><span class="n">after</span><span class="p">(</span><span class="mi">3000</span><span class="p">,</span> <span class="n">update_score</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">click</span><span class="p">():</span>
<span class="k">global</span> <span class="n">bomb</span>
<span class="k">if</span> <span class="n">is_alive</span><span class="p">():</span>
<span class="n">bomb</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="k">def</span> <span class="nf">is_alive</span><span class="p">():</span>
<span class="k">global</span> <span class="n">bomb</span>
<span class="k">global</span> <span class="n">press_return</span>
<span class="k">if</span> <span class="n">bomb</span> <span class="o"><=</span> <span class="mi">0</span><span class="p">:</span>
<span class="n">label</span><span class="o">.</span><span class="n">config</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="s1">'Bang! Bang! Bang!'</span><span class="p">)</span>
<span class="n">press_return</span> <span class="o">=</span> <span class="bp">True</span>
<span class="k">return</span> <span class="bp">False</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">return</span> <span class="bp">True</span>
<span class="k">if</span> <span class="n">best_score</span> <span class="o"><</span> <span class="n">score</span><span class="p">:</span>
<span class="n">best_score</span> <span class="o">=</span> <span class="n">score</span>
<span class="n">root</span> <span class="o">=</span> <span class="n">Tk</span><span class="p">()</span>
<span class="n">root</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s1">'Bang Bang'</span><span class="p">)</span>
<span class="n">root</span><span class="o">.</span><span class="n">geometry</span><span class="p">(</span><span class="s1">'500x550'</span><span class="p">)</span>
<span class="n">best_score_label</span> <span class="o">=</span> <span class="n">Label</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s1">'Best Score: '</span><span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">best_score</span><span class="p">),</span> <span class="n">font</span><span class="o">=</span><span class="p">(</span><span class="s1">'Comic Sans MS'</span><span class="p">,</span> <span class="mi">14</span><span class="p">))</span>
<span class="n">best_score_label</span><span class="o">.</span><span class="n">pack</span><span class="p">()</span>
<span class="n">label</span> <span class="o">=</span> <span class="n">Label</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s1">'Press [enter] to start the game'</span><span class="p">,</span> <span class="n">font</span><span class="o">=</span><span class="p">(</span><span class="s1">'Comic Sans MS'</span><span class="p">,</span> <span class="mi">12</span><span class="p">))</span>
<span class="n">label</span><span class="o">.</span><span class="n">pack</span><span class="p">()</span>
<span class="n">fuse_label</span> <span class="o">=</span> <span class="n">Label</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s1">'Fuse: '</span> <span class="o">+</span>
<span class="nb">str</span><span class="p">(</span><span class="n">bomb</span><span class="p">),</span> <span class="n">font</span><span class="o">=</span><span class="p">(</span><span class="s1">'Comic Sans MS'</span><span class="p">,</span> <span class="mi">14</span><span class="p">))</span>
<span class="n">fuse_label</span><span class="o">.</span><span class="n">pack</span><span class="p">()</span>
<span class="n">score_label</span> <span class="o">=</span> <span class="n">Label</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s1">'Score: '</span> <span class="o">+</span>
<span class="nb">str</span><span class="p">(</span><span class="n">score</span><span class="p">),</span> <span class="n">font</span><span class="o">=</span><span class="p">(</span><span class="s1">'Comic Sans MS'</span><span class="p">,</span> <span class="mi">14</span><span class="p">))</span>
<span class="n">score_label</span><span class="o">.</span><span class="n">pack</span><span class="p">()</span>
<span class="n">no_photo</span> <span class="o">=</span> <span class="n">PhotoImage</span><span class="p">(</span><span class="nb">file</span><span class="o">=</span><span class="s1">'img/bomb_no.gif'</span><span class="p">)</span>
<span class="n">normal_photo</span> <span class="o">=</span> <span class="n">PhotoImage</span><span class="p">(</span><span class="nb">file</span><span class="o">=</span><span class="s1">'img/bomb_normal.gif'</span><span class="p">)</span>
<span class="n">bang_photo</span> <span class="o">=</span> <span class="n">PhotoImage</span><span class="p">(</span><span class="nb">file</span><span class="o">=</span><span class="s1">'img/pow.gif'</span><span class="p">)</span>
<span class="n">bomb_label</span> <span class="o">=</span> <span class="n">Label</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">image</span><span class="o">=</span><span class="n">normal_photo</span><span class="p">)</span>
<span class="n">bomb_label</span><span class="o">.</span><span class="n">pack</span><span class="p">()</span>
<span class="n">click_button</span> <span class="o">=</span> <span class="n">Button</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s1">'Click me'</span><span class="p">,</span>
<span class="n">bg</span><span class="o">=</span><span class="s1">'#000000'</span><span class="p">,</span> <span class="n">fg</span><span class="o">=</span><span class="s1">'#ffffff'</span><span class="p">,</span> <span class="n">width</span><span class="o">=</span><span class="mi">15</span><span class="p">,</span>
<span class="n">font</span><span class="o">=</span><span class="p">(</span><span class="s1">'Comic Sans MS'</span><span class="p">,</span> <span class="mi">14</span><span class="p">),</span><span class="n">command</span><span class="o">=</span><span class="n">click</span><span class="p">)</span>
<span class="n">click_button</span><span class="o">.</span><span class="n">pack</span><span class="p">()</span>
<span class="n">root</span><span class="o">.</span><span class="n">bind</span><span class="p">(</span><span class="s1">'<Return>'</span><span class="p">,</span> <span class="n">start</span><span class="p">)</span>
<span class="n">root</span><span class="o">.</span><span class="n">mainloop</span><span class="p">()</span>
</pre></div><a href="https://drive.google.com/drive/folders/1d0Cz9IuaLdjoj3JaVIdgKvbWjSqC7I35?usp=sharing">https://drive.google.com/drive/folders/1d0Cz9IuaLdjoj3JaVIdgKvbWjSqC7I35?usp=sharing</a> (ссылка на весь проект)