I am trying to write the program battleship. I have two gameboard matrices: one for player, one for computer. These are defined outside of main because I want them to be global variables because several functions manipulate/read them. I am using Python 2.6.1.
#create player game board (10x10 matrix filled with zeros)
playerBoard = [[0]*10 for i in range(10)]
#create computer game board (10x10 matrix filled with zeros)
computerBoard = [[0]*10 for i in range(10)]
Then I define the main function.
#define main function
def main():
    global playerBoard
    global computerBoard
    #keepGoing is true
    keepGoing = True
    #while keepGoing is true
    while keepGoing:
        #call main menu function. Set to response.
        response = mainMenu()
        #if response is 1
        if response == "1":
            #begin new game
            #call clearBoards function
            clearBoards()
            #call resetCounters function
            resetCounters()
            #call placeShips function (player)
            playerBoard = placeShips(playerBoard, "player")
            #call placeShips function (computer)
            computerBoard = placeShips(computerBoard, "computer")
            #call guessCycler function
            guessCycler()
        #if response is 2
        if response == "2":
            #keepGoing is false
            keepGoing = False
Despite my declaration of global playerboard and global computerBoard within main PyScripter still says those are local variables. I don't understand this. How can I make sure they are global?
Documents I have already looked at:
Using global variables in a function other than the one that created them
Changing global variables within a function
http://www.python-course.eu/global_vs_local_variables.php
 
     
    