Hi,
erstmal vielen Dank für die Mühen und Hilfen
Ich verstehe nur nicht den Punkt in der Angriffsfunktion mit dem "if not".
Zum intend: Das macht bei mir Vim automatisch, kann ich das irgendwie auf 4 "verringern" ?
Das Programm war auch nur eben schnell gemacht, um zu sehen, wie man sowas macht. Ihr habt natürlich recht mit den Funktionen und VariablenNamen
Finde meinen Fehler einfach nicht
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Meinst du jbs' Code? Wenn ja, dann entspricht "not randint(..)" "randint(..) == 0" da `0` zu `False` evaluiert.Matty265 hat geschrieben:Ich verstehe nur nicht den Punkt in der Angriffsfunktion mit dem "if not".
Sollte alle PEP8 Aspekte beachten:Matty265 hat geschrieben:Zum indent: Das macht bei mir Vim automatisch, kann ich das irgendwie auf 4 "verringern" ?
Code: Alles auswählen
augroup python
au!
au FileType python setlocal textwidth=79
au FileType python setlocal expandtab, tabstop=4, softtabstop=4
au FileType python setlocal shiftwidth=4
augroup END
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
Dankecofi hat geschrieben:Code: Alles auswählen
augroup python au! au FileType python setlocal textwidth=79 au FileType python setlocal expandtab, tabstop=4, softtabstop=4 au FileType python setlocal shiftwidth=4 augroup END
Sorrycofi hat geschrieben:Matty265 hat geschrieben:Zum indent: Das macht bei mir Vim automatisch, kann ich das irgendwie auf 4 "verringern" ?
Sehr gute Frage. Ich bin mir noch nicht sicher. Ich sehe drei Alternativen.jbs hat geschrieben:@sma: Wie hast du denn vor die Typen der Feinde zu verwalten?
Zur Zeit habe ich einfach eine Klasse (`Being`), deren Exemplare Monster und Helden (wie ich Spielercharaktere z.Z. nenne) repräsentieren. Einzig eine Reihe von Attributen definiert ein Wesen:
Code: Alles auswählen
class Being:
def __init__(self, name, attack, defense, weapon, armor, ...):
...
Code: Alles auswählen
class Maker:
def make_city_guard():
b = Being("Stadtwache", ...)
b.weapon = Weapons.make_halberd()
b.armor = Armors.make_half_plate()
b.append_feature(can_call_other_guards)
return b
Code: Alles auswählen
class CityGuard(Being):
def attack(self): ...
def hit(self, damage): ...
self.health -= damage
if self.health > 0:
self._call_for_help()
def _call_for_help(self):
if not self.flag("called_for_help"):
self.set_flag("called_for_help", True)
...
Daher die dritte Idee, die Art noch Mal als Python-Klasse zu modellieren:
Code: Alles auswählen
class Kind(object):
...
snow_barbar = Kind("Schneelandbarbar")
snow_barbar.strength = "2d8"
snow_barbar.health = "d6+10"
conan = snow_barbar.make()
Code: Alles auswählen
class Randomize:
def __init__(*pairs):
self.pairs = pairs
def make(self):
v = roll("d100")
for p, make in self.pairs:
if v < p:
return make()
v -= p
raise "Oops"
snow_barbar.weapon = Randomize(
(10, Weapons.make_broadsword),
(60, Weapons.make_battle_axe),
(30, Weapons.make_short_bow),
)
Stefan