Lösungen#

# Parameter der Simulation definieren (Aufgabe 1)
STREET_LEN = 20
TICKS = 10
SPEED = 1

# Agenten-Population erstellen (Aufgabe 2)
population = [0, 4, 7]

# für jeden Zeitschritt (Aufgabe 6)
for tick in range(TICKS):
    
    # Straße als Liste darstellen (Aufgabe 3)
    street = []
    for i in range(STREET_LEN):
        street.append("_")
    
    # Agenten auf Straße setzen (Aufgabe 4)
    for agent_position in population:
        street[agent_position] = "#"
    
    # Straße als String darstellen und in Konsole printen (Aufgabe 5)
    street_as_string = "".join(street)
    print(street_as_string)
    
    # Position der Agenten verändern (Aufgabe 7 & 9)
    for i in range(len(population)):
        population[i] = (population[i] + SPEED) % STREET_LEN
#___#__#____________
_#___#__#___________
__#___#__#__________
___#___#__#_________
____#___#__#________
_____#___#__#_______
______#___#__#______
_______#___#__#_____
________#___#__#____
_________#___#__#___

Unten ist nochmal derselbe Code, allerdings habe ich die “Parameter” verändert:

# Parameter der Simulation definieren (Aufgabe 1)
STREET_LEN = 50
TICKS = 100
SPEED = 3

# Agenten-Population erstellen (Aufgabe 2)
population = [0, 4, 7]

# für jeden Zeitschritt (Aufgabe 6)
for tick in range(TICKS):
    
    # Straße als Liste darstellen (Aufgabe 3)
    street = []
    for i in range(STREET_LEN):
        street.append("_")
    
    # Agenten auf Straße setzen (Aufgabe 4)
    for agent_position in population:
        street[agent_position] = "#"
    
    # Straße als String darstellen und in Konsole printen (Aufgabe 5)
    street_as_string = "".join(street)
    print(street_as_string)
    
    # Position der Agenten verändern (Aufgabe 7 & 9)
    for i in range(len(population)):
        population[i] = (population[i] + SPEED) % STREET_LEN
#___#__#__________________________________________
___#___#__#_______________________________________
______#___#__#____________________________________
_________#___#__#_________________________________
____________#___#__#______________________________
_______________#___#__#___________________________
__________________#___#__#________________________
_____________________#___#__#_____________________
________________________#___#__#__________________
___________________________#___#__#_______________
______________________________#___#__#____________
_________________________________#___#__#_________
____________________________________#___#__#______
_______________________________________#___#__#___
__________________________________________#___#__#
__#__________________________________________#___#
__#__#__________________________________________#_
_#___#__#_________________________________________
____#___#__#______________________________________
_______#___#__#___________________________________
__________#___#__#________________________________
_____________#___#__#_____________________________
________________#___#__#__________________________
___________________#___#__#_______________________
______________________#___#__#____________________
_________________________#___#__#_________________
____________________________#___#__#______________
_______________________________#___#__#___________
__________________________________#___#__#________
_____________________________________#___#__#_____
________________________________________#___#__#__
#__________________________________________#___#__
#__#__________________________________________#___
___#__#__________________________________________#
__#___#__#________________________________________
_____#___#__#_____________________________________
________#___#__#__________________________________
___________#___#__#_______________________________
______________#___#__#____________________________
_________________#___#__#_________________________
____________________#___#__#______________________
_______________________#___#__#___________________
__________________________#___#__#________________
_____________________________#___#__#_____________
________________________________#___#__#__________
___________________________________#___#__#_______
______________________________________#___#__#____
_________________________________________#___#__#_
_#__________________________________________#___#_
_#__#__________________________________________#__
#___#__#__________________________________________
___#___#__#_______________________________________
______#___#__#____________________________________
_________#___#__#_________________________________
____________#___#__#______________________________
_______________#___#__#___________________________
__________________#___#__#________________________
_____________________#___#__#_____________________
________________________#___#__#__________________
___________________________#___#__#_______________
______________________________#___#__#____________
_________________________________#___#__#_________
____________________________________#___#__#______
_______________________________________#___#__#___
__________________________________________#___#__#
__#__________________________________________#___#
__#__#__________________________________________#_
_#___#__#_________________________________________
____#___#__#______________________________________
_______#___#__#___________________________________
__________#___#__#________________________________
_____________#___#__#_____________________________
________________#___#__#__________________________
___________________#___#__#_______________________
______________________#___#__#____________________
_________________________#___#__#_________________
____________________________#___#__#______________
_______________________________#___#__#___________
__________________________________#___#__#________
_____________________________________#___#__#_____
________________________________________#___#__#__
#__________________________________________#___#__
#__#__________________________________________#___
___#__#__________________________________________#
__#___#__#________________________________________
_____#___#__#_____________________________________
________#___#__#__________________________________
___________#___#__#_______________________________
______________#___#__#____________________________
_________________#___#__#_________________________
____________________#___#__#______________________
_______________________#___#__#___________________
__________________________#___#__#________________
_____________________________#___#__#_____________
________________________________#___#__#__________
___________________________________#___#__#_______
______________________________________#___#__#____
_________________________________________#___#__#_
_#__________________________________________#___#_
_#__#__________________________________________#__

