Lösungen
Contents
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
#___#__#__________________________________________
_#___#___#________________________________________
___#__#____#______________________________________
____#___#_____#___________________________________
______#___#____#__________________________________
_________#_#_____#________________________________
___________#__#___#_______________________________
_____________#__#___#_____________________________
________________#_#____#__________________________
___________________##____#________________________
____________________#__#__#_______________________
______________________#___#__#____________________
_________________________#_#___#__________________
__________________________#_#_____#_______________
_____________________________#_#___#______________
_______________________________##____#____________
________________________________##______#_________
___________________________________##_____#_______
_____________________________________##____#______
______________________________________#__#__#_____
________________________________________#__#___#__
___________________________________________##____#
__#_________________________________________#__#__
_____#________________________________________#__#
_#____#________________________________________#__
__#_____#_______________________________________#_
___#______#______________________________________#
__#___#______#____________________________________
____#___#______#__________________________________
_______#___#____#_________________________________
________#____#____#_______________________________
__________#____#___#______________________________
____________#___#___#_____________________________
_____________#___#___#____________________________
________________#_#_____#_________________________
_________________#_#_______#______________________
____________________##_______#____________________
_______________________#_______#__________________
________________________#_#______#________________
_________________________#__#_____#_______________
__________________________#__#______#_____________
___________________________#__#________#__________
_____________________________#__#_________#_______
________________________________#__#________#_____
_________________________________#____#_______#___
____________________________________#____#_______#
_#_____________________________________#____#_____
__#_______________________________________#____#__
_____#______________________________________#___#_
______#______________________________________#___#
__#_____#_____________________________________#___
____#____#_____________________________________#__
______#____#____________________________________#_
#________#__#_____________________________________
__#________#_#____________________________________
____#_______#_#___________________________________
_____#________#__#________________________________
______#__________##_______________________________
_______#__________##______________________________
__________#_________##____________________________
____________#________##___________________________
______________#_________##________________________
_________________#________##______________________
__________________#__________##___________________
___________________#____________##________________
____________________#_____________#_#_____________
______________________#_____________#_#___________
_______________________#______________##__________
__________________________#____________#__#_______
___________________________#____________#__#______
____________________________#_____________#___#___
_______________________________#_____________#___#
_#______________________________#______________#__
#___#______________________________#______________
_#____#_____________________________#_____________
__#____#_____________________________#____________
____#____#____________________________#___________
______#_____#__________________________#__________
________#_____#__________________________#________
_________#_____#____________________________#_____
____________#____#_____________________________#__
_____________#____#_____________________________#_
_#______________#___#_____________________________
____#______________#___#__________________________
______#______________#___#________________________
_________#______________#__#______________________
___________#______________#_#_____________________
______________#______________##___________________
_______________#________________#_________________
________________#________________##_______________
___________________#_______________#_#____________
____________________#_________________#___________
______________________#_________________##________
_________________________#________________#_______
__________________________#_________________##____
_____________________________#_______________##___
______________________________#_______________#_#_
_______________________________#_________________#
#_#_______________________________#_______________
_#_#________________________________#_____________