使用Python 3.2的迷你游戏不起作用

时间:2015-01-03 13:24:40

标签: python python-3.2

from random import randrange
def init_config(m, n):
    print("""Crée une configuration pour la configuration initiale""")
    config = [[0 for a in range(n)] for b in range(m)]
    for k in range(m*n): a, b = k//n, k%n
    config[a][b]=k+1
    return config
def disp(config, m, n):
    print("""Affiche un damier d'une configuration existante avec le format voulu""")
    s=t=" +%s\n" % ("---+"*n)
    for k in range(n):"%s %s" % (" "if k==0 else "",chr(65+k if k<26 else 71+k)),
    for k in range(m*n): i, j=k/n, k%n
    s +="%s%s|%03d%s"%(k/n+1 if k%n==0 else ""," "if k%n==0 and k/n<9 else "",config[a][b],"|\n" + t if b == n-1 else "")
    return s
def set_treasure (config):
    import random
    a=random.randrange(0,lin)
    b=random.randrange(0,col)
    treasure=config[a][b]=0
def main():
    print("Entrer les dimensions du damier")
lin=int(input('nombre de lignes : '))
if type (lin)!=int :
    print(""" ***ERREUR !***\n le nombre de lignes doit etre un nombre entier""")
    lin=int(input('number of lines : '))
elif lin>26:
    print(""" ***ERREUR !***\n le nombre de lignes ne doit pas excéder 26 !""")
    lin=int(input('nombre de ligne : '))
col=int(input('nombre de colonne: '))
if type (col)!=int :
    print(""" ***ERREUR !***\n le nombre de colonnes doit etre un nombre entier""")
    col=int(input('nombre de colonne: '))
elif col>38:
    print(""" ***ERREUR !***\n le nombre de colonnes ne doit pas excéder 38 !""")
    col=int(input('nombre de colonne: '))
n_treasure=int(input('Combien de trésor voulez vous mettre dans le jeux: '))
if type (n_treasure)!=int :
    print(""" ***ERREUR !***\n le nombre de trésor doit etre un nombre entier""")
    n_treasure=int(input('nombre de trésor que vous avez demander dans le jeux: '))
config=init_config(lin,col)
for k in range (n_treasure):
    if set_treasure (config):
        board=disp(config, lin, col)
        print(board)
for a in range (lin):
        for b in range (col):
            if config[a][b]==0:
                print("Il y a un trésor dans", chr(65+b),a+1) 

大家好,我刚刚用python 3.2完成了这个迷你游戏,但问题是该程序不起作用我没有发现问题,我有TypeError: Win32RawInput() takes at most 2 positional arguments (4 given)

2 个答案:

答案 0 :(得分:1)

由于您还没有提供任何有关该计划实际应该做什么的解释,而且我不会说法语,所以我认为这就是问题:在最后一行

input("Il y a un trésor dans", chr(65+b),a+1) 

您尝试显示几种不同的类型作为输入问题。但从上下文来看,我认为你真正想做的就是打印这些类型。只需输入以下命令即可:

print("Il y a un trésor dans", chr(65+b),a+1) 

对于倒数第五行也许同样如此。它应该是

print(board)

答案 1 :(得分:0)

if config[a][b]==0:
   input("Il y a un trésor dans", chr(65+b),a+1)

所以在这里你将四个参数传递给内置函数input,它最多只需要一个参数。

input(...)
    input([prompt]) -> string

    Read a string from standard input.  The trailing newline is stripped.
    If the user hits EOF (Unix: Ctl-D, Windows: Ctl-Z+Return), raise EOFError.
    On Unix, GNU readline is used if enabled.  The prompt string, if given,
    is printed without a trailing newline before reading.