Weitere Modifikationen, die über die eigentliche Aufgabenstellung hinausgehen#

Es war nicht Teil der Aufgaben, aber hier erhöhte ich spaßeshalber mal mit jedem Zeitschritt die Geschwindigkeit der Agenten. Die Agenten beschleunigen nun also:

# Parameter der Simulation definieren (Aufgabe 1)
STREET_LEN = 50
TICKS = 100
SPEED = 1

# Agenten-Population erstellen (Aufgabe 2)
population = [0, 4, 7]

# für jeden Zeitschritt (Aufgabe 6)
for tick in range(TICKS):
    
    # Straße als Liste darstellen (Aufgabe 3)
    street = []
    for i in range(STREET_LEN):
        street.append("_")
    
    # Agenten auf Straße setzen (Aufgabe 4)
    for agent_position in population:
        street[agent_position] = "#"
    
    # Straße als String darstellen und in Konsole printen (Aufgabe 5)
    street_as_string = "".join(street)
    print(street_as_string)
    
    # Position der Agenten verändern (Aufgabe 7 & 9)
    for i in range(len(population)):
        population[i] = (population[i] + SPEED) % STREET_LEN
    
    SPEED = SPEED + 1
#___#__#__________________________________________
_#___#__#_________________________________________
___#___#__#_______________________________________
______#___#__#____________________________________
__________#___#__#________________________________
_______________#___#__#___________________________
_____________________#___#__#_____________________
____________________________#___#__#______________
____________________________________#___#__#______
__#__________________________________________#___#
_____#___#__#_____________________________________
________________#___#__#__________________________
____________________________#___#__#______________
_________________________________________#___#__#_
_____#___#__#_____________________________________
____________________#___#__#______________________
____________________________________#___#__#______
___#___#__#_______________________________________
_____________________#___#__#_____________________
________________________________________#___#__#__
__________#___#__#________________________________
_______________________________#___#__#___________
___#___#__#_______________________________________
__________________________#___#__#________________
#___#__#__________________________________________
_________________________#___#__#_________________
_#___#__#_________________________________________
____________________________#___#__#______________
______#___#__#____________________________________
___________________________________#___#__#_______
_______________#___#__#___________________________
#__#__________________________________________#___
____________________________#___#__#______________
___________#___#__#_______________________________
__#__________________________________________#___#
______________________________#___#__#____________
________________#___#__#__________________________
___#___#__#_______________________________________
_________________________________________#___#__#_
______________________________#___#__#____________
____________________#___#__#______________________
___________#___#__#_______________________________
___#___#__#_______________________________________
#__#__________________________________________#___
________________________________________#___#__#__
___________________________________#___#__#_______
_______________________________#___#__#___________
____________________________#___#__#______________
__________________________#___#__#________________
_________________________#___#__#_________________
_________________________#___#__#_________________
__________________________#___#__#________________
____________________________#___#__#______________
_______________________________#___#__#___________
___________________________________#___#__#_______
________________________________________#___#__#__
#__#__________________________________________#___
___#___#__#_______________________________________
___________#___#__#_______________________________
____________________#___#__#______________________
______________________________#___#__#____________
_________________________________________#___#__#_
___#___#__#_______________________________________
________________#___#__#__________________________
______________________________#___#__#____________
__#__________________________________________#___#
___________#___#__#_______________________________
____________________________#___#__#______________
#__#__________________________________________#___
_______________#___#__#___________________________
___________________________________#___#__#_______
______#___#__#____________________________________
____________________________#___#__#______________
_#___#__#_________________________________________
_________________________#___#__#_________________
#___#__#__________________________________________
__________________________#___#__#________________
___#___#__#_______________________________________
_______________________________#___#__#___________
__________#___#__#________________________________
________________________________________#___#__#__
_____________________#___#__#_____________________
___#___#__#_______________________________________
____________________________________#___#__#______
____________________#___#__#______________________
_____#___#__#_____________________________________
_________________________________________#___#__#_
____________________________#___#__#______________
________________#___#__#__________________________
_____#___#__#_____________________________________
__#__________________________________________#___#
____________________________________#___#__#______
____________________________#___#__#______________
_____________________#___#__#_____________________
_______________#___#__#___________________________
__________#___#__#________________________________
______#___#__#____________________________________
___#___#__#_______________________________________
_#___#__#_________________________________________
#___#__#__________________________________________

