1. Список говнокодов пользователя hootie

    Всего: 1

  2. Python / Говнокод #19819

    −47

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    def making_field(size):
    	field = []
    	for i in range(size):
    		field.append([0] * size)
    	return field
    size = 1001
    quad = making_field(size)
    
    def print_quad(quad):
    	for i in range(0,len(quad)):
    		print '\n'
    		for y in range(0,len(quad[i])):
    			c = str(quad[i][y])
    			if len(c) == 1: c = '00' + c
    			elif len(c) == 2: c = '0' + c
    			print c,
    			
    def get_new_direction(direction):
    	if direction == 'right': return 'down'
    	elif direction == 'down': return 'left'
    	elif direction == 'left': return 'up'
    	elif direction == 'up': return 'right'
    
    def making_step_rules(size):
    	steps = [1]
    	for i in range(1,size*size):
    		steps.append(i)
    		steps.append(i)
    	return steps
    
    steps = making_step_rules(size)
    
    def making_step(steps):
    	steps.pop(0)
    	return steps[0]
    	
    def step_by_step(quad, y, x, direction, steps, fill):
    	if fill-1 == size*size-steps: steps -= 1
    	if direction == 'right':
    		for i in range(0,steps):
    			fill += 1
    			quad[y][x+i] = fill
    			x = x + steps - 1
    		y = y + 1
    	elif direction == 'left':
    		for i in range(0,steps):
    			fill += 1
    			quad[y][x-i] = fill
    		x = x - steps + 1
    		y = y - 1
    	elif direction == 'up':
    		for i in range(0,steps):
    			fill += 1
    			quad[y-i][x] = fill
    		y = y - steps + 1
    		x = x + 1
    	elif direction == 'down':
    		for i in range(0,steps):
    			fill += 1
    			quad[y+i][x] = fill
    		y = y + steps - 1
    		x = x - 1
    	return fill, y, x
    	
    def fill_quad(quad):
    	fill = 1
    	x, y = size/2, size/2
    	direction = 'up'
    	quad[y][x] = fill
    	x += 1
    	while fill < size*size-1:
    		step = making_step(steps)
    		direction = get_new_direction(direction)
    		fill, y, x = step_by_step(quad, y, x, direction,  step, fill)
    
    fill_quad(quad)
    
    print 'Sum :' , sum(quad[i][i]+quad[i][(len(quad)-1)-i] for i in range(0,len(quad)))-1

    Пытался изобрести велосипед по 28 задачке Euler
    https://projecteuler.net/problem=28

    hootie, 14 Апреля 2016

    Комментарии (60)