Jump to content
  • Advertisement
Sign in to follow this  
llamaSong

Quick Python Question

This topic is 4361 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Can't believe Im asking this but: Some code: terrain = [ [ 1, 1, 1, 1, 1, 1 ],/ [ 1, 0, 0, 0, 0, 1 ],/ [ 1, 0, 0, 0, 0, 1 ],/ [ 1, 0, 0, 0, 0, 1 ],/ [ 1, 0, 0, 0, 0, 1 ],/ [ 1, 0, 0, 0, 0, 1 ],/ [ 1, 1, 1, 1, 1, 1 ],] print terrain When it prints it prints like this [[1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 1], [1, 1, 1, 1, 1, 1]] I could have sworn \ would make the it start prining on the next line. I want it to print out like this: [ 1, 1, 1, 1, 1, 1 ] [ 1, 0, 0, 0, 0, 1 ] [ 1, 0, 0, 0, 0, 1 ] [ 1, 0, 0, 0, 0, 1 ] [ 1, 0, 0, 0, 0, 1 ] [ 1, 0, 0, 0, 0, 1 ] [ 1, 1, 1, 1, 1, 1 ] :( Edit: It screwed up.

Share this post


Link to post
Share on other sites
Advertisement
New question.
It could be possible I am going about this wrong.
Heres what I have:
City = [[ 1, 1, 1, 1, 1, 1, 1], [ 1, 2, 0, 2, 0, 0, 1], [ 1, 0, 0, 0, 0, 0, 1], [ 1, 0, 0, 9, 0, 0, 1], [ 1, 0, 0, 0, 0, 0, 1], [ 1, 1, 1, 1, 1, 1, 1]]
llen = len(City)
i = 0
while i < llen:
print City
i = i + 1


What I need to know how to do is to be able to reference a specific spot on that. Preferbly in X,Y Form.

I want to be able to do this:

Pos = X,Y
Move = input("move")
if Move == W:
City(Pos) = 0
Pos = X,Y+1
City(Pos) = 9

elif Move == S:
City(Pos) = 0
Pos = X,Y-1

elif Move == A:
City(Pos) = 0
Pos = X-1,Y

elif Move == D:
City(Pos) = 0
Pos = X+1,Y

pos = City[X,Y]

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
In X,Y Form: (Y_Position * Width_Of_Map) + X_Position

So, to access position (3,6) of your map, which is, say, 15 x 15 grid, you would use: (6 * 15) + 3. If you want to move west of that position, you would simply do (6 * 15) + 4. And you would obviously want to check that that is a valid position before trying to access it.

Share this post


Link to post
Share on other sites
City is a list. It just so happens to only contain lists. To access a specific element in a list contained by City, you must first subscript City to obtain the list in question, then subscript that list to obtain the element:
City = [[ ... ], [ ... ], ... ]
# access coordinate pair (i, j)
element = City[j]

Share this post


Link to post
Share on other sites
Thx for the help, I got that working. I have a new question, do I have to list all my global variables that I want to use in a function?
For example:


global Str
global MHp
global Hp
global Agil
global MMn
global Mn
global Mp
global G
global Lvl
global Xp
global Skp
global Fst
global Equiped
global Buffs
global BuffsEn
global Rome
global Loc
global PosX
global PosY

def warriorstart( ):
global Str
global MHp
global Hp
global Agil
global MMn
global Mn
global Mp
global G
global Lvl
global Xp
global Skp
global Fst
global Equiped
global Buffs
global BuffsEn
print "You have chosen the warrior!"
Str = 18
Hp = 150
Mhp = 150
Agil = 10
MMn = 10
Mn = 10
Mp = 0
G = 10
Lvl = 1
Xp = 0
Skp = 1
Fst = 5
Equiped = [ 'W', 'A', 'S', 'T']
stats( )

def stats( ):
global Str
global MHp
global Hp
global Agil
global MMn
global Mn
global Mp
global G
global Lvl
global Xp
global Skp
global Fst
global Equiped
global Buffs
global BuffsEn
print "Level,", Lvl
print "Xp,", Xp
print "Skill Points,", Skp
print "Free Stat Points,", Fst
print "Strength,", Str
print "Agility,", Agil
print "Magic Power,", Mp
print "Health Points,", Hp
print "Mana,", Mn
print "Gold,", G
print "Equiped:", Equiped
print "Assign Stats: 1"
print "Not now: 0"
NowStats = input("Assign Stats Now?")
if NowStats == 1:
while NowStats == 1:
print "Strength: 1"
print "Agility: 2"
print "Magic Power: 3"
print "Mana: 4"
print "Health Points: 5"
print "None: 0"
WhichStat = input("Which Stat")
if WhichStat != 0:
HowMuch = input("How Much")
if HowMuch <= Fst:
Fst = Fst - HowMuch
if WhichStat == 1:
Str = Str + HowMuch
if WhichStat == 2:
Agil = Agil + HowMuch
if WhichStat == 3:
Mp = Mp + HowMuch
if WhichStat == 4:
MMn = MMn + HowMuch
Mn = Mn + HowMuch
if WhichStat == 5:
Hp = Hp + HowMuch
MHp = MHp + HowMuch
if WhichStat == 0:
NowStats = 0



It is annoying to keep having to say global X global Y in each of my functions, when I want to use variables X and Y in that function. Is there anyway I can get around having to list every variable each time?

I would much rather have my code look like this:

global Str
global MHp
global Hp
global Agil
global MMn
global Mn
global Mp
global G
global Lvl
global Xp
global Skp
global Fst
global Equiped
global Buffs
global BuffsEn
global Rome
global Loc
global PosX
global PosY

def warriorstart( ):
print "You have chosen the warrior!"
Str = 18
Hp = 150
Mhp = 150
Agil = 10
MMn = 10
Mn = 10
Mp = 0
G = 10
Lvl = 1
Xp = 0
Skp = 1
Fst = 5
Equiped = [ 'W', 'A', 'S', 'T']
stats( )

def stats( ):
print "Level,", Lvl
print "Xp,", Xp
print "Skill Points,", Skp
print "Free Stat Points,", Fst
print "Strength,", Str
print "Agility,", Agil
print "Magic Power,", Mp
print "Health Points,", Hp
print "Mana,", Mn
print "Gold,", G
print "Equiped:", Equiped
print "Assign Stats: 1"
print "Not now: 0"
NowStats = input("Assign Stats Now?")
if NowStats == 1:
while NowStats == 1:
print "Strength: 1"
print "Agility: 2"
print "Magic Power: 3"
print "Mana: 4"
print "Health Points: 5"
print "None: 0"
WhichStat = input("Which Stat")
if WhichStat != 0:
HowMuch = input("How Much")
if HowMuch <= Fst:
Fst = Fst - HowMuch
if WhichStat == 1:
Str = Str + HowMuch
if WhichStat == 2:
Agil = Agil + HowMuch
if WhichStat == 3:
Mp = Mp + HowMuch
if WhichStat == 4:
MMn = MMn + HowMuch
Mn = Mn + HowMuch
if WhichStat == 5:
Hp = Hp + HowMuch
MHp = MHp + HowMuch
if WhichStat == 0:
NowStats = 0

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!