Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Help about a function
#3
(Jan-15-2019, 07:20 PM)ichabod801 Wrote: Here's how a function could be useful:

get_position(floormap):
    while True:
        row = random.randint(0, mapheight - 1)
        column = random.randint(0, mapwidth - 1)
        if floormap[row][column]=="dirt":
            return [row, column]

monsterpos = get_position()
monsterpos1 = get_position()
...
That is a step forward, but not what I would recommend. I would have a list of monsters. Each monster would be a dictionary. Say you have a list of names, you could do it like this:

monster_names = ['demi-gorgon', 'bunny rabbit', 'medusa']
monsters = []
for name in monster_names:
    monsters.append({'name': name, 'position': get_position()})
One thing to note is that it is currently possible to have two monsters in the same position. If that is not what you want, the get_position function is not the best idea. Better would be to loop through all the positions, and make a list of the ones that are dirt. Then use random.shuffle to mix up the list of positions, and do:

monsters = []
for name, position in zip(monster_names, dirt_positions):
    monsters.append({'name': name, 'position': position})

Thank you so much for your reply and your time. I have learnt so many things from this coding logic :)
Reply


Messages In This Thread
Help about a function - by walernor - Jan-15-2019, 05:34 PM
RE: Help about a function - by ichabod801 - Jan-15-2019, 07:20 PM
RE: Help about a function - by walernor - Jan-15-2019, 07:50 PM

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020