41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
import random
|
|
|
|
import pygame
|
|
|
|
from my_package.Game_class import Game
|
|
from my_package.Spark_class import Spark
|
|
|
|
|
|
class PiDraw(Game):
|
|
def __init__(self, inner_c=None, outer_c=None):
|
|
self.inner_c = inner_c if inner_c is not None else []
|
|
self.outer_c = outer_c if outer_c is not None else []
|
|
super().__init__()
|
|
|
|
def update_game(self):
|
|
for _ in range(2):
|
|
x = random.randint(0,500)
|
|
y = random.randint(0,500)
|
|
|
|
if (x**2 + y**2) < 500**2: self.inner_c.append(Spark(x, y, (0,255,0), 1))
|
|
else: self.outer_c.append(Spark(x, y, (255,0,0), 1))
|
|
|
|
try:
|
|
pi = 4.0 * len(self.inner_c) / (len(self.inner_c) + len(self.outer_c))
|
|
print(pi)
|
|
except ZeroDivisionError: print("ZeroDivisionError")
|
|
|
|
return True
|
|
|
|
def draw_game(self):
|
|
for particle in self.inner_c + self.outer_c:
|
|
particle.set_surface(self.set_screen())
|
|
particle.appear(self.set_screen())
|
|
pygame.display.flip()
|
|
|
|
|
|
def main():
|
|
game = PiDraw()
|
|
game.run()
|
|
|
|
main() |