hab mal die 2. Version meines Spiels "Börsenalarm" released. Ich weiß jedenfalls nicht ob ich schon die 1.Version gepostet habe, jedenfalls ist diese realistischer, und ich denke einfacher in der GUI. Und - ganz wichtig - mit wenigstens einer Klasse!
MfG
Iopodx
Konstruktive Kritik erwünscht!
Code: Alles auswählen
# -*- coding: cp1252 -*-
from random import randint
from Tkinter import *
from time import sleep
class go:
def __call__(self):
self.version="2.0.3"
self.start_money=200
self.aktien=[["Deutsche Post", 10.0, 6.0, 0], ["DHL", 20.0, 4.0, 0], ["Audi", 40.0, 6.0, 0], ["Deutsche Bank", 25.0, 8.0, 0]]
self.root=Tk()
self.root.title("Boerseanalarm "+self.version+" by Iopodx")
Label(text="Kaufen").grid(row=0, column=0)
Label(text="Verkaufen").grid(row=0, column=1)
self.buyButtons=[]
self.sellButtons=[]
self.countLabels=[]
self.endYear=6
self.money=self.start_money
self.Monat=1
self.Jahr=0
self.calc_new_price()
for i in range(0, len(self.aktien)):
self.buyButtons.append(Button(self.root, text=self.aktien[i][0]+(" "*(15-len(self.aktien[i][0])))+str(self.aktien[i][1]), width=20,
command=lambda x=i:self.buy(x)))
self.buyButtons[i].grid(row=i+1, column=0)
self.sellButtons.append(Button(self.root, text=self.aktien[i][0]+(" "*(15-len(self.aktien[i][0])))+str(self.aktien[i][1]), width=20,
command=lambda x=i:self.sell(x)))
self.sellButtons[i].grid(row=i+1, column=1)
self.countLabels.append(Label(self.root, text=self.aktien[i][3]))
self.countLabels[i].grid(row=i+1, column=2)
self.moneyLabel=Label(text=str(self.money)+" Euro")
self.moneyLabel.grid(row=i+4, column=0)
self.JahrLabel=Label(text="Jahr: "+str(self.Jahr))
self.MonatLabel=Label(text="Monat: "+str(self.Monat))
self.JahrLabel.grid(row=i+6, column=0)
self.MonatLabel.grid(row=i+5, column=0)
self.nextMonthButton=Button(self.root, text="Nächster Monat", command=self.next_month)
self.nextMonthButton.grid(row=i+2, column=0)
return self.root
def calc_new_price(self):
for i in range(0, len(self.aktien)):
self.aktien[i][1]=float("%0.2f" % (self.aktien[i][1]*(1+randint(self.aktien[i][2]*-1, self.aktien[i][2])/100.0)))
def buy(self, aktie):
if self.money>=self.aktien[aktie][1]:
self.aktien[aktie][3]+=1
self.money=self.money-self.aktien[aktie][1]
self.moneyLabel["text"]=str(self.money)+" Euro"
self.countLabels[aktie]["text"]=self.aktien[aktie][3]
def sell(self, aktie):
if self.aktien[aktie][3]>0:
self.aktien[aktie][3]-=1
self.money=self.money+self.aktien[aktie][1]
self.moneyLabel["text"]=str(self.money)+" Euro"
self.countLabels[aktie]["text"]=self.aktien[aktie][3]
def next_month(self):
if self.Jahr>=self.endYear:
for i in range(0, len(self.aktien)):
self.buyButtons[i]["state"]=DISABLED
self.sellButtons[i]["state"]=DISABLED
self.nextMonthButton["state"]=DISABLED
self.root.update()
sleep(5)
self.root.quit()
self.root.destroy()
newgame()
self.Monat+=1
if self.Monat==12:
self.Jahr+=1
self.Monat=1
self.calc_new_price()
for i in range(0, len(self.aktien)):
self.buyButtons[i]["text"]=self.aktien[i][0]+(" "*(15-len(self.aktien[i][0])))+str(self.aktien[i][1])
self.sellButtons[i]["text"]=self.aktien[i][0]+(" "*(15-len(self.aktien[i][0])))+str(self.aktien[i][1])
self.MonatLabel["text"]="Monat: "+str(self.Monat)
self.JahrLabel["text"]="Jahr: "+str(self.Jahr)
def newgame():
root=go()()
root.minsize(400, 300)
root.mainloop()
newgame()