Advertisement
Kaelygon

kaelife.rule

Jul 22nd, 2024
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.07 KB | None | 0 0
  1. @RULE kaelife
  2. # https://github.com/Kaelygon/kaelifecpp
  3. # .ruleRange = {6,9,11,24},
  4. # .ruleAdd = {-1,1,-1,0,-1},
  5. # .stateCount = 4,
  6. #
  7. # iterate through ruleRange checking if neighbor sum is less than the current element
  8. # if the value is less than current element of .ruleRange use that index of .ruleAdd
  9. # if sum is larger than last element use last element of .ruleAdd
  10. #
  11. # //linear search which range neigsum lands on
  12. # int addValue=lv.ruleAdd.back();
  13. # for(size_t i=0;i<lv.ruleRange.size();i++){
  14. # if(neigsum<lv.ruleRange[i]){
  15. # addValue=lv.ruleAdd[i];
  16. # break;
  17. # }
  18. # }
  19.  
  20. # 0s and 1s are not included in sum
  21. #.clipTreshold = (stateCount/2)
  22. #if(neigValue < lv.clipTreshold){continue;} //clip any values below clipTreshold
  23.  
  24. #sum range = addend
  25. #2,3,4,5 -= 1
  26. #6,7,8 += 1
  27. #9-10 -= 1
  28. #11-23 += 0
  29. #24 -= 1
  30.  
  31.  
  32. @TABLE
  33. n_states:4
  34. neighborhood:Moore
  35. symmetries:permute
  36.  
  37. # 1s act same as 0s
  38. var c10 = {0,1}
  39. var c11 = {0,1}
  40. var c12 = {0,1}
  41. var c13 = {0,1}
  42. var c14 = {0,1}
  43. var c15 = {0,1}
  44. var c16 = {0,1}
  45. var c17 = {0,1}
  46.  
  47. #only 0s and 1s
  48. 1, c10,c11,c12,c13,c14,c15,c16,c17, 0
  49. 2, c10,c11,c12,c13,c14,c15,c16,c17, 1
  50. 3, c10,c11,c12,c13,c14,c15,c16,c17, 2
  51.  
  52. #sum 2 (-1)
  53. 1, 2,c11,c12,c13,c14,c15,c16,c17, 0
  54. 2, 2,c11,c12,c13,c14,c15,c16,c17, 1
  55. 3, 2,c11,c12,c13,c14,c15,c16,c17, 2
  56.  
  57. #sum 3 (-1)
  58. 1, 3,c11,c12,c13,c14,c15,c16,c17, 0
  59. 2, 3,c11,c12,c13,c14,c15,c16,c17, 1
  60. 3, 3,c11,c12,c13,c14,c15,c16,c17, 2
  61.  
  62.  
  63. #sum 4 (-1)
  64. 1, 2,2,c12,c13,c14,c15,c16,c17, 0
  65. 2, 2,2,c12,c13,c14,c15,c16,c17, 1
  66. 3, 2,2,c12,c13,c14,c15,c16,c17, 2
  67.  
  68.  
  69. #sum 5 (-1)
  70. 1, 3,2,c12,c13,c14,c15,c16,c17, 0
  71. 2, 3,2,c12,c13,c14,c15,c16,c17, 1
  72. 3, 3,2,c12,c13,c14,c15,c16,c17, 2
  73.  
  74.  
  75.  
  76. #sum 6 (+1)
  77. 0, 3,3,c12,c13,c14,c15,c16,c17, 1
  78. 0, 2,2,2, c13,c14,c15,c16,c17, 1
  79.  
  80. 1, 3,3,c12,c13,c14,c15,c16,c17, 2
  81. 1, 2,2,2, c13,c14,c15,c16,c17, 2
  82.  
  83. 2, 3,3,c12,c13,c14,c15,c16,c17, 3
  84. 2, 2,2,2, c13,c14,c15,c16,c17, 3
  85.  
  86.  
  87. #sum 7 (+1)
  88. 0, 3,2,2,c13,c14,c15,c16,c17, 1
  89. 1, 3,2,2,c13,c14,c15,c16,c17, 2
  90. 2, 3,2,2,c13,c14,c15,c16,c17, 3
  91.  
  92.  
  93. #sum 8 (+1)
  94. 0, 3,3,2,c13,c14,c15,c16,c17, 1
  95. 0, 2,2,2,2, c14,c15,c16,c17, 1
  96.  
  97. 1, 3,3,2,c13,c14,c15,c16,c17, 2
  98. 1, 2,2,2,2, c14,c15,c16,c17, 2
  99.  
  100. 2, 3,3,2,c13,c14,c15,c16,c17, 3
  101. 2, 2,2,2,2, c14,c15,c16,c17, 3
  102.  
  103.  
  104. #sum 9 (-1)
  105. 3, 3,3,3,c13,c14,c15,c16,c17, 2
  106. 3, 3,2,2,2, c14,c15,c16,c17, 2
  107.  
  108. 2, 3,3,3,c13,c14,c15,c16,c17, 1
  109. 2, 3,2,2,2, c14,c15,c16,c17, 1
  110.  
  111. 1, 3,3,3,c13,c14,c15,c16,c17, 0
  112. 1, 3,2,2,2, c14,c15,c16,c17, 0
  113.  
  114.  
  115. #sum 10 (-1)
  116. 3, 3,3,2,2,c14,c15,c16,c17, 2
  117. 3, 2,2,2,2,2, c15,c16,c17, 2
  118.  
  119. 2, 3,3,2,2,c14,c15,c16,c17, 1
  120. 2, 2,2,2,2,2, c15,c16,c17, 1
  121.  
  122. 1, 3,3,2,2,c14,c15,c16,c17, 0
  123. 1, 2,2,2,2,2 ,c15,c16,c17, 0
  124.  
  125.  
  126. #sum 24 (-1)
  127. 3, 3,3,3,3,3,3,3,3, 2
  128. 2, 3,3,3,3,3,3,3,3, 1
  129. 1, 3,3,3,3,3,3,3,3, 0
  130.  
  131.  
  132. #sum 11-23 (+0) catch-all remain same
  133. var c30 = {0,1,2,3}
  134. var c31 = {0,1,2,3}
  135. var c32 = {0,1,2,3}
  136. var c33 = {0,1,2,3}
  137. var c34 = {0,1,2,3}
  138. var c35 = {0,1,2,3}
  139. var c36 = {0,1,2,3}
  140. var c37 = {0,1,2,3}
  141. var c38 = {0,1,2,3}
  142. var c3n = {0,1,2,3}
  143.  
  144.  
  145. c3n, c30,c31,c32,c33,c34,c35,c36,c37, c3n
  146.  
  147.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement