Random Anweisung in Python?
lima-city → Forum → Programmiersprachen → Python
anzahl
aufruf
code
element
ergebnis
erleben
falle
foto
funktion
import
lehrer
modul
problem
schule
senior code
sequenz
spiel
wissen
zufall
zufallsgenerator
-
Liebes User,
gerrade beim programmieren unseres Pen/Paper RPGs, in Python, haben wir das problem das wir nicht wissen wie man einen Zufallsgenerator einbaut...
hier unser code (nix gegen Schule^^)
action=input("So what do you do now?") if action==1: randenemy=random(1,5) if randenemy==1: enemytype="senior" elif randenemy==2: enemytype="regular student" elif radenemy==3: enemytype="dormparent" elif randenemy==4: enemytype="teacher" elif randenemy==5: enemytype="staff"
Das problem: Wir wissen nicht wie man 1 bis 5 definiert, bzw. 1-5 stellen Enemytypes dar, die vorher angegeben sind!
Danke vielmals,
MrB -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ui, ich hab mal nen Lehere-Verhau-Spiel gecodet mit random:
Also 1. musst du mal folgendes austauschen:
zurandenemy=random(1,5)
r = random.randint(0, X)
Dann tausche das
zuif randenemy==1: enemytype="senior"
if r == 0: if l0 == 0:
Und den Rest, kann ich dir nicht sagen, da ich nen andren Code-Aufbau habe, als du.
Sagmal: Um was geht es denn in deinem Spiel?
Beitrag zuletzt geändert: 7.11.2009 11:03:42 von m-homepage -
m-homepage schrieb:
Ui, ich hab mal nen Lehere-Verhau-Spiel gecodet mit random
muss ich schnell rauskramen, moment!
Lol, na da freu ich mich schon mal auf den Code (und kannste mir das Spiel mal zeigen xD) -
m-homepage schrieb:
Nein, kann ich beides nicht. Hab meinen Beitrag editiert.
Das Spiel hab ich nämlich nicht allein gecodet sondern mit 2 andren Schülern und die Fotos der Lehrer kann ich auch nicht preisgeben. Sorry
Naja. in dem RPG gehts um unsere Schule^^
Naja, wir bauen gerrade das Kampf system. Dann wird man durch einen Story Weg geleitet, bzw. man kann an verschiedene Orte der Schule und dann dort einiges erleben^^
m-homepage schrieb:
if r == 0: if l0 == 0:
das if l0 == 0: versteh ich irwie nicht...
Und es klappt auch irwie nicht:
Traceback (most recent call last): File "G:\Data\Desktop\Web\KIS Rpg\main.py", line 153, in <module> r = random.randint(0,4) AttributeError: 'builtin_function_or_method' object has no attribute 'randint'
MFG,
MrB
PS: Wenns fertig wird, laden wir´s auch hoch §ugly
Beitrag zuletzt geändert: 7.11.2009 11:27:24 von misterbunny -
Also wenn die Elemente aus denen die Zufallszahl stammt bekannt sind und die Menge der infragekommenden Elemente ausreichend klein ist kann man das auch mit der Funktion choice() des random Moduls machen:
#! /usr/bin/env python # Magic Line zum übergeben des Interpreterpfades, nur unter Unix sinnvoll sequenz = [1,2,3,4,5,6] # Die Sequenz oder Liste kann man ja mit einer schleife erstellen lassen wen die Anzahl der Elemente größer wird def zufallsgenerator(sequenz): # Da ihr den Zufallsgenerator öfter braucht bietet sich eine Funktion an import random # Importiert das random modul das die Funktion choice() enthält zufallselement = random.choice(sequenz) # weist der Variablen zufallselement den Rückgabewert von choice(sequenz) zu return zufallselement # gibt dem Script den Wert von Zufallselement zurück print zufallsgenerator(sequenz) # Aufruf der Funktion und ausgabe des zurückgegebenen Wertes auf der Standardausgabe
In jedem Falle solltet ihr beachten das der Zufall soweit nicht anders definiert in Python Uhrzeitabhänig ist und das 2 Aufrufe kurz nacheinander mit hoher Wahrscheinlichkeit das selbe Ergebnis liefern werden, deswegen sollte man sich in eurem Falle mit der Dokumentation des Random Moduls etwas weitergehend beschäftigen.
Wichtig ist auch das das Zufallsmodul nicht threadsicher ist, das heißt 2 aufrufe in 2 unterschiedlichen Threads können das selbe Ergebnis bekommen, ihr solltet prüfen ob das der Fall sein darf . Wenn nicht solltet ihr eine Anzahl von Zufallsgeneratoren erzeugen die mit garantiert unterschiedlichen Werten initialisiert werden.
Zufall ist nämlich kein Zufall *g* (aber man kann nahe ran kommen)
Beitrag zuletzt geändert: 7.11.2009 12:13:13 von fatfox -
Hi Leute^^
Ihr werdets kaum glauben: den einzigen Fehler den wir gemacht hatten war, das wir
anstattfrom random import*
geschrieben hatten! (Und das wir random.randomint nicht kannten! )import random
Der erste Fight ging super
Wir haben mit Feusten gegen die Waffe "Hey!" gekämpft und 4EXP gewonnen und gerrademal 33HP verloren
MFG,
MrB -
Na dann Gratuliere ich Herzlich!
Darf ich auch noch fragen, wo das Spiel zu finden ist? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage