[PYTHON] Ich habe versucht, springende Bälle zu multiplizieren (gelegentlich x100).

Grundlegende Richtlinien

Text "Die einfachste Python-Einführungsklasse" von Fumitaka Osawa, (Sotec Publishing, 2017) "Kann ich mehr erhöhen?" Das ist das Motiv. Auf jeden Fall werden Farbmündungen nachgerüstet.


bouncing_ball.gif


Wie mache ich ein Video?


Stellen Sie die Anfangswerte für Position, Geschwindigkeit und Farbe nach dem Zufallsprinzip ein

: random.randint(0,9) Sollte verbessert werden.

random.randint(0, 800), random.randint(0, 600) #x,y Position
random.randint(0, 10)-5 # dx

color1 = "#e8f" # rgb color

Wie soll ich das machen?


Randomisierung der Farbe

color1 = "#"+
      hex(random.randint(1, 15)).lstrip("0x") +
      hex(random.randint(1, 15)).lstrip("0x") + 
      hex(random.randint(1, 15)).lstrip("0x")

Mögen. Was machst du

  1. Bereiten Sie eine Zeichenfolge mit dem Namen "#" vor.
  2. Geben Sie eine ganze Zahl von 1..15 (1..f) und an
  3. Konvertieren Sie in hexadezimal wie "0xe" mit hex
  4. Entfernen Sie die "0x" links (l) mit lstrip

Viele Bälle

Fügen Sie danach viele Bälle zu den Bällen hinzu.

balls = []
for j in range(100):
    balls.append(Ball(x, y, dx, dy, color)

Erzeugt nicht gut

In der Tat schlägt es zweimal in drei Mal fehl.

  File "C:\Users\shige\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 2567, in __init__
    self.tk.call(
_tkinter.TclError: invalid color name "#12"

Fehler beim Generieren von Farbzeichen (möglicherweise behoben).


Quelle

Ich werde alles aussetzen.

# Copyright (c) 2020 daddygongon
# Released under the MIT license
# https://opensource.org/licenses/mit-license.php
import tkinter as tk
import random
speed = 1

class Ball:
    global speed
    def __init__(self, x, y, dx, dy, color):
        self.x = x
        self.y = y
        self.dx = dx*speed
        self.dy = dy*speed
        self.color = color
        self.shape = None

    def move(self, canvas):
        self.erase(canvas)
        self.x = self.x + self.dx
        self.y = self.y + self.dy
        self.draw(canvas)
        if (self.x >= canvas.winfo_width() or self.x <= 0):
            self.dx = -self.dx
        if (self.y >= canvas.winfo_height() or self.y <= 0):
            self.dy = -self.dy
    def erase(self, canvas):
        canvas.delete(self.shape)
    def draw(self, canvas):
        self.shape = canvas.create_oval(self.x - 20, self.y - 20, self.x +
                                        20, self.y + 20, fill=self.color, width=0)

def loop():
    for b in balls:
        b.move(canvas)
    root.after(10, loop)


root = tk.Tk()
root.geometry("800x600")

color1 = "#"+hex(random.randint(1, 2)
                 ).lstrip("0x")+hex(random.randint(1, 2)
                                    ).lstrip("0x") + hex(random.randint(1, 2)
                                                         ).lstrip("0x")

canvas = tk.Canvas(root, width=800, height=600, bg=color1)
canvas.place(x=0, y=0)

balls = []
for j in range(100):
    color1 = "#"+hex(random.randint(8, 15)
                     ).lstrip("0x")+hex(random.randint(8, 15)
                                        ).lstrip("0x") + hex(random.randint(8, 15)
                                                             ).lstrip("0x")
    balls.append(Ball(random.randint(0, 800), random.randint(0, 600),
                      random.randint(0, 10)*2-10, random.randint(0,10)*2-10, color1))

root.after(10, loop)
root.mainloop()

Es scheint, dass die letzte Hauptschleife für den Leerlauf nicht benötigt wird.

Recommended Posts

Ich habe versucht, springende Bälle zu multiplizieren (gelegentlich x100).
Ich habe versucht zu debuggen.
Ich habe versucht, PredNet zu lernen
Ich habe versucht, SVM zu organisieren.
Ich habe versucht, PCANet zu implementieren
Ich habe versucht, Linux wieder einzuführen
Ich habe versucht, SparseMatrix zusammenzufassen
jupyter ich habe es berührt
Ich habe versucht, StarGAN (1) zu implementieren.
Ich habe versucht, Pilze Pepper x IBM Bluemix Text to Speech
Ich habe versucht, Deep VQE zu implementieren
Ich habe versucht, eine Quip-API zu erstellen
Ich habe versucht, Python zu berühren (Installation)
Ich habe versucht, eine kontroverse Validierung zu implementieren
Ich habe versucht, Pytorchs Datensatz zu erklären
Ich habe Watson Voice Authentication (Speech to Text) ausprobiert.
Ich habe Teslas API berührt
Ich habe versucht, mich über MCMC zu organisieren.
Ich habe versucht, Realness GAN zu implementieren
Ich habe versucht, den Ball zu bewegen
Ich habe versucht, den Abschnitt zu schätzen.
Ich habe versucht, die GUI auf einem Mac mit X Window System anzuzeigen
Ich habe versucht, die Behandlung von Python-Ausnahmen zusammenzufassen
Ich habe versucht, PLSA in Python zu implementieren
Ich habe versucht, Azure Speech to Text zu verwenden.
Ich habe versucht, Autoencoder mit TensorFlow zu implementieren
Ich habe versucht, den Befehl umask zusammenzufassen
Ich habe versucht, Permutation in Python zu implementieren
Wrangle x Python Buch Ich habe es versucht [2]
Ich habe versucht, einen Linebot zu erstellen (Vorbereitung)
Ich habe versucht, AutoEncoder mit TensorFlow zu visualisieren
Ich versuchte das Weckwort zu erkennen
Ich habe versucht, mit Hy anzufangen
Ich habe versucht, PLSA in Python 2 zu implementieren
Python3-Standardeingabe habe ich versucht zusammenzufassen
Ich habe versucht, Text mit TensorFlow zu klassifizieren
Ich habe versucht, der CPython-Implementierung ein Post-Inkrement hinzuzufügen
Ich habe versucht, ADALINE in Python zu implementieren
Ich habe versucht, Optuna die Nummer lösen zu lassen
Ich habe versucht, das Umfangsverhältnis π probabilistisch abzuschätzen
Ich habe versucht, die COTOHA-API zu berühren
Ich habe versucht, PPO in Python zu implementieren
Ich habe versucht, CVAE mit PyTorch zu implementieren
Wrangle x Python Buch Ich habe es versucht [1]
Ich habe eine Web-API erstellt
Ich habe versucht, TSP mit QAOA zu lösen
[Python] Ich habe versucht, TF-IDF stetig zu berechnen
Ich habe versucht, Python zu berühren (grundlegende Syntax)
Ich versuchte mein Bestes, um zu Lasso zurückzukehren
Ich habe versucht, Ansibles Module-Linux-Edition zusammenzufassen
Ich habe versucht, nächstes Jahr mit AI vorherzusagen
Ich habe versucht, eine Super-Resolution-Methode / ESPCN zu erstellen
Ich habe versucht, die Blasensortierung nach Sprache zu programmieren
Ich habe Web Scraping versucht, um die Texte zu analysieren.
Ich habe versucht, das Lesen von Dataset mit PyTorch zu implementieren
Ich habe versucht, lightGBM, xg Boost mit Boruta zu verwenden
Ich habe versucht, eine Super-Resolution-Methode / SRCNN build zu erstellen