I'm pretty brand new to Python and started with Python 2.7.10 for a start but I started thinking of 'updating' Python for some random reason. Plus there are many programers who 'stuck' with Python 2.7 for many reasons like in Python 3 you'd have to put parenthesis in a print statement (below).
Python 2
print "Hi!"
Python 3
print("Hi")
#Super Wierd!
This really freaks people out, why can't they just be the same script. It's a lot easier. Even if you do put parenthesis in Python 2 it won't make a freak-you-out excuse like
Python 3.3.5 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> print "Hi"
invaild syntax : unexpected indent
That's why 'most' people stick to Python 2.7 and there are various changes for Python (e.g Tkinter is now tkinter) and most modules had renaming which will (most super-super-absolutely-tremendously) confuse them. Some refuse to this though. I tried to look at many codes that are the same, but in a different Python language (below).
Bubble Blaster 1.8.py - Python 2
from Tkinter import *
HEIGHT = 626
WIDTH = 1238
window = Tk()
window.title('Bubble Blaster 1.8 - By Lucas - AiroTM - Contact Us On Airo ;)')
c = Canvas(window, width=WIDTH, height=HEIGHT, bg='darkblue')
c.pack()
ship_id = c.create_polygon(5, 5, 5, 25, 30, 15, fill='red')
ship_id2 = c.create_oval(0, 0, 30, 30, outline='white')
SHIP_R = 16
MID_X = WIDTH / 2
MID_Y = HEIGHT / 2
c.move(ship_id, MID_X, MID_Y)
c.move(ship_id2, MID_X, MID_Y)
SHIP_SPD = 12
def move_ship(event):
if event.keysym == 'Up':
c.move(ship_id, 0, -SHIP_SPD)
c.move(ship_id2, 0, -SHIP_SPD)
elif event.keysym == 'Down':
c.move(ship_id, 0, SHIP_SPD)
c.move(ship_id2, 0, SHIP_SPD)
elif event.keysym == 'Left':
c.move(ship_id, -SHIP_SPD, 0)
c.move(ship_id2, -SHIP_SPD, 0)
elif event.keysym == 'Right':
c.move(ship_id, SHIP_SPD, 0)
c.move(ship_id2, SHIP_SPD, 0)
c.bind_all('<Key>', move_ship)
from random import randint
bub_id = list()
bub_r = list()
bub_speed = list()
MIN_BUB_R = 10
MAX_BUB_R = 30
MAX_BUB_SPD = 20
sup_id = list()
sup_r = list()
sup_speed = list()
MIN_SUP_R = 10
MAX_SUP_R = 30
MAX_SUP_SPD = 35
GAP = 100
def create_bubble():
x = WIDTH + GAP
y = randint(0, HEIGHT)
r = randint(MIN_BUB_R, MAX_BUB_R)
id1 = c.create_oval(x - r, y - r, x + r, y + r, fill='lightblue')
bub_id.append(id1)
bub_r.append(r)
bub_speed.append(randint(1, MAX_BUB_SPD))
def create_sup():
x = WIDTH + GAP
y = randint(0, HEIGHT)
r = randint(MIN_BUB_R, MAX_BUB_R)
id1 = c.create_oval(x - r, y - r, x + r, y + r, fill='red')
bub_id.append(id1)
bub_r.append(r)
bub_speed.append(randint(1, MAX_BUB_SPD))
def move_bubbles():
for i in range(len(bub_id)):
c.move(bub_id[i], -bub_speed[i], 0)
def move_sups():
for i in range(len(sup_id)):
c.move(sup_id[i], -sup_speed[i], 0)
from time import sleep, time
BUB_CHANCE = 10
#MAIN GAME LOOP
while True:
if randint(1, BUB_CHANCE) == 1:
create_bubble()
create_sup()
move_bubbles()
move_sups()
window.update()
sleep(0.01)
def get_coords(id_num):
pos = c.coords(id_num)
x = (pos[0] + pos[2])/2
y = (pos[1] + pos[3])/2
return x, y
def del_bubble(i):
del bub_r[i]
del bub_speed[i]
c.delete(bub_id[i])
del bub_id[i]
def del_sup(i):
del sup_r[i]
del sup_speed[i]
c.delete(sup_id[i])
del sup_id[i]
def clean_up_bubs():
for i in range(len(bub_id)-1, -1, -1):
x, y = get_coords(bub_id[i])
if x < -GAP:
del_bubble(i)
def clean_up_sups():
for i in range(len(sup_id)-1, -1, -1):
x, y = get_coords(sup_id[i])
if x < -GAP:
del_sup(i)
#MAIN GAME LOOP
while True:
if randint(1, BUB_CHANCE) == 1:
create_bubble()
create_sup()
move_bubbles()
move_sups
clean_up_bubs()
clean_up_sups
window.update()
sleep(0.01)
from math import sqrt
def distance(id1, id2):
x1, y1 = get_coords(id1)
x2, y2 = get_coords(id2)
return sqrt((x2 - x1)**2 + (y2 - y1)**2)
def collision():
points = 0
for bub in range(len(bub_id)-1, -1, -1):
if distance(ship_id2, bub_id[bub]) < (SHIP_R + bub_r[bub]):
points += (bub_r[bub] + bub_speed[bub])
del_bubble(bub)
return points
def collision_sup():
points = 0
for sup in range(len(sup_id)-1, -1, -1):
if distance(ship_id2, sup_id[sup]) < (SHIP_R + sup_r[sup]):
points += (bub_r[sup] + bub_speed[sup])
del_bubble(sup)
points = points + 1
return points
score = 0
#MAIN GAME LOOP
while True:
if randint(1, BUB_CHANCE) == 1:
create_bubble()
create_sup()
move_bubbles()
move_subs()
clean_up_bubs()
clean_up_sups()
score += collision()
print(score)
window.update()
sleep(0.01)
c.create_text(50, 30, text='TIME', fill='white' )
c.create_text(150, 30, text='SCORE', fill='white' )
time_text = c.create_text(50, 50, fill='white' )
score_text = c.create_text(150, 50, fill='white')
def show_score(score):
c.itemconfig(score_text, text=str(score))
def show_time(time_left):
c.itemconfig(time_text, text=str(time_left))
from time import sleep, time
BUB_CHANCE = 10
TIME_LIMIT = 30
BONUS_SCORE = 1000
score = 0
bonus = 0
end = time() + TIME_LIMIT
#MAIN GAME LOOP
while time() < end:
if randint(1, BUB_CHANCE) == 1:
create_bubble()
create_sup()
move_bubbles()
move_sups()
clean_up_bubs()
clean_up_sups()
score += collision
if (int(score / BONUS_SCORE)) > bonus:
bonus += 1
end += TIME_LIMIT
show_score(score)
show_time(int(end - time()))
window.update()
c.create_text(MID_X, MID_Y, \
text='GAME OVER!', fill='white', font=('Helvetica', 30))
c.create_text(MID_X, MID_Y + 30, \
text='Score: '+ str(score), fill='white')
c.create_text(MID_X, MID_Y + 45, \
text='Bonus time: '+ str(bonus*TIME_LIMIT), fill='white')
Python 3
from tkinter import *
HEIGHT = 626
WIDTH = 1238
window = Tk()
window.title('Bubble Blaster 1.8 - By Lucas - AiroTM - Contact Us On Airo ;)')
c = Canvas(window, width=WIDTH, height=HEIGHT, bg='darkblue')
c.pack()
ship_id = c.create_polygon(5, 5, 5, 25, 30, 15, fill='red')
ship_id2 = c.create_oval(0, 0, 30, 30, outline='white')
SHIP_R = 16
MID_X = WIDTH / 2
MID_Y = HEIGHT / 2
c.move(ship_id, MID_X, MID_Y)
c.move(ship_id2, MID_X, MID_Y)
SHIP_SPD = 12
def move_ship(event):
if event.keysym == 'Up':
c.move(ship_id, 0, -SHIP_SPD)
c.move(ship_id2, 0, -SHIP_SPD)
elif event.keysym == 'Down':
c.move(ship_id, 0, SHIP_SPD)
c.move(ship_id2, 0, SHIP_SPD)
elif event.keysym == 'Left':
c.move(ship_id, -SHIP_SPD, 0)
c.move(ship_id2, -SHIP_SPD, 0)
elif event.keysym == 'Right':
c.move(ship_id, SHIP_SPD, 0)
c.move(ship_id2, SHIP_SPD, 0)
c.bind_all('<Key>', move_ship)
from random import randint
bub_id = list()
bub_r = list()
bub_speed = list()
MIN_BUB_R = 10
MAX_BUB_R = 30
MAX_BUB_SPD = 20
sup_id = list()
sup_r = list()
sup_speed = list()
MIN_SUP_R = 10
MAX_SUP_R = 30
MAX_SUP_SPD = 35
GAP = 100
def create_bubble():
x = WIDTH + GAP
y = randint(0, HEIGHT)
r = randint(MIN_BUB_R, MAX_BUB_R)
id1 = c.create_oval(x - r, y - r, x + r, y + r, fill='lightblue')
bub_id.append(id1)
bub_r.append(r)
bub_speed.append(randint(1, MAX_BUB_SPD))
def create_sup():
x = WIDTH + GAP
y = randint(0, HEIGHT)
r = randint(MIN_BUB_R, MAX_BUB_R)
id1 = c.create_oval(x - r, y - r, x + r, y + r, fill='red')
bub_id.append(id1)
bub_r.append(r)
bub_speed.append(randint(1, MAX_BUB_SPD))
def move_bubbles():
for i in range(len(bub_id)):
c.move(bub_id[i], -bub_speed[i], 0)
def move_sups():
for i in range(len(sup_id)):
c.move(sup_id[i], -sup_speed[i], 0)
from time import sleep, time
BUB_CHANCE = 10
#MAIN GAME LOOP
while True:
if randint(1, BUB_CHANCE) == 1:
create_bubble()
create_sup()
move_bubbles()
move_sups()
window.update()
sleep(0.01)
def get_coords(id_num):
pos = c.coords(id_num)
x = (pos[0] + pos[2])/2
y = (pos[1] + pos[3])/2
return x, y
def del_bubble(i):
del bub_r[i]
del bub_speed[i]
c.delete(bub_id[i])
del bub_id[i]
def del_sup(i):
del sup_r[i]
del sup_speed[i]
c.delete(sup_id[i])
del sup_id[i]
def clean_up_bubs():
for i in range(len(bub_id)-1, -1, -1):
x, y = get_coords(bub_id[i])
if x < -GAP:
del_bubble(i)
def clean_up_sups():
for i in range(len(sup_id)-1, -1, -1):
x, y = get_coords(sup_id[i])
if x < -GAP:
del_sup(i)
#MAIN GAME LOOP
while True:
if randint(1, BUB_CHANCE) == 1:
create_bubble()
create_sup()
move_bubbles()
move_sups
clean_up_bubs()
clean_up_sups
window.update()
sleep(0.01)
from math import sqrt
def distance(id1, id2):
x1, y1 = get_coords(id1)
x2, y2 = get_coords(id2)
return sqrt((x2 - x1)**2 + (y2 - y1)**2)
def collision():
points = 0
for bub in range(len(bub_id)-1, -1, -1):
if distance(ship_id2, bub_id[bub]) < (SHIP_R + bub_r[bub]):
points += (bub_r[bub] + bub_speed[bub])
del_bubble(bub)
return points
def collision_sup():
points = 0
for sup in range(len(sup_id)-1, -1, -1):
if distance(ship_id2, sup_id[sup]) < (SHIP_R + sup_r[sup]):
points += (bub_r[sup] + bub_speed[sup])
del_bubble(sup)
points = points + 1
return points
score = 0
#MAIN GAME LOOP
while True:
if randint(1, BUB_CHANCE) == 1:
create_bubble()
create_sup()
move_bubbles()
move_subs()
clean_up_bubs()
clean_up_sups()
score += collision()
print(score)
window.update()
sleep(0.01)
c.create_text(50, 30, text='TIME', fill='white' )
c.create_text(150, 30, text='SCORE', fill='white' )
time_text = c.create_text(50, 50, fill='white' )
score_text = c.create_text(150, 50, fill='white')
def show_score(score):
c.itemconfig(score_text, text=str(score))
def show_time(time_left):
c.itemconfig(time_text, text=str(time_left))
from time import sleep, time
BUB_CHANCE = 10
TIME_LIMIT = 30
BONUS_SCORE = 1000
score = 0
bonus = 0
end = time() + TIME_LIMIT
#MAIN GAME LOOP
while time() < end:
if randint(1, BUB_CHANCE) == 1:
create_bubble()
create_sup()
move_bubbles()
move_sups()
clean_up_bubs()
clean_up_sups()
score += collision
if (int(score / BONUS_SCORE)) > bonus:
bonus += 1
end += TIME_LIMIT
show_score(score)
show_time(int(end - time()))
window.update()
c.create_text(MID_X, MID_Y, \
text='GAME OVER!', fill='white', font=('Helvetica', 30))
c.create_text(MID_X, MID_Y + 30, \
text='Score: '+ str(score), fill='white')
c.create_text(MID_X, MID_Y + 45, \
text='Bonus time: '+ str(bonus*TIME_LIMIT), fill='white')
There is also more when you make an image in Tkinter in Python 2.7 you don't get it unless it has a purpose like moving, some years later I also discovered it happened to text! However in Python 3 it is completlely the opposite.
Python 2
print "Hello World!"
Python 3
print("Hello World")
Anyway but should I update it?
Yes or no?
:1