Ah, klasse! Jetzt versteh ichs! Vielen Dank
Ich werde mal die Tage ein wenig weiter probieren und den gesamten Code erweitern und dann das nächste Ergebnis, ob mit oder ohne Fehler posten. Vielleicht interessiert den Werdegang ja noch jemand, der die gleiche Problematik wie ich hat/hatte.
Möchte noch ein großes Lob aussprechen wie kompetent und schnell hier geholfen wird! Erste Sahne.
edit:
Naja, einige Tage waren es jetzt nicht, aber ich poste trotzdem mal
Folgende Aufgaben habe ich mir noch vorgenommen:
1. Beim erstellen eines Charakters sollen die Skillpunkte nicht wahlweise vergeben werden sondern definitiv an die maximal verfügbare Skillpunktgrenze gebunden sein. Ich bin mir nur noch nicht sicher, wie ich das realisieren kann und soll. Wären hier einfache If-Abfragen geeignet, oder wäre das bei mehreren Attributen zu kompliziert?
2. Ich möchte einen Dungeon / eine Spielwelt erstellen. Hier weiß ich nicht ob ich es in Form einer Textausgabe mache ("Sie stehen vor einer Gabelung, wollen Sie rechts oder links gehen"), oder in Form einer Karte. Hierbei weiß ich leider auch nicht wie man das realisieren kann.
Version Textausgabe: Vielleicht verschiedene Klassen erstellen, welche zufällig ausgewählt werden, damit eine Spielwelt aufgebaut wird? Oder doch If-Abfragen? Nur wie könnte ich dann Items und Gegner integrieren?
Version Karte: Z.B. ein Feld von 15x15 Positionen erstellen, welche vielleicht zufällig erzeugt werden. Hier auch wieder die Frage wie Items und Gegner integriert werden können.
3. Die Spielfigur soll sich natürlich bewegen können. Gibt es eine Möglichkeit z.B. eine Pfeiltaste zu drücken und dann ohne die zwingende Eingabe der Enter-Taste etwas auszulösen?
Es wäre auch cool, wenn ihr mir einfach Stichworte, oder Seiten nennt mit denen ich dann vielleicht auch selber auf eine Lösung kommen kann.
Code: Alles auswählen
import pickle
import random
from sys import exit
from os import listdir
def create_char():
skillpunkte = 20
char = Character()
char.name = raw_input('Welchen Namen soll der Charakter tragen? ')
char.staerke = int(raw_input('Wieviele Punkte in Staerke investieren? (noch ' + str(skillpunkte) + ')'))
char.beweglichkeit = int(raw_input('Wieviele Punkte in Beweglichkeit investieren? (noch ' + str(skillpunkte) + ')'))
char.charisma = int(raw_input('Wieviele Punkte in Charisma investieren? (noch ' + str(skillpunkte) + ')'))
char.moral = int(raw_input('Wieviele Punkte in Moral investieren? (noch ' + str(skillpunkte) + ')'))
char.erfahrung = int(raw_input('Wieviele Punkte in Erfahrung investieren? (noch ' + str(skillpunkte) + ')'))
char.waffe = ['nichts','1','1']
char.leben = 100
return char
def load_char():
dir = listdir('characters/')
print 'Mit welchem Charakter moechten Sie weiterspielen?'
x = 0
for i in dir:
x += 1
print str(x) + ') ' + i
i = int(raw_input())
datei = open('characters/' + dir[i-1], 'rb')
char = pickle.load(datei)
datei.close()
return char
def move():
pass
class Character:
def __init__(self):
name = 'unknown'
staerke = 1
beweglichkeit = 1
charisma = 1
moral = 1
erfahrung = 1
def dump(self):
filename = self.name.lower()
datei = open('characters/' + filename, 'wb')
pickle.dump(self, datei)
datei.close()
def get_weapon(self, weapon):
my_char.waffe = weapon
def attack(self):
schaden = (self.staerke + self.beweglichkeit) * (self.waffe.damage + self.waffe.weight) + (self.moral + self.erfahrung) - random.randint(1,30)
print 'Sie haben ' + str(schaden) + ' Punkte Schaden mit einem ' + str(self.waffe.name) + ' verursacht'
def defend(self, gegner):
erlittener_schaden = (self.staerke + self.erfahrung) - gegner.damage
print 'Sie werden von einem ' + gegner.name + ' angegriffen!'
print 'Sie haben ' + str(erlittener_schaden) + ' Punkte Schaden erlitten.'
class Weapons(object):
def __init__(self, name, damage, weight, distance):
self.name = name
self.damage = damage
self.weight = weight
self.distance = distance
class Enemies(object):
def __init__(self, name, damage, skillpoints):
self.name = name
self.damage = damage
self.skillpoints = skillpoints
print '|------------TestRPG-------------|'
print '| 1) Neuen Charakter erstellen |'
print '| 2) Mit Charakter weiterspielen |'
print '| 3) Programm beenden |'
print '|--------------------------------|'
i = int(raw_input())
if i == 1:
my_char = create_char()
my_char.dump()
elif i == 2:
my_char = load_char()
elif i == 3:
exit()
# Definition aller verfuegbaren Waffen mit ihrer Angriffskraft,
# ihrem Gewicht und der moeglichen Distanz
kurzschwert = Weapons('Kurzschwert', 5, 2, 1)
langschwert = Weapons('Langschwert', 8, 4, 1)
bogen = Weapons('Bogen', 6, 1, 10)
# Definition aller moeglichen Gegner mit ihrer Angriffskraft
# und den zu erhaltenden Erfahrungspunkten
gnom = Enemies('Gnom', 5, 15)
troll = Enemies('Troll', 8, 20)
# Beispielaktionen
my_char.get_weapon(langschwert)
my_char.attack()
my_char.defend(gnom)
my_char.dump()
[url=http://myspace.com/deathmetalvictory][myspace][/url][url=http://grunzgewitter.blogspot.com][blog][/url][url=http://twitter.com/AgatheBauer][twitter][/url]