Olá, começei a aprender python tem menos de 3 meses... no entanto com as aulas da faculdade tentei elaborar um jogo_da_velha com os conhecimentos de function,condicionais e estruturas de repeticao...  Pois bem terminei o programa para player x player , tentei criar a maquina... Criei a maquina num nivel rasuavel ... com condicoes para vencer e se defender, sei que posso criar uma maquina invencivel (gostaria de saber se isso influenciaria no meu conhecimento de programacao, invés de simples conhecimentos de jogodavelha...), fui mostrar a uma pessoa já experiente no ramo e ela disse q meu programa estava "sujo" , porque só havia 3 funcoes para um programa de 300 linhas ...  Já tentei mudá-lo mas sem muito sucesso... Queria algumas dicas ... Tentei fazer comentarios para ficar bem claro o programa    O programa está nesse link : http://www.megaupload.com/?d=2FDUENHW  Quando colei aqui ele perdeu a indentacao... ai complica...  #Programa Jogo_da_velha # -*- coding: cp1252 -*- a = ' ' b = ' ' c = ' ' d = ' ' e = ' ' f = ' ' g = ' ' h = ' ' i = ' ' velha = 1 #Acima são definidos 9 variaveis que equivalem as 9 posições dentro da função #que imprime o jogo da velha na tela - jogo_velha - conforme os valores das #variaveis recebem X ou O, o espaço vazio é substituido, preenchendo assim o #jogo da velha.  import random def jogo_velha(a,b,c,d,e,f,g,h,i):     print(" %s | %s | %s " %(a,b,c)),("    1 | 2 | 3 ")     print("___|___|___"), ("   ___|___|___")     print(" %s | %s | %s  ") %(d,e,f), ("   4 | 5 | 6 ")     print("___|___|___"), ("   ___|___|___")     print(" %s | %s | %s  ") %(g,h,i), ("   7 | 8 | 9 ")     print("   |   |   "), ("      |   |   ") #Acima a funcao que imprime o jogo da velha que será impressa a cada rodada      def multiplayer(a,b,c,d,e,f,g,h,i,velha):     nome1 = raw_input("Jogador 1 digite seu nome ")     nome2 = raw_input("Jogador 2 digite seu nome ")     print     print     benzocriol = random.randrange(1,3)     #Essa variavel receberá 1 ou 2, definindo o primeiro que irá jogar     fim_loop = benzocriol + 9   #Como serão 9 rodadas o loop que será criado terá um fim apenas após 9 jogadas     if benzocriol == 1 :         print("%s" %(nome1), " você é o primeiro!!")     else:         print("%s" %(nome2), " você é o primeiro!!")   #If nomeando o primeiro     print("Esta é sua lista de escolhas")     print(" 1 | 2 | 3 ")     print("___|___|___")     print(" 4 | 5 | 6 ")     print("___|___|___")     print(" 7 | 8 | 9 ")     print("   |   |   ")     #Interface do jogo para começarem as escolhas     while benzocriol < fim_loop :  #Loop para cada jogada,como benzocriol tem valor 1 ou 2, a jogada do player 1 é feita com resto <> 0, e do player 2 com resto 0, numa divisão de benzocriol por 2.         if benzocriol%2 <> 0:             print('%s' %(nome1), 'escreva sua escolha' )             escolha = input()             if escolha == 1 and a == ' ' :   #Se escolha for posicao e ela estiver vazia,faça:                 a = 'O'   #Preencha a variavel antes ' ', pelo simbolo do jogador                 jogo_velha(a,b,c,d,e,f,g,h,i) #Imprima a função que desenha o jogo da velha             elif escolha == 2 and b == ' ' :                 b = 'O'                 jogo_velha(a,b,c,d,e,f,g,h,i)             elif escolha == 3 and c == ' ' :                 c = 'O'                 jogo_velha(a,b,c,d,e,f,g,h,i)             elif escolha == 4 and d == ' ' :                 d = 'O'                 jogo_velha(a,b,c,d,e,f,g,h,i)             elif escolha == 5 and e == ' ' :                 e = 'O'                 jogo_velha(a,b,c,d,e,f,g,h,i)             elif escolha == 6 and f == ' ' :                 f = 'O'                 jogo_velha(a,b,c,d,e,f,g,h,i)             elif escolha == 7 and g == ' ' :                 g = 'O'                 jogo_velha(a,b,c,d,e,f,g,h,i)             elif escolha == 8 and h == ' ' :                 h = 'O'                 jogo_velha(a,b,c,d,e,f,g,h,i)             elif escolha == 9 and i == ' ' :                 i = 'O'                 jogo_velha(a,b,c,d,e,f,g,h,i)             else:   #Se não for digitada uma escolha valida de posicao,msg de erro e benzocriol-1 para que a jogada não conte no looping                 print("Escolha incorreta ou escolha já feita !! Escolha novamente !")                 benzocriol = benzocriol - 1         elif benzocriol%2 == 0: #Mesma coisa para o jogador 2               print('%s' %(nome2), 'escreva sua escolha' )               escolha = input()               if escolha == 1 and a == ' ' :                   a = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               elif escolha == 2 and b == ' ' :                   b = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               elif escolha == 3 and c == ' ' :                   c = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               elif escolha == 4 and d == ' ' :                   d = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               elif escolha == 5 and e == ' ' :                   e = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               elif escolha == 6 and f == ' ' :                   f = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               elif escolha == 7 and g == ' ' :                   g = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               elif escolha == 8 and h == ' ' :                   h = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               elif escolha == 9 and i == ' ' :                   i = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               else:                   print("Escolha incorreta ou escolha já feita !! Escolha novamente !")                   benzocriol = benzocriol - 1         if ((a==b)and(a==c) and (a == 'O')) or ((d==e)and(d==f)and (d == 'O')) or ((g==h)and(g==i)and (g == 'O')) or ((a==d)and(a==g)and (a == 'O')) or ((b==e)and(b==h)and (b == 'O')) or ((c==f)and(c==i)and (c == 'O')) or ((a==e)and(a==i)and (a == 'O')) or ((c==e)and(c==g)and (c == 'O')) :             print("%s é o vencedor") %(nome1)             velha = 0             break         elif ((a==b)and(a==c) and (a == 'X')) or ((d==e)and(d==f)and (d == 'X')) or ((g==h)and(g==i)and (g == 'X')) or ((a==d)and(a==g)and (a == 'X')) or ((b==e)and(b==h)and (b == 'X')) or ((c==f)and(c==i)and (c == 'X')) or ((a==e)and(a==i)and (a == 'X')) or ((c==e)and(c==g)and (c == 'X')) :             print("%s é o vencedor") %(nome2)             velha = 0             break   #Condiçoes de vitoria com 1 break para parar o jogo caso alguém vença, e velha=0 para não ser impreso 'velha' no fim         benzocriol = benzocriol + 1     if velha <> 0:         print("Velha")  def singleplayer(a,b,c,d,e,f,g,h,i,velha): #Nessa aqui a maquina joga     nome1 = raw_input("Digite seu nome ")     print     print     benzocriol = random.randrange(1,3)     fim_loop = benzocriol + 9     if benzocriol == 1 :         print("%s" %(nome1), " você é o primeiro!!")     else:         print("A maquina comecou jogando...")     print("Esta é sua lista de escolhas")     print(" 1 | 2 | 3 ")     print("___|___|___")     print(" 4 | 5 | 6 ")     print("___|___|___")     print(" 7 | 8 | 9 ")     print("   |   |   ")     while benzocriol < fim_loop :         if benzocriol%2 <> 0:             print('%s' %(nome1), 'escreva sua escolha' )             escolha = input()             if escolha == 1 and a == ' ' :                 a = 'O'                 jogo_velha(a,b,c,d,e,f,g,h,i)             elif escolha == 2 and b == ' ' :                 b = 'O'                 jogo_velha(a,b,c,d,e,f,g,h,i)             elif escolha == 3 and c == ' ' :                 c = 'O'                 jogo_velha(a,b,c,d,e,f,g,h,i)             elif escolha == 4 and d == ' ' :                 d = 'O'                 jogo_velha(a,b,c,d,e,f,g,h,i)             elif escolha == 5 and e == ' ' :                 e = 'O'                 jogo_velha(a,b,c,d,e,f,g,h,i)             elif escolha == 6 and f == ' ' :                 f = 'O'                 jogo_velha(a,b,c,d,e,f,g,h,i)             elif escolha == 7 and g == ' ' :                 g = 'O'                 jogo_velha(a,b,c,d,e,f,g,h,i)             elif escolha == 8 and h == ' ' :                 h = 'O'                 jogo_velha(a,b,c,d,e,f,g,h,i)             elif escolha == 9 and i == ' ' :                 i = 'O'                 jogo_velha(a,b,c,d,e,f,g,h,i)             else:                 print("Escolha incorreta ou escolha já feita !! Escolha novamente !")                 benzocriol = benzocriol - 1         elif benzocriol%2 == 0:               print("Maquina jogou !!")               if ((b==c) and (a == ' ') and (b == 'X')) or ((e==i)and (a == ' ') and (e == 'X')) or ((d==g)and (a == ' ') and (d == 'X')) :                   a = 'X' #Essas são condiçoes de vitoria(Se posicoes == X), a maquina(X) tem q ganhar o jogo se tiver condições de fechar                    jogo_velha(a,b,c,d,e,f,g,h,i)               elif ((a==c) and (b == ' ') and (a == 'X')) or ((e==h)and (b == ' ') and (e == 'X')) :                   b = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               elif ((a==B) and (c == ' ') and (a == 'X')) or ((g==e) and (c == ' ') and (g == 'X')) or ((f==i) and (c == ' ') and (f == 'X')) :                   c = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               elif ((e==f) and (d == ' ') and (e == 'X')) or ((a==g) and (d == ' ') and (a == 'X')) :                   d = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               elif ((a==i) and (e == ' ') and (a == 'X')) or ((b==h) and (e == ' ') and (b == 'X')) or ((c==g) and (e == ' ') and (c == 'X')) or ((d==f) and (e == ' ') and (d == 'X')) :                   e = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               elif ((d==e) and (f == ' ') and (d == 'X')) or ((c==i) and (f == ' ') and (c == 'X')) :                   f = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               elif ((a==d) and (g == ' ') and (a == 'X')) or ((e==c) and (g == ' ') and (e == 'X')) or ((h==i) and (g == ' ') and (h == 'X')) :                   g = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               elif ((g==i) and (h == ' ') and (g == 'X')) or ((b==e) and (h == ' ') and (b == 'X')) :                   h = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               elif ((g==h) and (i == ' ') and (g == 'X')) or ((a==e) and (i == ' ') and (a == 'X')) or ((c==f) and (i == ' ') and (c == 'X')) :                   i = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               elif ((b==c) and (a == ' ') and (b == 'O')) or ((e==i)and (a == ' ') and (e == 'O')) or ((d==g)and (a == ' ') and (d == 'O')) :                   a = 'X' #Aqui - após as condições de vencer (Se posicoes =='O') - estão as condições de defesa, a maquina tem q se defender se ouver possibilidade de vitoria do player                   jogo_velha(a,b,c,d,e,f,g,h,i)               elif ((a==c) and (b == ' ') and (a == 'O')) or ((e==h)and (b == ' ') and (e == 'O')) :                   b = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               elif ((a==B) and (c == ' ') and (a == 'O')) or ((g==e) and (c == ' ') and (g == 'O')) or ((f==i) and (c == ' ') and (f == 'O')) :                   c = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               elif ((e==f) and (d == ' ') and (e == 'O')) or ((a==g) and (d == ' ') and (a == 'O')) :                   d = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               elif ((a==i) and (e == ' ') and (a == 'O')) or ((b==h) and (e == ' ') and (b == 'O')) or ((c==g) and (e == ' ') and (c == 'O')) or ((d==f) and (e == ' ') and (d == 'O')) :                   e = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               elif ((d==e) and (f == ' ') and (d == 'O')) or ((c==i) and (f == ' ') and (c == 'O')) :                   f = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               elif ((a==d) and (g == ' ') and (a == 'O')) or ((e==c) and (g == ' ') and (e == 'O')) or ((h==i) and (g == ' ') and (h == 'O')) :                   g = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               elif ((g==i) and (h == ' ') and (g == 'O')) or ((b==e) and (h == ' ') and (b == 'O')) :                   h = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               elif ((g==h) and (i == ' ') and (g == 'O')) or ((a==e) and (i == ' ') and (a == 'O')) or ((c==f) and (i == ' ') and (c == 'O')) :                   i = 'X'                   jogo_velha(a,b,c,d,e,f,g,h,i)               else:                   while True : #Se não houver situacoes de vitoria ou defesa,a maquina sorteia uma posicao, confere se ela esta vazia e imprime                       escolha = random.randrange(1,10)                       if escolha == 1 and a == ' ' :                           a = 'X'                           jogo_velha(a,b,c,d,e,f,g,h,i)                           break #O loop é eterno, até que o sorteio seja valido                       if escolha == 2 and b == ' ' :                           b = 'X'                           jogo_velha(a,b,c,d,e,f,g,h,i)                           break                       if escolha == 3 and c == ' ' :                           c = 'X'                           jogo_velha(a,b,c,d,e,f,g,h,i)                           break                       if escolha == 4 and d == ' ' :                           d = 'X'                           jogo_velha(a,b,c,d,e,f,g,h,i)                           break                       if escolha == 5 and e == ' ' :                           e = 'X'                           jogo_velha(a,b,c,d,e,f,g,h,i)                           break                       if escolha == 6 and f == ' ' :                           f = 'X'                           jogo_velha(a,b,c,d,e,f,g,h,i)                           break                       if escolha == 7 and g == ' ' :                           g = 'X'                           jogo_velha(a,b,c,d,e,f,g,h,i)                           break                       if escolha == 8 and h == ' ' :                           h = 'X'                           jogo_velha(a,b,c,d,e,f,g,h,i)                           break                       if escolha == 9 and i == ' ' :                           i = 'X'                           jogo_velha(a,b,c,d,e,f,g,h,i)                           break         if ((a==b)and(a==c) and (a == 'O')) or ((d==e)and(d==f)and (d == 'O')) or ((g==h)and(g==i)and (g == 'O')) or ((a==d)and(a==g)and (a == 'O')) or ((b==e)and(b==h)and (b == 'O')) or ((c==f)and(c==i)and (c == 'O')) or ((a==e)and(a==i)and (a == 'O')) or ((c==e)and(c==g)and (c == 'O')) :             print("%s é o vencedor") %(nome1)             velha = 0             break         elif ((a==b)and(a==c) and (a == 'X')) or ((d==e)and(d==f)and (d == 'X')) or ((g==h)and(g==i)and (g == 'X')) or ((a==d)and(a==g)and (a == 'X')) or ((b==e)and(b==h)and (b == 'X')) or ((c==f)and(c==i)and (c == 'X')) or ((a==e)and(a==i)and (a == 'X')) or ((c==e)and(c==g)and (c == 'X')) :             print("Maquina venceu!! Ai que burrico...Kkkk....")             velha = 0             break         benzocriol = benzocriol + 1     if velha <> 0:         print("Velha")  print("Modo de jogo :") print("1 - Single Player") print("2 - Multiplayer") modo_jogo = input() if modo_jogo == 1 :     singleplayer(a,b,c,d,e,f,g,h,i,velha) elif modo_jogo == 2 :     multiplayer(a,b,c,d,e,f,g,h,i,velha)     #Menu de escolhas com chamada das funções, acima       >> Grato desde já pela boa vontade de ler e pelas opiniões expostas