Research portable Memory game | Исследовать портируемую игру Память
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
преди 10 месеца
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. from memory_Context import *
  2. from llm import *
  3. ########
  4. # Client initiated input
  5. ########
  6. # Generate constant playfield
  7. @llm_by_value
  8. def memory_generateConstPlayfield(
  9. c: memory_Context
  10. ) -> memory_Context:
  11. idGroups: dict[int, int] = { }
  12. id = 0
  13. for gid in range(0, c.playfieldSize):
  14. idGroups[id] = gid
  15. id += 1
  16. idGroups[id] = gid
  17. id += 1
  18. #}
  19. c.playfieldItems = idGroups
  20. c.recentField = "playfieldItems"
  21. return c
  22. #}
  23. # Select item
  24. @llm_by_value
  25. def memory_selectItem(
  26. c: memory_Context
  27. ) -> memory_Context:
  28. if (
  29. len(c.selectedItems) == 2
  30. ):
  31. c.selectedItems.clear()
  32. #}
  33. c.selectedItems.append(c.selectedId)
  34. c.recentField = "selectedItems"
  35. return c
  36. #}
  37. ########
  38. # System initiated reaction
  39. ########
  40. # Deselect mismatched items
  41. #
  42. # Conditions:
  43. # 0. Two items has just been selected
  44. # 1. The same item has been selected twice
  45. # 2. Selected items are of different groups
  46. @llm_by_value
  47. def memory_shouldDeselectMismatchedItems(
  48. c: memory_Context
  49. ) -> memory_Context:
  50. if not (
  51. c.recentField == "selectedItems" and
  52. len(c.selectedItems) == 2
  53. ):
  54. c.recentField = "none"
  55. return c
  56. #}
  57. if (
  58. c.selectedItems[0] == c.selectedItems[1]
  59. ):
  60. c.mismatchedItems.clear()
  61. c.mismatchedItems.append(c.selectedItems[0])
  62. c.recentField = "mismatchedItems"
  63. return c
  64. #}
  65. if (
  66. c.playfieldItems[c.selectedItems[0]] != c.playfieldItems[c.selectedItems[1]]
  67. ):
  68. c.mismatchedItems.clear()
  69. c.mismatchedItems.append(c.selectedItems[0])
  70. c.mismatchedItems.append(c.selectedItems[1])
  71. c.recentField = "mismatchedItems"
  72. return c
  73. #}
  74. c.recentField = "none"
  75. return c
  76. #}
  77. # Detect victory
  78. #
  79. # Conditions:
  80. # 1. Matching items have just been hidden and all items are hidden now
  81. @llm_by_value
  82. def memory_shouldDetectVictory(
  83. c: memory_Context
  84. ) -> memory_Context:
  85. if (
  86. c.recentField == "hiddenItems" and
  87. len(c.hiddenItems) == len(c.playfieldItems)
  88. ):
  89. c.victory = True
  90. c.recentField = "victory"
  91. return c
  92. #}
  93. c.recentField = "none"
  94. return c
  95. #}
  96. # Hide matching selected items
  97. #
  98. # Conditions:
  99. # 1. Two items are selected and they are of the same group
  100. @llm_by_value
  101. def memory_shouldHideMatchingItems(
  102. c: memory_Context
  103. ) -> memory_Context:
  104. if (
  105. c.recentField == "selectedItems" and
  106. len(c.selectedItems) == 2 and
  107. c.playfieldItems[c.selectedItems[0]] == c.playfieldItems[c.selectedItems[1]]
  108. ):
  109. c.hiddenItems.append(c.selectedItems[0])
  110. c.hiddenItems.append(c.selectedItems[1])
  111. c.recentField = "hiddenItems"
  112. return c
  113. #}
  114. c.recentField = "none"
  115. return c
  116. #}