Python游戏的世界一代奇数输出

2024-04-24 04:46:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在做一个轮盘游戏,我遇到了一个问题,当拯救随机生成的世界。你知道吗

以下代码:

import random import pickle

size = 6 
a = [["WHAT"]*size for x in xrange(size)] 

def make():
    for x in range(0, size):
        for z in range(0, size):
            a[x][z] =  random.choice(["T","G", "S", "M"]) 

def save():
    try:
        pickle.dump( a, open( "save.p", "wb" ) )
    except:
        print "Error" 

def load():
    a = pickle.load( open( "save.p", "rb" ) ) 

def printworld():
    for x in range(0, size):
        print""
        for z in range(0, size):
            print a[x][z],
            print "", 

make() 
printworld() 
save() 
print""

make() 
printworld() 
print"" 
load() 
printworld()

输出以下内容:

G  G  T  M  M  S   
T  G  G  G  T  G   
T  M  S  G  M  M   
G  S  M  S  M  S   
M  S  T  M  G  T   
M  G  G  T  G  S  

G  G  S  T  T  S   
S  M  G  G  S  G   
T  M  S  G  T  M   
S  M  S  T  G  G   
M  T  S  G  M  S   
G  G  S  G  M  S  

G  G  S  T  T  S   
S  M  G  G  S  G   
T  M  S  G  T  M   
S  M  S  T  G  G   
M  T  S  G  M  S   
G  G  S  G  M  S

当它应该有输出时:

G  G  T  M  M  S   
T  G  G  G  T  G   
T  M  S  G  M  M   
G  S  M  S  M  S   
M  S  T  M  G  T   
M  G  G  T  G  S  

G  G  S  T  T  S  
S  M  G  G  S  G   
T  M  S  G  T  M   
S  M  S  T  G  G   
M  T  S  G  M  S   
G  G  S  G  M  S  

G  G  T  M  M  S   
T  G  G  G  T  G   
T  M  S  G  M  M   
G  S  M  S  M  S   
M  S  T  M  G  T   
M  G  G  T  G  S

Tags: inimportforsizemakesavedefload
1条回答
网友
1楼 · 发布于 2024-04-24 04:46:31
def load():
    a = pickle.load( open( "save.p", "rb" ) ) 

在这里,您正在写入一个局部变量a,然后它将被丢弃。您需要添加global a,以便将新值赋给全局变量。你知道吗


在下一个问题中,请用文字写下代码应该做什么以及实际发生了什么。你可能会在这里写道:

This code is supposed to generate a list and save it to a file, generate a new one, and then load the original list. But after loading, when I print its value I still see the value of the second list instead of the original one.

相关问题 更多 >