Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/11/2014, 23:21
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Patrones en Python

No estoy orgulloso de esto, porque abuse del lenguaje (mas especifico del scope) en ciertas partes.

Código Python:
Ver original
  1. def make_square(n, direction):
  2.     square = [['.' for _ in xrange(n)] for _ in xrange(n)]
  3.     if direction:
  4.         for i in xrange(n):
  5.             square[i][i] = '\\'
  6.     else:
  7.         for i in xrange(n):
  8.             square[i][n-1-i] = '/'
  9.     return [''.join(line) for line in square]
  10.  
  11. def make_grid(m, n, s):
  12.     squares = [make_square(s, True), make_square(s, False)]
  13.     grid = [[squares[(i+j)&1] for i in range(n)] for j in range(m)]
  14.     return grid
  15.  
  16.  
  17. N = int(raw_input())
  18. for i in range(N):
  19.     m, n, s = map(int, raw_input().split())
  20.     grid = []
  21.     for row in make_grid(m, n, s):
  22.         for x in zip(*row):
  23.             line = '*%s*' % '*'.join(x)
  24.             grid.append(line)
  25.         grid.append('*'*len(line))
  26.     grid.insert(0, '*'*len(line))
  27.  
  28.     for line in grid:
  29.         print line
  30.     if i != (N-1):
  31.         print

Puedes ver como hago los cuadros en la función make_square. En make_grid se empieza a complicar un poco pero sigue entedible. Despues de grid = [] es donde puedes tener un gran y largo WTF.

Mi código fue aceptado :D

Última edición por razpeitia; 19/11/2014 a las 23:26