Und hier ersetze ich spaßeshalber in jedem Zeitschritt für jeden Agenten die Geschwindigkeit durch einen Zufallswert zwischen 1 und 3 mithilfe des Python-Zusatzpaketes random. Wie wir solche Zusatzpakete nutzen können, erfahren wir in den nächsten Kapiteln.

import random

# Parameter der Simulation definieren (Aufgabe 1)
STREET_LEN = 50
TICKS = 100
SPEED = 1

# Agenten-Population erstellen (Aufgabe 2)
population = [0, 4, 7]

# für jeden Zeitschritt (Aufgabe 6)
for tick in range(TICKS):
    
    # Straße als Liste darstellen (Aufgabe 3)
    street = []
    for i in range(STREET_LEN):
        street.append("_")
    
    # Agenten auf Straße setzen (Aufgabe 4)
    for agent_position in population:
        street[agent_position] = "#"
    
    # Straße als String darstellen und in Konsole printen (Aufgabe 5)
    street_as_string = "".join(street)
    print(street_as_string)
    
    # Position der Agenten verändern (Aufgabe 7 & 9)
    for i in range(len(population)):
        SPEED = random.randint(1,3)
        population[i] = (population[i] + SPEED) % STREET_LEN
    
    
#___#__#__________________________________________
_#___#___#________________________________________
___#__#____#______________________________________
____#___#_____#___________________________________
______#___#____#__________________________________
_________#_#_____#________________________________
___________#__#___#_______________________________
_____________#__#___#_____________________________
________________#_#____#__________________________
___________________##____#________________________
____________________#__#__#_______________________
______________________#___#__#____________________
_________________________#_#___#__________________
__________________________#_#_____#_______________
_____________________________#_#___#______________
_______________________________##____#____________
________________________________##______#_________
___________________________________##_____#_______
_____________________________________##____#______
______________________________________#__#__#_____
________________________________________#__#___#__
___________________________________________##____#
__#_________________________________________#__#__
_____#________________________________________#__#
_#____#________________________________________#__
__#_____#_______________________________________#_
___#______#______________________________________#
__#___#______#____________________________________
____#___#______#__________________________________
_______#___#____#_________________________________
________#____#____#_______________________________
__________#____#___#______________________________
____________#___#___#_____________________________
_____________#___#___#____________________________
________________#_#_____#_________________________
_________________#_#_______#______________________
____________________##_______#____________________
_______________________#_______#__________________
________________________#_#______#________________
_________________________#__#_____#_______________
__________________________#__#______#_____________
___________________________#__#________#__________
_____________________________#__#_________#_______
________________________________#__#________#_____
_________________________________#____#_______#___
____________________________________#____#_______#
_#_____________________________________#____#_____
__#_______________________________________#____#__
_____#______________________________________#___#_
______#______________________________________#___#
__#_____#_____________________________________#___
____#____#_____________________________________#__
______#____#____________________________________#_
#________#__#_____________________________________
__#________#_#____________________________________
____#_______#_#___________________________________
_____#________#__#________________________________
______#__________##_______________________________
_______#__________##______________________________
__________#_________##____________________________
____________#________##___________________________
______________#_________##________________________
_________________#________##______________________
__________________#__________##___________________
___________________#____________##________________
____________________#_____________#_#_____________
______________________#_____________#_#___________
_______________________#______________##__________
__________________________#____________#__#_______
___________________________#____________#__#______
____________________________#_____________#___#___
_______________________________#_____________#___#
_#______________________________#______________#__
#___#______________________________#______________
_#____#_____________________________#_____________
__#____#_____________________________#____________
____#____#____________________________#___________
______#_____#__________________________#__________
________#_____#__________________________#________
_________#_____#____________________________#_____
____________#____#_____________________________#__
_____________#____#_____________________________#_
_#______________#___#_____________________________
____#______________#___#__________________________
______#______________#___#________________________
_________#______________#__#______________________
___________#______________#_#_____________________
______________#______________##___________________
_______________#________________#_________________
________________#________________##_______________
___________________#_______________#_#____________
____________________#_________________#___________
______________________#_________________##________
_________________________#________________#_______
__________________________#_________________##____
_____________________________#_______________##___
______________________________#_______________#_#_
_______________________________#_________________#
#_#_______________________________#_______________
_#_#________________________________#_____________