python小填字游戏为初学者

时间:2013-11-06 19:28:38

标签: python python-2.7

my_str="ellezagchickenbndodetballigatoraaaolmeznacattleeblrctacfenarcesssadlritfhftrarrssos aoiarefaareppohssarghcerumrheirmmwildfcumeboimltaairfovindalbiglalobehoeasiaxuesabldinbbccrhhrtylrlahsifdlogkrctlaiareogoldfinchefnnddmneepoletnarntadodinosauroxofoeclictnahpelepalgaierhohcaorkcocyatrmoacrflamingoerefafloechateehchdracaribou"
def create_2d_list(N):
    output_list=[]
    counter=0
    for row in range(0,N):
        temp=[]
        for col in range(0,N):
            temp.append(my_str[counter])#you can add a charcter instead of counter
            counter=counter+1
        output_list.append(temp[:])
    return output_list

N=18

x=create_2d_list(N)

for row in range(0,N):
    total=0
    s="|"
    for col in range(0,N):
        my_str="{0:2} ".format(x[row][col])
        s=s+my_str+"|"
    print "-"*(N*4+1)
    print s,
    print " "

the_valid_words=open("E:/asd/words.txt","r").readlines()


def looking_word_left_to_right(the_list):
    for any_words in the_valid_words:
        for every in x[0]:
            the_first_index=x[0].index(every)
            for every in range(the_first_index,(the_first_index)+7):
                c=str(every)
                the_join=" ".join(c)
                if the_join==the_valid_words:
                    word.upper().replace(every,x[0].upper(every))
                return x[0]

print looking_word_left_to_right(x)

每次运行程序时,looking_word_left_to_right都不会打印任何内容

P.S它类似于初学者的小填字游戏,将制作单词的字母大写并删除所有其他字母而不改变位置,如果有人可以给出如何继续的想法,这将是伟大的。我有一些有效的词要找。

我是新手,所以对我很轻松:) 感谢帮助。

1 个答案:

答案 0 :(得分:0)

似乎存在许多问题。

  • 当您x传递时,为什么要对the_list"进行操作?只需使用the_list
  • 你只是看x的第一行,而且从未超越过那个。
  • 看起来你在比较之前在每个角色之间放了一个空格。如果c =“abcdefg”,则" ".join(c)将为您提供"a b c d e f g"。如果您的the_valid_words中没有空格,则if the_join==the_valid_words将始终评估为false。
  • 您要与the_valid_words,进行比较,这是您的整个列表。您可能应该使用any_word来比较 EACH 有效单词...您没有在其他地方使用它。
  • 你可能也遇到了迭代x的问题,而你正在改变它(它有时会使迭代器无效......但有时却没有)。即如果你在迭代之前迭代x然后改变x,那么Python可能不知道迭代器在新版x中的位置。由于the_listx相同,因此最好for every in the_list:然后将x更改为您内心的内容。

看起来你可能不太清楚Python中的循环是如何工作的。看看那些,这可能会有所帮助。