Brauche Hilfe bei Würfelsimulator

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Antworten
3Domse3
User
Beiträge: 2
Registriert: Samstag 27. Juni 2015, 08:18

Hallo,
ich bin ein ziemlicher Anfänger in Python und habe mir zum üben einen Würfelsimulator ausgedacht.
Dieser kann bisher einen normalen Würfel, einen selbst definierten und einen mit definierbaren Zeichen simulieren.
Nun will ich (unter Punkt 4 im Programm) noch einen gezinkten Würfel einbauen, bei dem man festlegen kann wie viele Würfen,
welche Zeichen und bei jedem Zeichen welche Wahrscheinlichkeit es hat. Ich habe mir überlegt, dann man die Wahrscheinlichkeit in Prozent angibt, jedoch ohne %, also nur die Zahl. Dann wird diese Zahl mit einer for-Schleife so oft in eine Liste geschriben und dass wird dann so oft wiederholt, wie man vorher festgelegt hat. Danach wird so oft wie man gesagt hat, random eine Zahl/Zeichen(-kette) daraus genommen und ausgegeben. Da ich aber nicht weiß wie ich das mit der Liste hinbekommen soll, wäre es toll, ihr könntet mir helfen.

Viele Grüße.
3Domse3

PS: Hier ist noch der aktuelle Code des Programms ;)

Code: Alles auswählen

# -*- coding: utf-8 -*-
#made by Domse

#import der Module
import random
import time

#Anfangsanzeige
print(" ")
print("Wuerfelsimulator, made by Domse")
print(" ")

#Wartetimer
time.sleep(0.5)

#Anzeige Menue
print("Welchen Wuerfel wollen sie simulieren?")
print("1: Normaler Wuerfel")
print("2: Eigene Definition")
print("3: Buchstaben und Woerter")
print("4: Gezinkter Wuerfel")
print(" ")

#Auswahl Menue
a = input("Auswahl: ")

#Abgrenzung
print("________")
print(" ")

#Auswahl 1
if(a == 1):

    #Eingabe b
    b = input("Wie oft soll gewuerfelt werden: ")

    #Abgrenzung
    print(" ")
    print("Ergebnis")
    print("________")

    #Schleife b
    for i in range(b):

        #random y
        y = random.randint(1,6)
        print(y)

    #Abgrenzung
    print("________")

#Auswahl 2
elif(a == 2):

    #Eingabe b, c
    b = input("Wie oft soll gewuerfelt werden: ")
    print(" ")
    c = input("Wie wiele Ziffern soll der Wuerfel haben: ")

    #Abgrenzung
    print(" ")
    print("Ergebnis")
    print("________")

    #Schleife b
    for i in range(b):

        #random y
        y = random.randint(1,c)

        #Ergebnis
        print(y)

    #Abgrenzung
    print("________")

#Auswahl 3
elif(a == 3):

    #Eingabe b
    b = input("Wie oft soll gewuerfelt werden: ")
    print(" ")
    c = input('Welches Trennzeichen moechten sie verwenden (Das Zeichen darf danach nicht wieder verwendet werden). Bitte am Anfang und am Ende " schreiben.: ')
    print(" ")
    l = input('Welche Zeichen(-ketten) moechten sie verwenden (bitte mit "+ c +" trennen).  Bitte am Anfang und am Ende " schreiben.: ')
    
    #Liste mit Trennung    
    z = l.split(c)
    
    #Schleife    
    for i in range(b):

        #random Index x
        x = random.randint(0, len(z) -1)

        #random aus Liste nehmen
        y = z[x]
        
        #Ergebnis
        print(y)

#Auswahl 4    
elif(a == 4):

#Auswahl ungültig
else:
    print("Ungültige Eingabe!")
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

@3Domse3: für Deinen Fall 3 gibt es random.choice um ein zufälliges Element aus einer Liste auszuwählen. Den Fall 4 hast Du ja schon ausführlich beschrieben. Was fehlt Dir noch? Schleifen kennst Du, dass man mit append ein Element an eine Liste anhängen kann, steht in jedem Anfängertutorial.

PS: if ist keine Funktion. Was sollen also die Klammern?
3Domse3
User
Beiträge: 2
Registriert: Samstag 27. Juni 2015, 08:18

Danke für die antwort. Mir hat bei den Anfängen ein Freund geholfen der sich schon besser auskennt. Da er im Moment keine Zeit hat, bin ich auf mich allein gestellt. Deswegen wollte ich fragen ob mir hier jmd helfen kann bevor ich umständlich im Internet suche. ;)
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

@3Domse3: Du sollst nicht umständlich im Internet suchen, es gibt nämlich nicht für alles eine Lösung, die im Internet steht. In Büchern oder mit Tutorials, mit denen man Python lernt, wird immer irgendwo erklärt, wie man mit Listen arbeitet. Das dort geschriebene mußt Du dann auf Dein Problem übertragen.
Antworten