Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- m = 2
- p = 3
- vi = 38
- res = [["?" for c in range((vi+1))] for r in range((vi+1))]
- start_r = 1
- start_c = 1
- end_r = vi-start_c+1
- end_c = vi-start_r+1
- def getValue(r,c):
- #print(r,c)
- if (r+c) >= vi:
- if r < len(res) and c < len(res[r]):
- res[r][c] = "!"
- return "!"
- else:
- if res[r][c] == '?':
- one_move_cells = (getValue(r+p,c), getValue(r,c+p),getValue(r*m,c),getValue(r,c*m))
- if '!' in one_move_cells:
- # если можно выиграть одним ходом / выигрыш за один ход
- res[r][c] = '+1'
- elif '+1' in one_move_cells and one_move_cells.count('+1') == 4:
- # если нельзя одним ходом и вокруг только +1 / проигрыш за один ход (строго за один)
- res[r][c] = '-1'
- elif '-1' in one_move_cells:
- # если вокруг не только +1, а есть и -1 / выигрыш за два хода
- res[r][c] = '+2'
- else:
- # если нельзя выиграть за один ход
- # если нельзя выиграть за два хода
- # если получается не проиграть за один ход
- if "-" in (cell[0] for cell in one_move_cells):
- # если вокруг есть клетка с минусом / выигрыш за больше, чем два хода
- res[r][c] = '+'
- else:
- if '+2' in one_move_cells:
- # если минусов нет, и есть +2
- res[r][c] = '-2'
- else:
- # минусов нет и нет +2
- res[r][c] = '-'
- return res[r][c]
- for r in reversed(range(start_r,len(res)-1)):
- for c in reversed(range(start_c,len(res[r])-1)):
- getValue(r,c)
- f = open('res.html','w')
- f.write('<table border="1">')
- f.write('<TH>')
- for c in range(start_c,end_c):
- f.write('<TD>')
- f.write(str(c))
- f.write('</TD>')
- f.write('\n')
- f.write('</TH>')
- for r in range(start_r,end_r):
- f.write('<TR>\n')
- f.write('<TD>\n')
- f.write(str(r))
- f.write('</TD>')
- for c in range(start_c,end_c):
- f.write('<TD>')
- f.write(res[r][c])
- f.write('</TD>')
- f.write('</TR>\n')
- f.write('</table>')
- f.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement