summaryrefslogtreecommitdiff
path: root/comp/work
diff options
context:
space:
mode:
Diffstat (limited to 'comp/work')
-rw-r--r--comp/work/29/bg.pngbin0 -> 22176 bytes
-rw-r--r--comp/work/29/game.py92
-rw-r--r--comp/work/29/player.pngbin0 -> 3370 bytes
-rw-r--r--comp/work/30/bubble.py20
-rw-r--r--comp/work/30/merge.py38
5 files changed, 150 insertions, 0 deletions
diff --git a/comp/work/29/bg.png b/comp/work/29/bg.png
new file mode 100644
index 0000000..ce9a4b9
--- /dev/null
+++ b/comp/work/29/bg.png
Binary files differ
diff --git a/comp/work/29/game.py b/comp/work/29/game.py
new file mode 100644
index 0000000..54e5b40
--- /dev/null
+++ b/comp/work/29/game.py
@@ -0,0 +1,92 @@
+import pygame
+
+
+class entity:
+ def __init__(self, x, y, img, radius, color):
+ self.rotation = 0
+
+ self.radius = radius
+ self.pos = pygame.Vector2(x, y)
+ self.hitbox = pygame.Rect(x, y, radius*2, radius*2)
+ self.color = color
+ self.hitbox.x = x
+ self.hitbox.y = y
+
+ self.sprite = pygame.image.load(img)
+ self.sprite = pygame.transform.scale(self.sprite,
+ (radius * 2, radius * 2))
+
+ self.hitbox.x = self.pos.x - self.radius
+ self.hitbox.y = self.pos.y - self.radius
+
+ def move(self):
+ keys = pygame.key.get_pressed()
+ if keys[pygame.K_w]:
+ self.pos.y -= 300 * dt
+ if keys[pygame.K_s]:
+ self.pos.y += 300 * dt
+ if keys[pygame.K_a]:
+ self.pos.x -= 300 * dt
+ if keys[pygame.K_d]:
+ self.pos.x += 300 * dt
+
+ while self.pos.x > 1280:
+ self.pos.x = self.pos.x - 1
+ while self.pos.x < 0:
+ self.pos.x = self.pos.x + 1
+ while self.pos.y > 720:
+ self.pos.y = self.pos.y - 1
+ while self.pos.y < 0:
+ self.pos.y = self.pos.y + 1
+ self.hitbox.x = self.pos.x - self.radius
+ self.hitbox.y = self.pos.y - self.radius
+
+ def update(self, things, rot):
+ pass
+ def draw(self, debug):
+ screen.blit(self.sprite, self.pos)
+ if debug == 1:
+ pygame.draw.rect(screen, self.color, self.hitbox)
+
+ def __collide(self, things):
+ for i in things:
+ if self.hitbox.colliderect(i.hitbox):
+ return i
+
+
+pygame.init()
+screen = pygame.display.set_mode((1280, 720))
+clock = pygame.time.Clock()
+running = True
+dt = 0
+
+bg = pygame.image.load("./bg.png")
+bg = pygame.transform.scale(bg, (1280, 720))
+
+player = entity(screen.get_width() / 2, screen.get_height() / 2,
+ "./player.png", 40, "red")
+
+enemys = []
+for i in range(3):
+ enemys.append(entity(100, 100, "./player.png", 40, "blue"))
+
+while running:
+ for event in pygame.event.get():
+ if event.type == pygame.QUIT:
+ running = False
+
+ screen.blit(bg, (0, 0))
+
+ player.update(enemys, 1)
+
+ player.move()
+
+ player.draw(1)
+ for i in enemys:
+ i.draw(0)
+
+ pygame.display.flip()
+
+ dt = clock.tick(30) / 1000
+
+pygame.quit()
diff --git a/comp/work/29/player.png b/comp/work/29/player.png
new file mode 100644
index 0000000..d258592
--- /dev/null
+++ b/comp/work/29/player.png
Binary files differ
diff --git a/comp/work/30/bubble.py b/comp/work/30/bubble.py
new file mode 100644
index 0000000..e152c7d
--- /dev/null
+++ b/comp/work/30/bubble.py
@@ -0,0 +1,20 @@
+import sys
+
+def bubble(list):
+ length = len(list)
+ for i in range(length - 1):
+ for j in range(length - i - 1):
+ if list[j] > list[j+1]:
+ tmp = list[j]
+ list[j] = list[j+1]
+ list[j+1] = tmp
+ return list
+
+
+count = int(sys.argv[1])
+
+num = []
+for i in range(count):
+ num.append(int(input(f"number {i}: ")))
+
+print(bubble(num))
diff --git a/comp/work/30/merge.py b/comp/work/30/merge.py
new file mode 100644
index 0000000..4e9b12e
--- /dev/null
+++ b/comp/work/30/merge.py
@@ -0,0 +1,38 @@
+def split(list):
+ length = len(list)
+ l1 = []
+ l2 = []
+ for i in range(length):
+ if i >= (length / 2):
+ l2.append(list[i])
+ else:
+ l1.append(list[i])
+ if length > 2:
+ l1 = split(l1)
+ l2 = split(l2)
+ return merge(l1, l2)
+
+
+def merge(l1, l2):
+ i = 0
+ j = 0
+ output = []
+ while i < len(l1) and j < len(l2):
+ if l1[i] < l2[j]:
+ output.append(l1[i])
+ i += 1
+ else:
+ output.append(l2[j])
+ j += 1
+
+ while i < len(l1):
+ output.append(l1[i])
+ i += 1
+ while j < len(l2):
+ output.append(l2[j])
+ j += 1
+ return output
+
+
+# call split on the list, will return a sorted one
+print(split([1, 4, 2, 4, 2, 5, 6, 2, 7]))