Advertisement
Guest User

Untitled

a guest
Jul 24th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. import sys,os
  2. # hardcoded aether ritual patterns
  3. p = ['''
  4. 1,d
  5. 3,k
  6. 5,d
  7. 6,k
  8. 7,d
  9. 11,d
  10. 12,d
  11. 14,k
  12. 16,d
  13. 17,k
  14. 18,d
  15. 20,d
  16. 22,d
  17. 23,
  18. ''','''
  19. 1,k
  20. 2,k
  21. 3,d
  22. 4,d
  23. 5,k
  24. 6,k
  25. 7,d
  26. 8,d
  27. 9,k
  28. 10,k
  29. 11,k
  30. 12,k
  31. 13,d
  32. 14,d
  33. 15,k
  34. 16,k
  35. 17,d
  36. 18,d
  37. 19,d
  38. 20,d
  39. 21,k
  40. 22,k
  41. 23,d
  42. 24,d
  43. 25,k
  44. 26,k
  45. 27,d
  46. 28,d
  47. 29,d
  48. 30,
  49. ''','''
  50. 1,k
  51. 2,d
  52. 3,d
  53. 4,k
  54. 6,d
  55. 8,k
  56. 10,k
  57. 12,d
  58. 14,k
  59. 16,d
  60. 17,d
  61. 18,d
  62. 19,k
  63. 21,d
  64. 23,k
  65. 25,k
  66. 27,d
  67. 30,
  68. ''','''
  69. 1,k
  70. ''']
  71. #pattern sequence
  72. v = [0,0,1,1,1,1,2,2,2,2,1,1,1,1,0,0,3]
  73. e = []
  74. for q in p:
  75. r = [y.split(',') for y in q.split() if y]
  76. for i in range(len(r)):
  77. r[i][0] = int(r[i][0])
  78. s = r[i][1]
  79. if s == 'd':
  80. n = 0
  81. elif s == 'k':
  82. n = 1
  83. else:
  84. n = -1
  85. r[i][1] = n
  86. e.append(r)
  87. m = []
  88. n = 0
  89. for j in v:
  90. last = 1
  91. for c in e[j]:
  92. n += c[0] - last
  93. last = c[0]
  94. if c[1] >= 0:
  95. m.append((n, c[1]))
  96.  
  97. c = [{},{}]
  98. s = ''.join('k' if n[1] else 'd' for n in m)
  99. a = []
  100. for i in range(1, len(m)):
  101. p = [0,0]
  102. for j in range(1, min(16, i + 1)):
  103. for k in range(2):
  104. if s[i - j:i] in c[k].keys():
  105. p[k] += j
  106. if m[i][1] == 0:
  107. p[0],p[1] = p[1],p[0]
  108. # now p0 is chance to have incorrect note
  109. if sum(p):
  110. a.append(p[0] / (p[0] + p[1]))
  111. else:
  112. a.append(1)
  113. for j in range (2):
  114. for k in c[j].keys():
  115. c[j][k] *= 0.95 #memory decay
  116. for j in range (1, min(16, i + 1)):
  117. c[m[i][1]][s[i - j:i]] = 1
  118. print(a)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement