Gustavo Kaneblai - Exercicio 1 (Xadrez)

  1. Se registrar no Adessowiki e criar a sua página de diário do curso. DONE
  2. Estudar o Python (primer ou tutorial) http://docs.python.org/tutorial. DONE
  3. Estudar o NumPy. DONE
  4. Fazer um exercício que mostre os principais conceitos aprendidos:

  1 # Progamacao BASICA em Python
  2 
  3 print "Testando Conceitos Basicos"
  4 
  5 print "\nCriando Variaveis...\n"
  6 # para criar uma variavel basta iniciala com o valor desejado:
  7 
  8 uma_variavel_inteira = 22
  9 uma_variavel_string = "uma string qualquer"
 10 uma_variavel_real = 2.3
 11 
 12 print "\nMostrando As Variaveis Na Tela...\n"
 13 # para imprimir na tela podemos usar comando print
 14 
 15 print "uma_variavel_inteira = %d" %uma_variavel_inteira
 16 print "uma_variavel_string = " +uma_variavel_string
 17 print "uma_variavel_real = %f" %uma_variavel_real
 18 
 19 
 20 print "\nCriando um LOOP de strings...\n"
 21 # para criar um loop tipo for, veja o exemplo
 22 # (note que a endetacao define o escopo do for)
 23 
 24 for fruta in ["laranja", "pera", "banana"]:
 25     print "fruta = " + fruta
 26 
 27 print "\nCriando um LOOP de inteiros usando range()...\n"
 28 # para um loop de inteiros, o comando range() pode ser util
 29 # range serve para criar a sequencia de indicies no qual a
 30 # variavel definida ira percorrer ex.: range(3,6) indica a sequencia
 31 # [3, 4, 5]
 32 
 33 for i in range(0,5):
 34     print "i variando... = %d" %i
 35 
 36 
 37 print "\nCapturando O Relogio...\n"
 38 # Neste curso e' importante coletar os tempos de execucao
 39 # para isso temos a seguinte funcao
 40 
 41 print "tempo = %f" %time.time()
 42 
 43 
 44 print "\nCrinado uma matriz de zeros...\n"
 45 # O NumPy oferece funcoes para a geracao de matrizes
 46 # funcao zeros((linha,coluna)) gera matriz iniciada em zeros
 47 numero_de_linhas_da_matriz = 3
 48 numero_de_colunas_da_matriz = 2
 49 
 50 tempo_inicial = time.time()
 51 #
 52 matriz_com_valores_iniciado_em_zero = zeros((numero_de_linhas_da_matriz,numero_de_colunas_da_matriz))
 53 #
 54 tempo_de_execucao = time.time() - tempo_inicial
 55 
 56 print matriz_com_valores_iniciado_em_zero
 57 print "tempo de execucao = %f" %tempo_de_execucao
 58 
 59 print "\nCrinado uma matriz de uns...\n"
 60 # funcao ones((linha,coluna)) gera matriz iniciada em um
 61 
 62 tempo_inicial = time.time()
 63 #
 64 matriz_com_valores_iniciado_em_um = ones((numero_de_linhas_da_matriz,numero_de_colunas_da_matriz))
 65 #
 66 tempo_de_execucao = time.time() - tempo_inicial
 67 
 68 print matriz_com_valores_iniciado_em_um
 69 print "tempo de execucao = %f" %tempo_de_execucao
 70 
 71 
 72 print "\nCriando matrizes com o mgrid...\n"
 73 # O mgrid gera 2 matrizes, uma setando os elementos de acordo com o numero da linha
 74 # e outra setando os elementos de acordo com o numero da coluna
 75 
 76 tempo_inicial = time.time()
 77 #
 78 elementos_igual_numero_da_linha, elementos_igual_numero_da_coluna = mgrid[0:numero_de_linhas_da_matriz, 0:numero_de_colunas_da_matriz]
 79 #
 80 tempo_de_execucao = time.time() - tempo_inicial
 81 
 82 print elementos_igual_numero_da_linha
 83 print elementos_igual_numero_da_coluna
 84 print "tempo de execucao = %f" %tempo_de_execucao
 85 
 86 
 87 print "\nCriando matrizes com o iameshgrid...\n"
 88 # O iameshgrid gera matrizes igual ao mgrid mas inverte a ordem coluna x linha
 89 
 90 tempo_inicial = time.time()
 91 #
 92 elementos_igual_numero_da_linha, elementos_igual_numero_da_coluna = iameshgrid(range(0,numero_de_colunas_da_matriz), range(0,numero_de_linhas_da_matriz))
 93 #
 94 tempo_de_execucao = time.time() - tempo_inicial
 95 
 96 print elementos_igual_numero_da_linha
 97 print elementos_igual_numero_da_coluna
 98 print "tempo de execucao = %f" %tempo_de_execucao
 99 
100 
101 print "\nCriando uma imagem a partir de uma matriz...\n"
102 # O comando mmshow gera uma imagem a partir de uma matriz
103 
104 matriz_para_imagem = ones((32,48))
105 mmshow(uint16(matriz_para_imagem), title = 'Um Retangulo Preto')
Testando Conceitos Basicos

Criando Variaveis...


Mostrando As Variaveis Na Tela...

uma_variavel_inteira = 22
uma_variavel_string = uma string qualquer
uma_variavel_real = 2.300000

Criando um LOOP de strings...

fruta = laranja
fruta = pera
fruta = banana

Criando um LOOP de inteiros usando range()...

i variando... = 0
i variando... = 1
i variando... = 2
i variando... = 3
i variando... = 4

Capturando O Relogio...

tempo = 1236955806.455021

Crinado uma matriz de zeros...

[[ 0.  0.]
 [ 0.  0.]
 [ 0.  0.]]
tempo de execucao = 0.000020

Crinado uma matriz de uns...

[[ 1.  1.]
 [ 1.  1.]
 [ 1.  1.]]
tempo de execucao = 0.000030

Criando matrizes com o mgrid...

[[0 0]
 [1 1]
 [2 2]]
[[0 1]
 [0 1]
 [0 1]]
tempo de execucao = 0.000162

Criando matrizes com o iameshgrid...

[[0 1]
 [0 1]
 [0 1]]
[[0 0]
 [1 1]
 [2 2]]
tempo de execucao = 0.000123

Criando uma imagem a partir de uma matriz...

Um Retangulo Preto

  1. Estudar formas de gerar uma imagem xadrez e implementar algumas de sua preferência. DONE
 1 # Funcoes para criar matrix XADREZ
 2 
 3 def tabuleiro_de_xadrez_usando_for_com_and( linhas, colunas):
 4     matriz_do_tabuleiro = zeros((linhas, colunas))
 5     for linha in range(0, linhas):
 6         for coluna in range(0, colunas):
 7             if ((linha + coluna)& 1):
 8                 matriz_do_tabuleiro[linha, coluna] = 1
 9 
10     return matriz_do_tabuleiro
11 # tabuleiro_de_xadrez_usando_for_com_and
12 
13 
14 def tabuleiro_de_xadrez_usando_for_com_modulo( linhas, colunas):
15     matriz_do_tabuleiro = zeros((linhas, colunas))
16     for linha in range(0, linhas):
17         for coluna in range(0, colunas):
18             matriz_do_tabuleiro[linha, coluna] = (linha+coluna) % 2
19 
20     return matriz_do_tabuleiro
21 # tabuleiro_de_xadrez_usando_for_com_modulo
22 
23 
24 def tabuleiro_de_xadrez_usando_matriz( linhas, colunas):
25 
26     matriz1, matriz2 = mgrid[0:linhas, 0:colunas]
27 
28     # soma os elementos da matriz e modulo de 2
29     matriz_do_tabuleiro = (matriz1 + matriz2)%2
30 
31     return matriz_do_tabuleiro
32 # tabuleiro_de_xadrez_usando_matriz
33 
34 
35 # MAIN ------------------------------------------------------
36 
37 t_inicial = time.time()
38 tabuleiro = tabuleiro_de_xadrez_usando_for_com_and(100, 80)
39 t_total = time.time() - t_inicial
40 
41 titulo = "tabuleiro_de_xadrez_usando_for_com_and: %f"  %t_total
42 mmshow(uint16(tabuleiro), title = titulo)
43 
44 print ""
45 
46 t_inicial = time.time()
47 tabuleiro = tabuleiro_de_xadrez_usando_for_com_modulo(100, 80)
48 t_total = time.time() - t_inicial
49 
50 titulo = "tabuleiro_de_xadrez_usando_for_com_modulo: %f"  %t_total
51 mmshow(uint16(tabuleiro), title = titulo)
52 
53 print ""
54 
55 t_inicial = time.time()
56 tabuleiro = tabuleiro_de_xadrez_usando_matriz(100, 80)
57 t_total = time.time() - t_inicial
58 
59 titulo = "tabuleiro_de_xadrez_usando_matriz: %f"  %t_total
60 mmshow(uint16(tabuleiro), title = titulo)

tabuleiro_de_xadrez_usando_for_com_and: 0.002112

tabuleiro_de_xadrez_usando_for_com_modulo: 0.002731

tabuleiro_de_xadrez_usando_matriz: 0.000357


Autor:gkaneblai
Data:13/03/2009