====== Marvin ======
[[internet]]
Hallo ich bin der Marvin.
{{:personen:marvin.jpg|}}
Ich bin 15 und gehe in die 5.Klasse
Kampfsimulator:
# -*- coding: utf-8 -*-
"""Das folgende ist ein kleiner Kampfsimulator"""
import random
import easygui
class Monster:
def __init__(self,name="loretta", attack=50, defense=50, luck=20):
self.name=name
self.attack=attack
self.defense=defense
self.luck=luck
self.leben=100
self.kraft=10
zombie=Monster("zombie",50,10,5)
#print zombie.leben
vampir=Monster("vampir",25,25,25)
strelok=Monster("strelok",30,12,10)
armee_soldat=Monster("Armee-soldat",10,15,20)
geist=Monster("geist",5,50,5)
loretta=Monster("loretta",34,14,7)
banker=Monster("banker",30,10,0)
lorenz=Monster("lorenz",45,17,24)
altair=Monster("altair",50,24,38)
wahnsinniger=Monster("wahnsinniger",2,2,12)
monsterliste=[zombie,vampir,strelok,armee_soldat,geist,loretta,banker,lorenz,altair,wahnsinniger]
def schlag(angreifer, verteidiger):
wuerfel1=random.randint(1,100)
wuerfel2=random.randint(1,100)
wuerfel3=random.randint(1,100)
wuerfel4=random.randint(1,100)
#print "wer schlägt zuerst?"
if (angreifer.attack+wuerfel1)>(verteidiger.defense+wuerfel2):
# angreifer trifft
verteidiger.leben-=random.randint(1,angreifer.kraft)
print "%s greift %s an (%i+%i:%i+%i)" % (angreifer.name, verteidiger.name,
angreifer.attack,wuerfel1, verteidiger.defense, wuerfel2)
print "der treffer war genial ! %s hat nur noch %i leben" % (verteidiger.name,verteidiger.leben)
else:
print "%s greift %s an (%i+%i:%i+%i)" % (angreifer.name, verteidiger.name,
angreifer.attack,wuerfel1, verteidiger.defense, wuerfel2)
print " der angriff ging in den abendhimmel"
#altair vs. loretta
def kampf(angreifer, verteidiger):
runde=0
while angreifer.leben>0 and verteidiger.leben>0:
runde+=1
print "runde %d" % runde
print "%s %d %s %d" % (angreifer.name, angreifer.leben, verteidiger.name, verteidiger.leben)
print "angriff"
schlag(angreifer,verteidiger)
if angreifer.leben>0 and verteidiger.leben>0:
print "gegenangriff"
schlag(verteidiger,angreifer)
if angreifer.leben > 0:
sieger = angreifer.name
else:
sieger = verteidiger.name
print " %s hat gesiegt" % sieger
return sieger
#print "angreifer %d verteidiger %d" % (angreifer.leben, verteidiger.leben)
#testen
ss=0
sb=0
for duell in range(1,101):
sieger = kampf(strelok, banker)
print "-------------------------------------------------------------"
print sieger
print "-------------------------------------------------------------"
strelok.leben=100
banker.leben=100
if sieger == "strelok":
ss+=1
else:
sb+=1
print "strelok: banker",ss, sb
====== Fertiger großer Kampfsimulator ======
(hat ein paar Grammatik schwächen)
# -*- coding: utf-8 -*-
"""Das folgende ist ein kleiner Kampfsimulator
14:Waffen sollen in den Kämpfen eine Rolle spielen"""
import random
import easygui
class Waffe:
def __init__(self, name="stock", attack=1, defense=1, kraft=0, leben=0, trefferdelta=0):
self.name=name
self.attack=attack
self.defense=defense
self.kraft=kraft
self.deltaleben=leben
self.trefferdelta=trefferdelta
class Monster:
def __init__(self,name="loretta", attack=50, defense=50, kraft=50, waffenliste=[]):
self.name=name
self.attack=attack
self.defense=defense
self.leben=100
self.kraft=kraft
#self.waffenliste=waffenliste
self.waffe=waffendir[random.choice(waffenliste)]
self.leben+=self.waffe.deltaleben
def vorstellen(self):
print "------------------------%s---------------------" % self.name
print "ich bin unbewaffnet. Meine Werte: %i angriff %i defense und %i kraft" %(self.attack, self.defense, self.kraft)
print "ich bin bewaffnet mit %s, %i angriff %i defense und %i kraft" %(self.waffe.name, self.attack+self.waffe.attack, self.defense+self.waffe.defense, self.kraft+self.waffe.kraft)
waffendir = {}
waffendir["schwert"]=Waffe("einem schwert",-20,4,34,0) # -20, weil es beim angriff behindert
waffendir["schild"]=Waffe("einem schild",-24,50,2)
waffendir["aktenkoffer"]=Waffe("einem aktenkoffer",0,15,17,0)
waffendir["schuhbänder"]=Waffe("zwei schuhbändern",0,0,40,0)
waffendir["schlagring"]=Waffe("einem schlagring",0,1,26,0)
waffendir["englischbuch"]=Waffe("einem englischbuch",0,23,4,0)
waffendir["kainznerbiografie"]=Waffe("einer kainznerbiografie",-2,20,4,0)
waffendir["ast"]=Waffe("einem ast",0,1,2,0)
waffendir["flammenwerfer"]=Waffe("einem flammenwerfer",-34,2,45,0)
waffendir["maschinengewehr"]=Waffe("einem maschinengewehr",-15,1,50,0)
waffendir["bleistift"]=Waffe("einem bleistift",0,1,9,0)
waffendir["alter pc"]=Waffe("einem alten pc",-40,10,14,0)
waffendir["wasserpistole"]=Waffe("einer wasserpistole",-5,1,14,0)
waffendir["grabstein"]=Waffe("einem grabstein",-24,7,17,0)
waffendir["schaufel"]=Waffe("einer schaufel",-5,2,20,0)
waffendir["spitzer holzplock"]=Waffe("einem spitzen holzplock",0,1,23,0)
waffendir["vampirzähne"]=Waffe("vampirzähnen",0,0,29,0,5)
waffendir["titten"]=Waffe("titten",0,50,0,0)
waffendir["schwere handtasche"]=Waffe("einer schweren handtasche",3,11,19,0)
waffendir["lebende ratten"]=Waffe("lebenden ratten",-25,4,13,0) #-25, weil ratten schwer zu fangen sind...
waffendir["dolch"]=Waffe("einem dolch",0,1,34,0)
waffendir["vergammeltes butterbrot"]=Waffe("einem vergammelten butterbrot",-24,45,3,0)
waffendir["alte spritzen"]=Waffe("alten spritzen",0,0,35,0)
waffendir["hässliche Cousinen"]=Waffe("hässlichen Cousinen",14,24,12,0)
waffendir["eigener fuß"]=Waffe("meinem fuß",-12,5,23,-10)
waffendir["verfluchte vampirzähne"]=Waffe("meinen verluchten vampirzähnen",0,0,30,0,-5)
zombie=Monster("zombie",5,25,45,["grabstein","schaufel","ast","eigener fuß"])
#print zombie.leben
vampir=Monster("vampir",25,25,25,["spitzer holzplock","vampirzähne","ast","verfluchte vampirzähne"])
#test monster
strelok=Monster("strelok",34,12,23,["maschinengewehr","flammenwerfer","ast"])
armee_soldat=Monster("Armee-soldat",17,15,16,["maschinengewehr","ast","schlagring"])
geist=Monster("geist",50,7,12,["ast","lebende ratten","schwert","schild"]) #schild und schwert ,weil der geist in einem schloss/burg wohnt
loretta=Monster("loretta",45,7,12,["ast","titten","schwere handtasche"])
#test monster
banker=Monster("banker",0,13,34,["ast","bleistift","alter pc","aktenkoffer","englischbuch"])
lorenz=Monster("lorenz",23,19,27,["ast","wasserpistole","kainznerbiografie","schlagring","schuhbänder"])
altair=Monster("altair",45,34,39,["ast","dolch","vergammeltes butterbrot"])
wahnsinniger=Monster("wahnsinniger",34,7,23,["ast","titten","vergammeltes butterbrot","bleistift","alter pc","aktenkoffer","schwert", "schild","wasserpistole","spitzer holzplock","dolch", "lebende ratten","schwere handtasche","schaufel","grabstein","maschinengewehr","flammenwerfer","kainznerbiografie","englischbuch","schuhbänder","schlagring","alte spritzen"])
alte_omi=Monster("alte omi",23,11,21,["ast","hässliche Cousinen"])
monsterliste=[zombie,vampir,strelok,armee_soldat,geist,loretta,banker,lorenz,altair,wahnsinniger,alte_omi]
def schlag(angreifer, verteidiger):
wuerfel1=random.randint(1,100)
wuerfel2=random.randint(1,100)
wuerfel3=random.randint(1,100)
wuerfel4=random.randint(1,100)
#print "wer schlägt zuerst?"
print "%s %d %s %d" % (angreifer.name, angreifer.leben, verteidiger.name, verteidiger.leben)
print "%s greift %s an %i:%i (%i+%i:%i+%i)" % (angreifer.name,
verteidiger.name,
angreifer.attack+angreifer.waffe.attack+wuerfel1,
verteidiger.defense+verteidiger.waffe.defense+wuerfel2,
angreifer.attack+angreifer.waffe.attack,wuerfel1,
verteidiger.defense+verteidiger.waffe.defense, wuerfel2)
if (angreifer.attack+angreifer.waffe.attack+wuerfel1)>(verteidiger.defense+verteidiger.waffe.defense+wuerfel2):
# angreifer trifft
#verteidiger.leben-=random.randint(angreifer.kraft/4,angreifer.kraft)
schaden=random.randint(1,angreifer.kraft)
verteidiger.leben-=schaden
if angreifer.waffe.trefferdelta >0:
print "%s trinkt das Blut des Gengners und gewinnt %i Leben" % (angreifer.name,angreifer.waffe.trefferdelta)
angreifer.leben+=angreifer.waffe.trefferdelta
elif angreifer.waffe.trefferdelta<0:
print "%s verletzt sich selber durch %s und verliert %i Leben" % (angreifer.name, angreifer.waffe.name, angreifer.waffe.trefferdelta)
angreifer.leben+=angreifer.waffe.trefferdelta
if schaden>angreifer.kraft * 0.75:
wow="der treffer war genial!"
elif schaden>angreifer.kraft * 0.50:
wow="der war ordenlich, aber nicht herausragend"
elif schaden>angreifer.kraft * 0.25:
wow="der treffer war unter dem durchschnitt, vielleicht beim nächsten mal"
elif schaden>angreifer.kraft * 0.10:
wow="gerade noch getroffen"
else:
wow="schäm dich"
print "%s %s verursacht %i schaden bei %s " % (wow, angreifer.name, schaden,verteidiger.name)
else:
print "der angriff ging in den abendhimmel"
#altair vs. loretta
def kampf(angreifer, verteidiger):
angreifer.vorstellen()
verteidiger.vorstellen()
print "---------------------------------------------------"
runde=0
while angreifer.leben>0 and verteidiger.leben>0 and runde<100:
runde+=1
print"==============---- Runde %i ----================" % runde
print "angriff"
schlag(angreifer,verteidiger)
if angreifer.leben>0 and verteidiger.leben>0:
print "gegenangriff"
schlag(verteidiger,angreifer)
if verteidiger.leben > 0:
sieger = verteidiger.name
else:
sieger = angreifer.name
print " %s hat gesiegt" % sieger
return sieger
#print "angreifer %d verteidiger %d" % (angreifer.leben, verteidiger.leben)
#testen
ss=0
sb=0
for duell in range(1,2):
sieger = kampf(zombie, vampir)
print "-------------------------------------------------------------"
print sieger
print "-------------------------------------------------------------"
zombie.leben=100
vampir.leben=100
if sieger == "zombie":
ss+=1
else:
sb+=1
print "zombie: vampir",ss, sb
#jedes monster hat eine kleine gruppe,l aus möglichen waffen...zb banker mit kugelschreiber,lebender sekritärin aktenkoffer,...
#zombie wirft grabsteine oder seinen fuß...dass kostet aber leben,...
==== xturtle ====
import xturtle as xt
xt.bgcolor("black")
for marvin in range(101):
xt.fd(12)
xt.color("red")
xt.fd(7)
xt.color("blue")
xt.left(87)
xt.fd(marvin)
xt.color("yellow")
xt.penup()
xt.home()
xt.fd(-151)
xt.pendown()
for marvin in range(201):
xt.fd(8)
xt.color("red")
xt.fd(7)
xt.penup()
xt.right(100)
xt.left(marvin)
xt.pendown()
xt.color("blue")
# -*- coding: utf-8 -*-
"""Das folgende ist ein kleiner Kampfsimulator
14:Waffen sollen in den Kämpfen eine Rolle spielen"""
import random
import easygui
class Waffe(object):
def __init__(self, name="stock", speed=1, zielgenauigkeit=1 , kraft=1 , failrisk=0.9, feuerrate=10, munition=30 , defense=0, gruppe="primär"):
self.name=name
self.speed=speed
self.zielgenauigkeit=zielgenauigkeit
self.kraft=kraft
self.failrisk=failrisk
self.feuerrate=feuerrate
self.munition=munition
self.defense=defense
self.gruppe=gruppe
class Monster(object):
def __init__(self,name="loretta", speed=1, zielgenauigkeit=1, defense=1, ruestung=1, leben=100, waffe=""):
self.name=name
self.speed=speed
self.zielgenauigkeit=zielgenauigkeit #fähigkeit des schützen
self.defense=defense
self.ruestung=ruestung
self.leben=leben
self.waffe=waffe
waffendir = {}
waffendir["P90"]=Waffe("p90",20, 15, 100, 0.5, 20, 30, 0, "primär")
waffendir["MP5"]=Waffe("mp5",20, 18, 100, 0.4, 15, 30, 0, "primär")
monolithsoldat=Monster("monolithsoldat",20, 20, 20, 5, 100,waffendir["P90"])
zombie=Monster("zombie",10, 10, 10, 5, 100,waffendir["MP5"])
def schusswechsel(x, y):
wspeedx=random.randint(1,20)
wspeedy=random.randint(1,20)
runde=1
print "%s greift %s an %i:%i (%i+%i+%i:%i+%i+%i)" % (x.name, y.name,
x.speed+x.waffe.speed+wspeedx, y.speed+y.waffe.speed+wspeedy, x.speed, x.waffe.speed,wspeedx,
y.speed, y.waffe.speed, wspeedy)
print "schlag"
if x.speed+x.waffe.speed+wspeedx > y.speed+y.waffe.speed+wspeedy:
kampfrunde (x,y)
if y.leben>0:
print "gegenschlag"
kampfrunde(y,x)
else:
kampfrunde(y,x)
if x.leben>0:
print "gegenschlag"
kampfrunde(x,y)
def kampfrunde(a,v):
wzielgenauigkeita=random.randint(-10,10)
wdefensev=random.randint(-10,10)
#treffer?
print "%s trifft %s %i:%i (%i+%i+%i:%i+%i+%i)" % (a.name, v.name, a.zielgenauigkeit+a.waffe.zielgenauigkeit+wzielgenauigkeita, v.defense+v.waffe.defense+wdefensev,
a.zielgenauigkeit,a.waffe.zielgenauigkeit,wzielgenauigkeita, v.defense,v.waffe.defense,wdefensev)
if a.zielgenauigkeit+a.waffe.zielgenauigkeit+wzielgenauigkeita > v.defense+v.waffe.defense+wdefensev:
print "treffer!"
else:
print "der schlag geht in den abendhimmel"
#los
schusswechsel(monolithsoldat,zombie)
# -*- coding: utf-8 -*-
"""Das folgende ist ein kleiner Kampfsimulator
14:Waffen sollen in den Kämpfen eine Rolle spielen"""
import Tkinter as t
import random
class Waffe(object):
def __init__(self, name="stock", speed=1, zielgenauigkeit=1 , kraft=1 , failrisk=0.9, feuerrate=10, munition=30 , defense=0, gruppe="primär"):
self.name=name
self.speed=speed
self.zielgenauigkeit=zielgenauigkeit
self.kraft=kraft
self.failrisk=failrisk
self.feuerrate=feuerrate
self.munition=munition
self.defense=defense
self.gruppe=gruppe
class Monster(object):
def __init__(self,name="loretta", speed=1, zielgenauigkeit=1, defense=1, ruestung=1, leben=100, waffe=""):
self.name=name
self.speed=speed
self.zielgenauigkeit=zielgenauigkeit #fähigkeit des schützen
self.defense=defense
self.ruestung=ruestung
self.leben=leben
self.waffe=waffe
waffendir = {}
waffendir["P90"]=Waffe("p90",20, 15, 100, 0.5, 20, 30, 0, "primär")
waffendir["MP5"]=Waffe("mp5",20, 18, 100, 0.4, 15, 30, 0, "primär")
monolithsoldat=Monster("monolithsoldat",20, 20, 20, 5, 100,waffendir["P90"])
zombie=Monster("zombie",10, 10, 10, 5, 100,waffendir["MP5"])
def schusswechsel(x, y):
output=""
wspeedx=random.randint(1,20)
wspeedy=random.randint(1,20)
zeile= "%s greift %s an %i:%i (%i+%i+%i:%i+%i+%i) \n" % (x.name, y.name,
x.speed+x.waffe.speed+wspeedx, y.speed+y.waffe.speed+wspeedy, x.speed, x.waffe.speed,wspeedx,
y.speed, y.waffe.speed, wspeedy)
#print zeile
output += zeile
output+= "angriff \n"
if x.speed+x.waffe.speed+wspeedx > y.speed+y.waffe.speed+wspeedy:
output+= kampfrunde (x,y)
if y.leben>0:
output+= "gegenangriff"
output+=kampfrunde(y,x)
else:
output+=kampfrunde(y,x)
if x.leben>0:
output+= "gegenangriff"
print output
return output
def kampfrunde(a,v):
output=""
wzielgenauigkeita=random.randint(-10,10)
wdefensev=random.randint(-10,10)
wvolltreffer=random.random()
#treffer?
zeile = "%s trifft %s %i:%i (%i+%i+%i:%i+%i+%i) \n" % (a.name, v.name, a.zielgenauigkeit+a.waffe.zielgenauigkeit+wzielgenauigkeita, v.defense+v.waffe.defense+wdefensev,
a.zielgenauigkeit,a.waffe.zielgenauigkeit,wzielgenauigkeita, v.defense,v.waffe.defense,wdefensev)
output += zeile
if a.zielgenauigkeit+a.waffe.zielgenauigkeit+wzielgenauigkeita > v.defense+v.waffe.defense+wdefensev:
output+= "treffer! \n"
impact=random.random()#*a.waffe.kraft)
zeile= "impact: %f x kraft: %i = %i \n" % (impact, a.waffe.kraft, impact * a.waffe.kraft)
output+=zeile
impact =int(impact* a.waffe.kraft )
schaden=impact- v.ruestung
if schaden>0:
zeile= "%s verursacht %i schaden \n" % (a.name, schaden)
output+=zeile
v.leben-=schaden
output+= "so viel leben ist noch übrig: %i \n" % v.leben
else:
output+= " dein gegener war zu stark, haha...."
else:
output+= "der schlag geht in den abendhimmel"
return output
# jetz gehts wirklich los
#gefecht(monolithsoldat, zombie)
spieler=monolithsoldat
def einerunde(angreifer, verteidiger):
angreifer.leben, verteidiger.leben=kampf(angreifer, verteidiger)
def lol():
#print"karte, etc."
text1.set("karte")
text2.set("medkit")
text3.set("stein")
text4.set("ast")
text5.set("p90")
def hallo():
#print "P90"
#meldung.set("leben")
pass
def hey():
kampfbericht=schusswechsel(zombie, spieler)
def ad():
#print"medkit"
#meldung.set("arsch")
pass
def flucht():
pass
def tolles_inventar():
inventar=["tux","fenster","appfel","fux","cod","portal"]
def mies_inventar():
inventar1=["lalala","asdasdad","st.lorenz_strom","chicago"]
root=t.Tk()
#meldung=t.StringVar()
#meldung.set("hallo")
gegner=zombie
statuslinks=t.StringVar()
statusrechts=t.StringVar()
kampfbericht=t.StringVar()
statuslinks.set("Status: SPD: %i DEF: %i KRT: %i HP: %i\n Waffe: %s" %(spieler.speed, spieler.defense, spieler.waffe.kraft, spieler.leben, spieler.waffe.name))
statusrechts.set("Status: SPD: %i DEF: %i KRT: %i HP: %i\n Waffe: %s" %(gegner.speed, gegner.defense, gegner.waffe.kraft, gegner.leben, gegner.waffe.name))
kampfbericht.set("")
t.Label(root, text="Ich vs. Zombie", borderwidth=1).grid(row=0,column=0, columnspan=5)
t.Label(root, textvariable=statuslinks, borderwidth=1).grid(row=1,column=0, columnspan=2)
t.Label(root, textvariable=statusrechts, borderwidth=1).grid(row=1, column=3, columnspan=2)
marvin= t.PhotoImage(file="marvin1.gif")
t.Label(root, image=marvin).grid(row=2, column=0, rowspan=5 ,columnspan=2)
marvin1= t.PhotoImage(file="marvin2.gif")
t.Label(root, image=marvin1).grid(row=2, column=3, rowspan=5, columnspan=2)
t.Button(root, text="Inventar", command=lol).grid(row=2, column=2)
t.Button(root, text="Waffe wechseln", command=hallo).grid(row=3, column=2)
t.Button(root, text="Angreiffen", command=hey).grid(row=4, column=2)
t.Button(root, text="Flüchten", command=flucht).grid(row=5, column=2)
t.Button(root, text="Medkit", command=ad).grid(row=6, column=2)
text1=t.StringVar()
text2=t.StringVar()
text3=t.StringVar()
text4=t.StringVar()
text5=t.StringVar()
t.Button(root, textvariable=text1).grid(row=7, column=0)
t.Button(root, textvariable=text2).grid(row=7, column=1)
t.Button(root, textvariable=text3).grid(row=7, column=2)
t.Button(root, textvariable=text4).grid(row=7, column=3)
t.Button(root, textvariable=text5).grid(row=7, column=4)
t.Label(root, textvariable=kampfbericht).grid(row=8, column=0, columnspan=5)
root.mainloop()
{{:personen:marvin:marvin200909.zip|}}
{{:de:personen:marvin:politschlacht_3.zip|}}