Advertisement
boris-vlasenko

ege26

May 20th, 2016
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.17 KB | None | 0 0
  1. m = 2
  2. p = 3
  3. vi = 38
  4. res = [["?" for c in range((vi+1))] for r in range((vi+1))]
  5. start_r = 1
  6. start_c = 1
  7. end_r = vi-start_c+1
  8. end_c = vi-start_r+1
  9.  
  10. def getValue(r,c):
  11.     #print(r,c)
  12.     if (r+c) >= vi:
  13.         if r < len(res) and c < len(res[r]):
  14.             res[r][c] = "!"
  15.         return "!"
  16.     else:
  17.         if res[r][c] == '?':
  18.             one_move_cells = (getValue(r+p,c), getValue(r,c+p),getValue(r*m,c),getValue(r,c*m))
  19.             if '!' in one_move_cells:
  20.             # если можно выиграть одним ходом / выигрыш за один ход
  21.                 res[r][c] = '+1'
  22.                
  23.             elif '+1' in one_move_cells and one_move_cells.count('+1') == 4:
  24.             # если нельзя одним ходом и вокруг только +1 / проигрыш за один ход (строго за один)
  25.                 res[r][c] = '-1'
  26.                
  27.             elif '-1' in one_move_cells:
  28.             # если вокруг не только +1, а есть и -1 / выигрыш за два хода
  29.                 res[r][c] = '+2'
  30.             else:
  31.             # если нельзя выиграть за один ход
  32.             # если нельзя выиграть за два хода
  33.             # если получается не проиграть за один ход
  34.                 if "-" in (cell[0] for cell in one_move_cells):
  35.                 # если вокруг есть клетка с минусом / выигрыш за больше, чем два хода
  36.                     res[r][c] = '+'
  37.                 else:
  38.                     if  '+2' in one_move_cells:
  39.                     # если минусов нет, и есть +2
  40.                         res[r][c] = '-2'
  41.                     else:
  42.                     # минусов нет и нет +2
  43.                         res[r][c] = '-'
  44.  
  45.                    
  46.            
  47.            
  48.     return res[r][c]
  49.        
  50.  
  51. for r in reversed(range(start_r,len(res)-1)):
  52.     for c in reversed(range(start_c,len(res[r])-1)):
  53.         getValue(r,c)
  54.    
  55. f = open('res.html','w')   
  56. f.write('<table border="1">')
  57. f.write('<TH>')
  58.  
  59. for c in range(start_c,end_c):
  60.     f.write('<TD>')
  61.     f.write(str(c))
  62.     f.write('</TD>')
  63. f.write('\n')
  64. f.write('</TH>')
  65.  
  66. for r in range(start_r,end_r):
  67.     f.write('<TR>\n')
  68.     f.write('<TD>\n')
  69.     f.write(str(r))
  70.     f.write('</TD>')
  71.     for c in range(start_c,end_c):
  72.         f.write('<TD>')
  73.         f.write(res[r][c])
  74.         f.write('</TD>')
  75.     f.write('</TR>\n') 
  76. f.write('</table>')
  77.  
  78. f.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement