hashi-ruby 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. checksums.yaml +7 -0
  2. data/bin/assets/FlatColor/gtk-3.20/assets/blank.png +0 -0
  3. data/bin/assets/FlatColor/gtk-3.20/assets/check-insensitive.png +0 -0
  4. data/bin/assets/FlatColor/gtk-3.20/assets/check-mixed-insensitive.png +0 -0
  5. data/bin/assets/FlatColor/gtk-3.20/assets/check-mixed.png +0 -0
  6. data/bin/assets/FlatColor/gtk-3.20/assets/check.png +0 -0
  7. data/bin/assets/FlatColor/gtk-3.20/assets/grid-selection-blank.png +0 -0
  8. data/bin/assets/FlatColor/gtk-3.20/assets/grid-selection.png +0 -0
  9. data/bin/assets/FlatColor/gtk-3.20/assets/menuitem-checkbox-checked-hover.png +0 -0
  10. data/bin/assets/FlatColor/gtk-3.20/assets/menuitem-checkbox-checked-insensitive.png +0 -0
  11. data/bin/assets/FlatColor/gtk-3.20/assets/menuitem-checkbox-checked.png +0 -0
  12. data/bin/assets/FlatColor/gtk-3.20/assets/menuitem-checkbox-mixed-hover.png +0 -0
  13. data/bin/assets/FlatColor/gtk-3.20/assets/menuitem-checkbox-mixed-insensitive.png +0 -0
  14. data/bin/assets/FlatColor/gtk-3.20/assets/menuitem-checkbox-mixed.png +0 -0
  15. data/bin/assets/FlatColor/gtk-3.20/assets/menuitem-radio-checked-hover.png +0 -0
  16. data/bin/assets/FlatColor/gtk-3.20/assets/menuitem-radio-checked-insensitive.png +0 -0
  17. data/bin/assets/FlatColor/gtk-3.20/assets/menuitem-radio-checked.png +0 -0
  18. data/bin/assets/FlatColor/gtk-3.20/assets/pane-separator-grip-vertical.png +0 -0
  19. data/bin/assets/FlatColor/gtk-3.20/assets/pane-separator-grip.png +0 -0
  20. data/bin/assets/FlatColor/gtk-3.20/assets/radio-checked.png +0 -0
  21. data/bin/assets/FlatColor/gtk-3.20/assets/radio-insensitive.png +0 -0
  22. data/bin/assets/FlatColor/gtk-3.20/assets/radio-unchecked.png +0 -0
  23. data/bin/assets/FlatColor/gtk-3.20/assets/radio.png +0 -0
  24. data/bin/assets/FlatColor/gtk-3.20/assets/slider-dark.png +0 -0
  25. data/bin/assets/FlatColor/gtk-3.20/assets/slider-dark@2.png +0 -0
  26. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-above-dark.png +0 -0
  27. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-above-dark@2.png +0 -0
  28. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-above-insensitive-dark.png +0 -0
  29. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-above-insensitive-dark@2.png +0 -0
  30. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-above-insensitive.png +0 -0
  31. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-above-insensitive@2.png +0 -0
  32. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-above.png +0 -0
  33. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-above@2.png +0 -0
  34. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-below-dark.png +0 -0
  35. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-below-dark@2.png +0 -0
  36. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-below-insensitive-dark.png +0 -0
  37. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-below-insensitive-dark@2.png +0 -0
  38. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-below-insensitive.png +0 -0
  39. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-below-insensitive@2.png +0 -0
  40. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-below.png +0 -0
  41. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-below@2.png +0 -0
  42. data/bin/assets/FlatColor/gtk-3.20/assets/slider-insensitive-dark.png +0 -0
  43. data/bin/assets/FlatColor/gtk-3.20/assets/slider-insensitive-dark@2.png +0 -0
  44. data/bin/assets/FlatColor/gtk-3.20/assets/slider-insensitive.png +0 -0
  45. data/bin/assets/FlatColor/gtk-3.20/assets/slider-insensitive@2.png +0 -0
  46. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-above-dark.png +0 -0
  47. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-above-dark@2.png +0 -0
  48. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-above-insensitive-dark.png +0 -0
  49. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-above-insensitive-dark@2.png +0 -0
  50. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-above-insensitive.png +0 -0
  51. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-above-insensitive@2.png +0 -0
  52. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-above.png +0 -0
  53. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-above@2.png +0 -0
  54. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-below-dark.png +0 -0
  55. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-below-dark@2.png +0 -0
  56. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-below-insensitive-dark.png +0 -0
  57. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-below-insensitive-dark@2.png +0 -0
  58. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-below-insensitive.png +0 -0
  59. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-below-insensitive@2.png +0 -0
  60. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-below.png +0 -0
  61. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-below@2.png +0 -0
  62. data/bin/assets/FlatColor/gtk-3.20/assets/slider.png +0 -0
  63. data/bin/assets/FlatColor/gtk-3.20/assets/slider@2.png +0 -0
  64. data/bin/assets/FlatColor/gtk-3.20/gnome-applications.css +429 -0
  65. data/bin/assets/FlatColor/gtk-3.20/gtk-widgets.css +786 -0
  66. data/bin/assets/FlatColor/gtk-3.20/gtk.css +113 -0
  67. data/bin/assets/FlatColor/gtk-3.20/gtk.css.base +108 -0
  68. data/bin/assets/FlatColor/gtk-3.20/settings.ini +7 -0
  69. data/bin/assets/FlatColor/gtk-3.20/unity.css +68 -0
  70. data/bin/assets/FlatColor/gtk-3.20/widgets/button.css +58 -0
  71. data/bin/assets/FlatColor/gtk-3.20/widgets/calendar.css +32 -0
  72. data/bin/assets/FlatColor/gtk-3.20/widgets/cell-row.css +25 -0
  73. data/bin/assets/FlatColor/gtk-3.20/widgets/check-radio.css +164 -0
  74. data/bin/assets/FlatColor/gtk-3.20/widgets/chrome.css +16 -0
  75. data/bin/assets/FlatColor/gtk-3.20/widgets/color-chooser.css +114 -0
  76. data/bin/assets/FlatColor/gtk-3.20/widgets/column-header.css +52 -0
  77. data/bin/assets/FlatColor/gtk-3.20/widgets/combobox.css +26 -0
  78. data/bin/assets/FlatColor/gtk-3.20/widgets/csd.css +125 -0
  79. data/bin/assets/FlatColor/gtk-3.20/widgets/entry.css +40 -0
  80. data/bin/assets/FlatColor/gtk-3.20/widgets/header-bar.css +27 -0
  81. data/bin/assets/FlatColor/gtk-3.20/widgets/infobar.css +90 -0
  82. data/bin/assets/FlatColor/gtk-3.20/widgets/linked-buttons.css +524 -0
  83. data/bin/assets/FlatColor/gtk-3.20/widgets/menu.css +127 -0
  84. data/bin/assets/FlatColor/gtk-3.20/widgets/notebook.css +200 -0
  85. data/bin/assets/FlatColor/gtk-3.20/widgets/osd.css +203 -0
  86. data/bin/assets/FlatColor/gtk-3.20/widgets/progress-scale.css +365 -0
  87. data/bin/assets/FlatColor/gtk-3.20/widgets/scrollbar.css +116 -0
  88. data/bin/assets/FlatColor/gtk-3.20/widgets/selection-mode.css +109 -0
  89. data/bin/assets/FlatColor/gtk-3.20/widgets/separator.css +24 -0
  90. data/bin/assets/FlatColor/gtk-3.20/widgets/sidebar.css +43 -0
  91. data/bin/assets/FlatColor/gtk-3.20/widgets/spinbutton.css +102 -0
  92. data/bin/assets/FlatColor/gtk-3.20/widgets/spinner.css +120 -0
  93. data/bin/assets/FlatColor/gtk-3.20/widgets/switch.css +63 -0
  94. data/bin/assets/FlatColor/gtk-3.20/widgets/toolbar.css +39 -0
  95. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-dark.png +0 -0
  96. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-dark@2.png +0 -0
  97. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-insensitive-dark.png +0 -0
  98. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-insensitive-dark@2.png +0 -0
  99. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-insensitive-selected.png +0 -0
  100. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-insensitive-selected@2.png +0 -0
  101. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-insensitive.png +0 -0
  102. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-insensitive@2.png +0 -0
  103. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-selected.png +0 -0
  104. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-selected@2.png +0 -0
  105. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-selectionmode-dark.png +0 -0
  106. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-selectionmode-dark@2.png +0 -0
  107. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-selectionmode.png +0 -0
  108. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-selectionmode@2.png +0 -0
  109. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked.png +0 -0
  110. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked@2.png +0 -0
  111. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-mixed-dark.png +0 -0
  112. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-mixed-dark@2.png +0 -0
  113. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-mixed-insensitive-dark.png +0 -0
  114. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-mixed-insensitive-dark@2.png +0 -0
  115. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-mixed-insensitive-selected.png +0 -0
  116. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-mixed-insensitive-selected@2.png +0 -0
  117. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-mixed-insensitive.png +0 -0
  118. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-mixed-insensitive@2.png +0 -0
  119. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-mixed-selected.png +0 -0
  120. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-mixed-selected@2.png +0 -0
  121. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-mixed.png +0 -0
  122. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-mixed@2.png +0 -0
  123. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-selectionmode-dark.png +0 -0
  124. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-selectionmode-dark@2.png +0 -0
  125. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-selectionmode.png +0 -0
  126. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-selectionmode@2.png +0 -0
  127. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-unchecked-dark.png +0 -0
  128. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-unchecked-dark@2.png +0 -0
  129. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-unchecked-insensitive-dark.png +0 -0
  130. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-unchecked-insensitive-dark@2.png +0 -0
  131. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-unchecked-insensitive-selected.png +0 -0
  132. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-unchecked-insensitive-selected@2.png +0 -0
  133. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-unchecked-insensitive.png +0 -0
  134. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-unchecked-insensitive@2.png +0 -0
  135. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-unchecked-selected.png +0 -0
  136. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-unchecked-selected@2.png +0 -0
  137. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-unchecked.png +0 -0
  138. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-unchecked@2.png +0 -0
  139. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-checked-dark.png +0 -0
  140. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-checked-dark@2.png +0 -0
  141. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-checked-insensitive-dark.png +0 -0
  142. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-checked-insensitive-dark@2.png +0 -0
  143. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-checked-insensitive-selected.png +0 -0
  144. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-checked-insensitive-selected@2.png +0 -0
  145. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-checked-insensitive.png +0 -0
  146. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-checked-insensitive@2.png +0 -0
  147. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-checked-selected.png +0 -0
  148. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-checked-selected@2.png +0 -0
  149. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-checked.png +0 -0
  150. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-checked@2.png +0 -0
  151. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-mixed-dark.png +0 -0
  152. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-mixed-dark@2.png +0 -0
  153. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-mixed-insensitive-dark.png +0 -0
  154. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-mixed-insensitive-dark@2.png +0 -0
  155. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-mixed-insensitive-selected.png +0 -0
  156. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-mixed-insensitive-selected@2.png +0 -0
  157. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-mixed-insensitive.png +0 -0
  158. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-mixed-insensitive@2.png +0 -0
  159. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-mixed-selected.png +0 -0
  160. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-mixed-selected@2.png +0 -0
  161. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-mixed.png +0 -0
  162. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-mixed@2.png +0 -0
  163. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-unchecked-dark.png +0 -0
  164. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-unchecked-dark@2.png +0 -0
  165. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-unchecked-insensitive-dark.png +0 -0
  166. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-unchecked-insensitive-dark@2.png +0 -0
  167. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-unchecked-insensitive-selected.png +0 -0
  168. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-unchecked-insensitive-selected@2.png +0 -0
  169. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-unchecked-insensitive.png +0 -0
  170. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-unchecked-insensitive@2.png +0 -0
  171. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-unchecked-selected.png +0 -0
  172. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-unchecked-selected@2.png +0 -0
  173. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-unchecked.png +0 -0
  174. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-unchecked@2.png +0 -0
  175. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-dark.png +0 -0
  176. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-dark@2.png +0 -0
  177. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-header-dark.png +0 -0
  178. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-header-dark@2.png +0 -0
  179. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-header.png +0 -0
  180. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-header@2.png +0 -0
  181. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-hover-dark.png +0 -0
  182. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-hover-dark@2.png +0 -0
  183. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-hover-header-dark.png +0 -0
  184. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-hover-header-dark@2.png +0 -0
  185. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-hover-header.png +0 -0
  186. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-hover-header@2.png +0 -0
  187. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-hover-selected.png +0 -0
  188. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-hover-selected@2.png +0 -0
  189. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-hover.png +0 -0
  190. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-hover@2.png +0 -0
  191. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-insensitive-dark.png +0 -0
  192. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-insensitive-dark@2.png +0 -0
  193. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-insensitive-header-dark.png +0 -0
  194. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-insensitive-header-dark@2.png +0 -0
  195. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-insensitive-header.png +0 -0
  196. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-insensitive-header@2.png +0 -0
  197. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-insensitive-selected.png +0 -0
  198. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-insensitive-selected@2.png +0 -0
  199. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-insensitive.png +0 -0
  200. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-insensitive@2.png +0 -0
  201. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-selected.png +0 -0
  202. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-selected@2.png +0 -0
  203. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active.png +0 -0
  204. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active@2.png +0 -0
  205. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-dark.png +0 -0
  206. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-dark@2.png +0 -0
  207. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-header-dark.png +0 -0
  208. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-header-dark@2.png +0 -0
  209. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-header.png +0 -0
  210. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-header@2.png +0 -0
  211. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-hover-dark.png +0 -0
  212. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-hover-dark@2.png +0 -0
  213. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-hover-header-dark.png +0 -0
  214. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-hover-header-dark@2.png +0 -0
  215. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-hover-header.png +0 -0
  216. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-hover-header@2.png +0 -0
  217. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-hover-selected.png +0 -0
  218. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-hover-selected@2.png +0 -0
  219. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-hover.png +0 -0
  220. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-hover@2.png +0 -0
  221. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-insensitive-dark.png +0 -0
  222. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-insensitive-dark@2.png +0 -0
  223. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-insensitive-header-dark.png +0 -0
  224. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-insensitive-header-dark@2.png +0 -0
  225. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-insensitive-header.png +0 -0
  226. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-insensitive-header@2.png +0 -0
  227. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-insensitive-selected.png +0 -0
  228. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-insensitive-selected@2.png +0 -0
  229. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-insensitive.png +0 -0
  230. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-insensitive@2.png +0 -0
  231. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-selected.png +0 -0
  232. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-selected@2.png +0 -0
  233. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch.png +0 -0
  234. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch@2.png +0 -0
  235. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-active-dark.png +0 -0
  236. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-active-dark@2.png +0 -0
  237. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-active.png +0 -0
  238. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-active@2.png +0 -0
  239. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-backdrop-dark.png +0 -0
  240. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-backdrop-dark@2.png +0 -0
  241. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-backdrop.png +0 -0
  242. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-backdrop@2.png +0 -0
  243. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-dark.png +0 -0
  244. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-dark@2.png +0 -0
  245. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-hover-dark.png +0 -0
  246. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-hover-dark@2.png +0 -0
  247. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-hover.png +0 -0
  248. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-hover@2.png +0 -0
  249. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close.png +0 -0
  250. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close@2.png +0 -0
  251. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-active-dark.png +0 -0
  252. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-active-dark@2.png +0 -0
  253. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-active.png +0 -0
  254. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-active@2.png +0 -0
  255. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-backdrop-dark.png +0 -0
  256. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-backdrop-dark@2.png +0 -0
  257. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-backdrop.png +0 -0
  258. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-backdrop@2.png +0 -0
  259. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-dark.png +0 -0
  260. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-dark@2.png +0 -0
  261. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-hover-dark.png +0 -0
  262. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-hover-dark@2.png +0 -0
  263. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-hover.png +0 -0
  264. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-hover@2.png +0 -0
  265. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize.png +0 -0
  266. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize@2.png +0 -0
  267. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-active-dark.png +0 -0
  268. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-active-dark@2.png +0 -0
  269. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-active.png +0 -0
  270. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-active@2.png +0 -0
  271. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-backdrop-dark.png +0 -0
  272. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-backdrop-dark@2.png +0 -0
  273. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-backdrop.png +0 -0
  274. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-backdrop@2.png +0 -0
  275. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-dark.png +0 -0
  276. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-dark@2.png +0 -0
  277. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-hover-dark.png +0 -0
  278. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-hover-dark@2.png +0 -0
  279. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-hover.png +0 -0
  280. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-hover@2.png +0 -0
  281. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize.png +0 -0
  282. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize@2.png +0 -0
  283. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-active-dark.png +0 -0
  284. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-active-dark@2.png +0 -0
  285. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-active.png +0 -0
  286. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-active@2.png +0 -0
  287. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-backdrop-dark.png +0 -0
  288. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-backdrop-dark@2.png +0 -0
  289. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-backdrop.png +0 -0
  290. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-backdrop@2.png +0 -0
  291. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-dark.png +0 -0
  292. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-dark@2.png +0 -0
  293. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-hover-dark.png +0 -0
  294. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-hover-dark@2.png +0 -0
  295. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-hover.png +0 -0
  296. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-hover@2.png +0 -0
  297. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore.png +0 -0
  298. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore@2.png +0 -0
  299. data/bin/assets/Matcha-dark-aliz/gtk-3.0/gtk-dark.css +10090 -0
  300. data/bin/assets/Matcha-dark-aliz/gtk-3.0/gtk.css +10100 -0
  301. data/bin/assets/Matcha-dark-aliz/gtk-3.0/thumbnail.png +0 -0
  302. data/bin/assets/Matcha-dark-aliz/index.theme +12 -0
  303. data/bin/assets/didacticiel/1.jpg +0 -0
  304. data/bin/assets/didacticiel/2.jpg +0 -0
  305. data/bin/assets/didacticiel/3.jpg +0 -0
  306. data/bin/assets/didacticiel/4.jpg +0 -0
  307. data/bin/assets/didacticiel/5.jpg +0 -0
  308. data/bin/assets/didacticiel/6.jpg +0 -0
  309. data/bin/assets/didacticiel/7.jpg +0 -0
  310. data/bin/assets/didacticiel/8.jpg +0 -0
  311. data/bin/assets/map.png +0 -0
  312. data/bin/db/Difficulte.rb +9 -0
  313. data/bin/db/GestionBase.rb +334 -0
  314. data/bin/db/GrilleDb.rb +15 -0
  315. data/bin/db/Joue.rb +10 -0
  316. data/bin/db/Joueur.rb +9 -0
  317. data/bin/db/Migration.rb +70 -0
  318. data/bin/db/Mode.rb +9 -0
  319. data/bin/db/PhrasesAventure.rb +4 -0
  320. data/bin/db/TestBase.rb +144 -0
  321. data/bin/db/base.sqlite +0 -0
  322. data/bin/hashi +5 -0
  323. data/bin/src/Action.rb +46 -0
  324. data/bin/src/Aides.rb +41 -0
  325. data/bin/src/Case.rb +410 -0
  326. data/bin/src/Grille.rb +914 -0
  327. data/bin/src/Grilles/grilles_site.txt +30 -0
  328. data/bin/src/Grilles/grilles_site_difficile.txt +90 -0
  329. data/bin/src/Grilles/grilles_site_facile.txt +90 -0
  330. data/bin/src/Grilles/grilles_site_moyen.txt +90 -0
  331. data/bin/src/Grilles/grilles_site_ser.txt +0 -0
  332. data/bin/src/Grilles/grilles_site_ser_difficile.txt +90 -0
  333. data/bin/src/Grilles/grilles_site_ser_facile.txt +90 -0
  334. data/bin/src/Grilles/grilles_site_ser_moyen.txt +90 -0
  335. data/bin/src/Hashi.rb +214 -0
  336. data/bin/src/Lien.rb +57 -0
  337. data/bin/src/Pile.rb +41 -0
  338. data/bin/src/Rakefile.rb +6 -0
  339. data/bin/src/SerGrille.rb +430 -0
  340. data/bin/src/Test.rb +24 -0
  341. data/bin/src/Test2.rb +135 -0
  342. data/bin/src/Utilitaire.rb +12 -0
  343. data/bin/src/testSerGrille.rb +21 -0
  344. data/bin/src/ui/AfficheurGrille.rb +385 -0
  345. data/bin/src/ui/AfficheurJeu.rb +209 -0
  346. data/bin/src/ui/AfficheurSelection.rb +38 -0
  347. data/bin/src/ui/Afrique.rb +38 -0
  348. data/bin/src/ui/AmeriqueNord.rb +38 -0
  349. data/bin/src/ui/AmeriqueSud.rb +38 -0
  350. data/bin/src/ui/Antarctique.rb +32 -0
  351. data/bin/src/ui/Asie.rb +38 -0
  352. data/bin/src/ui/Aventure.rb +132 -0
  353. data/bin/src/ui/Carte.rb +282 -0
  354. data/bin/src/ui/ChargementAventure.rb +61 -0
  355. data/bin/src/ui/Classement.rb +42 -0
  356. data/bin/src/ui/Connexion.rb +60 -0
  357. data/bin/src/ui/Didacticiel.rb +169 -0
  358. data/bin/src/ui/Etiquette.rb +24 -0
  359. data/bin/src/ui/Europe.rb +38 -0
  360. data/bin/src/ui/ListeClassement.rb +44 -0
  361. data/bin/src/ui/Menu.rb +74 -0
  362. data/bin/src/ui/Monde.rb +167 -0
  363. data/bin/src/ui/Oceanie.rb +38 -0
  364. data/bin/src/ui/SelecteurGrille.rb +58 -0
  365. data/bin/src/ui/SelectionDifficulte.rb +38 -0
  366. data/bin/src/ui/SelectionUtilisateur.rb +46 -0
  367. data/bin/src/ui/Timer.rb +29 -0
  368. metadata +479 -0
@@ -0,0 +1,12 @@
1
+ [Desktop Entry]
2
+ Type=X-GNOME-Metatheme
3
+ Name=Matcha-dark-aliz
4
+ Comment=A dark modern design theme
5
+ Encoding=UTF-8
6
+
7
+ [X-GNOME-Metatheme]
8
+ GtkTheme=Matcha-dark-aliz
9
+ MetacityTheme=Matcha-dark-aliz
10
+ IconTheme=Qogir-manjaro
11
+ CursorTheme=Breeze_cursors
12
+ ButtonLayout=menu:minimize,maximize,close
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,9 @@
1
+ require 'active_record'
2
+ # Classe Difficulte de la base de données
3
+ class Difficulte < ActiveRecord::Base
4
+ has_many :grille_dbs
5
+
6
+ def to_s
7
+ "<Difficulte> difficulte : '#{niveau}'"
8
+ end
9
+ end
@@ -0,0 +1,334 @@
1
+ #Fonction de gestion de la base de données
2
+ require "rubygems"
3
+ require "active_record"
4
+ require_relative "Joueur"
5
+ require_relative "GrilleDb"
6
+ require_relative "Joue"
7
+ require_relative "Difficulte"
8
+ require_relative "Mode"
9
+ require_relative "PhrasesAventure"
10
+
11
+ # Classe permettant la récupérations d'informations de la Base de données vers le programme grâce au joueur ou aux grilles
12
+ class GestionBase
13
+ # Ajoute un joueur à la base de données
14
+ #
15
+ # === Paramètres
16
+ #
17
+ # * +pseudo+ => Le pseudo que le joueur désire (chaîne de caractères)
18
+ #
19
+ # === Retour
20
+ #
21
+ # Vrai si le pseudo est libre, faux si déjà utilisé
22
+ #
23
+ def GestionBase.ajouterJoueur(pseudo)
24
+ retour = nil
25
+
26
+ #Si le pseudo n'est pas déjà pris
27
+ if(recupJoueur(pseudo)==nil)
28
+ retour = Joueur.create( :pseudo => pseudo)
29
+ end
30
+
31
+ return retour != nil
32
+ end
33
+
34
+ # Récupère un joueur de la base de données via son pseudo
35
+ #
36
+ # === Paramètres
37
+ #
38
+ # * +pseudo+ => Le pseudo du joueur que l'on souhaite récupérer (chaîne de caractères)
39
+ #
40
+ # === Retour
41
+ #
42
+ # Le joueur si existant, nil sinon
43
+ #
44
+ def GestionBase.recupJoueur(pseudo)
45
+ return Joueur.where("lower(pseudo) = ?", pseudo.downcase).first
46
+ # return Joueur.find_by_pseudo(pseudo)
47
+ end
48
+
49
+ # Récupère tous les joueur de la base de données
50
+ #
51
+ # === Retour
52
+ #
53
+ # Un tableau de joueurs
54
+ #
55
+ def GestionBase.recupJoueurAll
56
+ return Joueur.all
57
+ end
58
+
59
+ # Récupère la difficulté d'une grille via son Id
60
+ #
61
+ # === Paramètres
62
+ #
63
+ # * +idGrille+ => L'Id de la grille dont on veut récupérer la difficulté
64
+ #
65
+ # === Retour
66
+ #
67
+ # La difficulté (niveau) de la grille (chaîne de caractère), ou nil si impossible à trouver
68
+ #
69
+ def GestionBase.recupDifficulte(idGrille)
70
+ grille= GrilleDb.find(idGrille)
71
+ return Difficulte.find(grille.difficultes_id).niveau
72
+ end
73
+
74
+ # Récupère le mode de jeu de la grille via son Id
75
+ #
76
+ # === Paramètres
77
+ #
78
+ # * +idGrille+ => L'Id de la grille dont on veut récupérer le mode de jeu
79
+ #
80
+ # === Retour
81
+ #
82
+ # Le mode de jeu de la grille (chaîne de caractère), ou nil si impossible à trouver
83
+ #
84
+ def GestionBase.recupMode(idGrille)
85
+ grille= GrilleDb.find(idGrille)
86
+ return Mode.find(grille.modes_id).mode_jeu
87
+ end
88
+
89
+ # Récupère le score du joueur sur la grille
90
+ #
91
+ # === Paramètres
92
+ #
93
+ # * +idJoueur+ => L'Id du joueur dont on veut récupérer le score de la grille
94
+ # * +grilleDb+ => La grille dont on veut récupérer le score
95
+ #
96
+ # === Retour
97
+ #
98
+ # Le score du joueur sur la grilleDb, ou nil si le joueur n'existe pas
99
+ #
100
+ def GestionBase.recupScore(idJoueur, grilleDb)
101
+ score = nil
102
+
103
+ begin
104
+ Joueur.find(idJoueur)
105
+
106
+ begin
107
+ score = Joue.where([ "joueurs_id = ? AND grille_dbs_id = ?", idJoueur, grilleDb.id ]).first.score
108
+ rescue
109
+ score = 0
110
+ puts "recupScore => La grille #{grilleDb.id} n'existe pas pour le joueur #{idJoueur}"
111
+ end
112
+ rescue
113
+ puts "recupScore ==> Joueur d'id #{idJoueur} n'existe pas dans la base"
114
+ ensure
115
+ return score
116
+ end
117
+ end
118
+
119
+ # Récupère le score total du joueur sur les grilles qu'il a joué (uniquement en mode classé)
120
+ #
121
+ # === Paramètres
122
+ #
123
+ # * +idJoueur+ => L'Id du joueur dont on veut récupérer le score total
124
+ # * +idDifficulte+ => L'Id de la difficulté désirée
125
+ #
126
+ # === Retour
127
+ #
128
+ # Le score total du joueur sur les grilles classées terminées, ou nil si le joueur n'existe pas
129
+ #
130
+ def GestionBase.recupScoreTotal(idJoueur, idDifficulte)
131
+ score = nil
132
+
133
+ begin
134
+ Joueur.find(idJoueur)
135
+ grilles = Joue.where([ "joueurs_id = ? AND terminee = 1", idJoueur ]).select{ |joue| GrilleDb.find(joue.grille_dbs_id).modes_id == Mode.find_by_mode_jeu("Classe").id && GrilleDb.find(joue.grille_dbs_id).difficultes_id == idDifficulte }
136
+ score = grilles.inject(0) { |s, joue| s += joue.score }
137
+ rescue
138
+ puts "recupScoreTotal ==> Joueur d'id #{idJoueur} n'existe pas dans la base"
139
+ ensure
140
+ return score
141
+ end
142
+ # return Joue.where([ "joueurs_id = ?", idJoueur ]).sum(:score)
143
+ end
144
+
145
+ # Récupère le nombre de grilles jouées par le joueur (uniquement en mode classé)
146
+ #
147
+ # === Paramètres
148
+ #
149
+ # * +idJoueur+ => L'Id du joueur dont on veut récupérer le nombre de grilles jouées
150
+ # * +idDifficulte+ => L'Id de la difficulté désirée
151
+ #
152
+ # === Retour
153
+ #
154
+ # Le nombre de grilles terminées par le joueur, ou nil si le joueur n'existe pas
155
+ #
156
+ def GestionBase.recupNbGrillesJouees(idJoueur, idDifficulte)
157
+ nb = nil
158
+
159
+ begin
160
+ Joueur.find(idJoueur)
161
+ grilles = Joue.where([ "joueurs_id = ? AND terminee = 1", idJoueur ]).select{ |joue| GrilleDb.find(joue.grille_dbs_id).modes_id == Mode.find_by_mode_jeu("Classe").id && GrilleDb.find(joue.grille_dbs_id).difficultes_id == idDifficulte}
162
+ nb = grilles.inject(0) { |nb, joue| nb += 1 }
163
+ rescue
164
+ puts "recupNbGrillesJouees ==> Joueur d'id #{idJoueur} n'existe pas dans la base"
165
+ ensure
166
+ return nb
167
+ end
168
+ # return Joue.where([ "joueurs_id = ?", idJoueur ]).count
169
+ end
170
+
171
+ # Sauvegarde la grilles jouée par le joueur ou la créée si elle n'existe pas
172
+ #
173
+ # === Paramètres
174
+ #
175
+ # * +idJoueur+ => L'Id du joueur dont on veut récupérer la grille déjà commencées
176
+ # * +grilleDb+ => L'objet grille à enregistrer
177
+ #
178
+ # === Retour
179
+ #
180
+ # Aucun retour (Enregistrement dans la base)
181
+ #
182
+ def GestionBase.sauvegarderGrille(idJoueur, grilleDb)
183
+ begin
184
+ raise ("raise sauvegarderGrille") if ((joue=Joue.where([ "joueurs_id = ? AND grille_dbs_id = ?", idJoueur, grilleDb.id ])).count != 1)
185
+
186
+ rescue
187
+ Joue.create( :joueurs_id => idJoueur, :grille_dbs_id => grilleDb.id)
188
+ end
189
+ end
190
+
191
+ # Récupère les grilles jouées par le joueur
192
+ #
193
+ # === Paramètres
194
+ #
195
+ # * +idJoueur+ => L'Id du joueur dont on veut récupérer les grilles déjà commencées
196
+ # * +idDifficulte+ => L'Id de la difficulté des grilles qu'on souhaite récupérer
197
+ # * +idMode+ => L'Id du mode des grilles qu'on souhaite récupérer
198
+ # * +nbDebut+ => Le rang auquel commencer la récupération des grilles (début à 0, fin à 89)
199
+ # * +nbGrilles+ => Le nombre de grilles à récupérer à partir de nbDebut
200
+ #
201
+ # === Retour
202
+ #
203
+ # Les grilles, d'un nombre et de la difficulté voulus, jouées par le joueur, ou nil si le joueur n'existe pas
204
+ #
205
+ def GestionBase.recupGrilles(idJoueur, idDifficulte, idMode, nbDebut, nbGrilles)
206
+ grilles = nil
207
+
208
+ begin
209
+ Joueur.find(idJoueur)
210
+ grilles = Array.new #GrilleDb.all
211
+ # joue = Joue.where([ "joueurs_id = ?", idJoueur ])
212
+ begin
213
+ if nbGrilles == 0
214
+ nbGrilles = GrilleDb.where(difficultes_id: idDifficulte, modes_id: idMode).count - nbDebut
215
+ end
216
+
217
+ GrilleDb.where(difficultes_id: idDifficulte, modes_id: idMode).offset(nbDebut).limit(nbGrilles).each do |grilleDb|
218
+ begin
219
+ joue = Joue.where([ "joueurs_id = ? AND grille_dbs_id = ?", idJoueur, grilleDb.id ]).first
220
+ rescue
221
+ joue = nil
222
+ end
223
+
224
+ if (joue != nil)
225
+ grilleDb.grilleSolution = joue.grilleSer
226
+ else
227
+ grille = grilleDb.grilleSolution
228
+
229
+ grille2 = YAML.load(grille)
230
+
231
+ grille = Grille.creer(grille2.tabCase, grille2.hauteur, grille2.largeur, grille2)
232
+
233
+ grilleDb.grilleSolution = YAML.dump(grille)
234
+ #:niveau => difficulte
235
+ Joue.create( :joueurs_id => idJoueur, :grille_dbs_id => grilleDb.id, :grilleSer => grilleDb.grilleSolution, :score => 0, :terminee => false )
236
+ end
237
+
238
+ grilles.push(grilleDb)
239
+ end
240
+ # joue.map { |joue| grilles.push(GrilleDb.find(joue.grille_dbs_id)) }
241
+ rescue
242
+ puts "recupGrilles ==> Problème récupération grille depuis joue"
243
+ end
244
+ rescue
245
+ puts "recupGrilles ==> Joueur d'id #{idJoueur} n'existe pas dans la base"
246
+ ensure
247
+ return grilles
248
+ end
249
+ end
250
+
251
+ def GestionBase.recupGrilleAleatoire(idJoueur, idDifficulte, idMode)
252
+ # Récupère toutes les grilles du mode idMode et difficulte idDifficulte
253
+ grilles = GestionBase.recupGrilles(idJoueur, idDifficulte, idMode, 0, 0)
254
+
255
+ # Trie les grilles pour garder uniquement les grilles non terminée
256
+ grilleDb = grilles.select { |grilleDb| !GestionBase.grilleTerminee?(idJoueur, grilleDb) }.sample
257
+
258
+ if grilleDb == nil
259
+ #puts "Aucune grille non terminée, on prend parmi les terminées et on réinitialise"
260
+ grilleDb = grilles.sample
261
+
262
+ # Réinitialisation de la grille
263
+ grilleSolution = YAML.load(grilleDb.grilleSolution)
264
+ grille = Grille.creer(grilleSolution.tabCase, grilleSolution.hauteur, grilleSolution.largeur, grilleSolution)
265
+ grilleDb.grilleSolution = YAML.dump(grille)
266
+
267
+ # Enregistrement de la grille
268
+ GestionBase.changerScore(idJoueur, grilleDb, 0)
269
+ end
270
+
271
+ return grilleDb
272
+ end
273
+
274
+ # Modifie le score de la grille d'un Joueur
275
+ #
276
+ # === Paramètres
277
+ #
278
+ # * +idJoueur+ => L'Id du Joueur dont on veut modifier le scre de l'une des grilles
279
+ # * +grilleDb+ => L'objet grille dont on veut modifier le score
280
+ # score à supprimer des paramètres
281
+ # === Retour
282
+ #
283
+ # Aucun : modifie le score de la grille du joueur ainsi que la grilleSer
284
+ #
285
+ def GestionBase.changerScore(idJoueur, grilleDb, score)
286
+ begin
287
+ raise ("raise changerScore") if ((joue=Joue.where([ "joueurs_id = ? AND grille_dbs_id = ?", idJoueur, grilleDb.id ])).count != 1)
288
+ joue = joue.first
289
+ idDifficulte = grilleDb.difficultes_id
290
+ grille = YAML.load(grilleDb.grilleSolution)
291
+ # puts "grille: #{grille.nbAides}"
292
+
293
+ tempsReel = grille.timer
294
+ nbAides = 10 * grille.nbAides
295
+ terminee = false
296
+ begin
297
+ raise ("Grille non terminée") if (!grille.grilleFinie)
298
+ score = grilleDb.tempsMax + (3 * (grilleDb.tempsMoyen - tempsReel)) - nbAides + 500 - (3 * (7 - idDifficulte))
299
+ terminee = true
300
+ #puts "score: #{score}, scoreMax: #{grilleDb.scoreMax}, tempsMoyen: #{grilleDb.tempsMoyen}"
301
+ rescue # timer == 0?
302
+ # puts "Timer: #{tempsReel}"
303
+ score = 0
304
+ end
305
+ # score = grilleDb.scoreMax * grilleDb.tempsMoyen
306
+ joue.update(score: score, grilleSer: grilleDb.grilleSolution, terminee: terminee)# if (joue.score < score)
307
+ rescue
308
+ puts "changeScore ==> La grille d'id #{grilleDb.id} du joueur d'id #{idJoueur} n'existe pas dans la base. Score: #{score}"
309
+ end
310
+ end
311
+
312
+ # Permet de savoir si une grille a été terminée par le joueur
313
+ #
314
+ # === Paramètres
315
+ #
316
+ # * +idJoueur+ => L'Id du Joueur dont on veut savoir s'il a terminé la grille
317
+ # * +grilleDb+ => L'objet grille dont on veut savoir si elle a été terminée
318
+ #
319
+ # === Retour
320
+ #
321
+ # Si le joueur et la grille existent, renvoie l'état de la grille (true ou false), nil si la grille n'existe pas pour le joueur
322
+ #
323
+ def GestionBase.grilleTerminee?(idJoueur, grilleDb)
324
+ terminee = nil
325
+ begin
326
+ raise ("raise grilleTerminee?") if ((joue=Joue.where([ "joueurs_id = ? AND grille_dbs_id = ?", idJoueur, grilleDb.id ])).count != 1)
327
+ terminee = joue.first.terminee
328
+ rescue
329
+ puts "grilleTerminee? ==> La grille d'id #{grilleDb.id} du joueur d'id #{idJoueur} n'existe pas dans la base."
330
+ ensure
331
+ return terminee
332
+ end
333
+ end
334
+ end
@@ -0,0 +1,15 @@
1
+ require 'active_record'
2
+
3
+ require_relative "../src/Grille"
4
+ # Classe GrilleDb de la base de données
5
+ class GrilleDb < ActiveRecord::Base
6
+ has_many :joueurs, through: :joue
7
+ belongs_to :difficulte
8
+ belongs_to :mode
9
+
10
+ # serialize :grilleSolution
11
+
12
+ def to_s
13
+ "<GrilleDb> difficulte : #{difficultes_id}, mode : #{modes_id}"
14
+ end
15
+ end
data/bin/db/Joue.rb ADDED
@@ -0,0 +1,10 @@
1
+ require 'active_record'
2
+ # Classe Joue de la base de données
3
+ class Joue < ActiveRecord::Base
4
+ belongs_to :joueur
5
+ belongs_to :grille_db
6
+
7
+ def to_s
8
+ "<Joue> Id du joueur : #{joueurs_id}, Id de la grille : #{grille_dbs_id}, score : #{score}"
9
+ end
10
+ end
data/bin/db/Joueur.rb ADDED
@@ -0,0 +1,9 @@
1
+ require 'active_record'
2
+ # Classe Joueur de la base de données
3
+ class Joueur < ActiveRecord::Base
4
+ has_many :grille_dbs, through: :joue
5
+
6
+ def to_s
7
+ "<Joueur> pseudo : '#{pseudo}'"
8
+ end
9
+ end
@@ -0,0 +1,70 @@
1
+ require 'active_record'
2
+ ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: 'base.sqlite')
3
+
4
+ # Initialisation et création des tables
5
+ class Migration < ActiveRecord::Migration[4.2]
6
+ def change
7
+ if ActiveRecord::Base.connection.table_exists?(:joueurs)
8
+ drop_table :joueurs
9
+ end
10
+
11
+ if ActiveRecord::Base.connection.table_exists?(:grille_dbs)
12
+ drop_table :grille_dbs
13
+ end
14
+
15
+ if ActiveRecord::Base.connection.table_exists?(:difficultes)
16
+ drop_table :difficultes
17
+ end
18
+
19
+ if ActiveRecord::Base.connection.table_exists?(:modes)
20
+
21
+ drop_table :modes
22
+ end
23
+
24
+ if ActiveRecord::Base.connection.table_exists?(:joues)
25
+
26
+ drop_table :joues
27
+ end
28
+
29
+ if ActiveRecord::Base.connection.table_exists?(:phrases_aventures)
30
+
31
+ drop_table :phrases_aventures
32
+ end
33
+
34
+ create_table :joueurs do |t|
35
+ t.string :pseudo
36
+ end
37
+
38
+ create_table :difficultes do |t|
39
+ t.string :niveau
40
+ end
41
+
42
+ create_table :modes do |t|
43
+ t.string :mode_jeu
44
+ end
45
+
46
+ create_table :grille_dbs do |t|
47
+ t.belongs_to :difficultes
48
+ t.belongs_to :modes
49
+ t.integer :tempsMoyen
50
+ t.integer :tempsMax
51
+ t.integer :scoreMax
52
+ t.text :grilleSolution
53
+ end
54
+
55
+ create_table :joues do |t|
56
+ t.belongs_to :joueurs
57
+ t.belongs_to :grille_dbs
58
+ t.text :grilleSer
59
+ t.integer :score
60
+ t.boolean :terminee
61
+ end
62
+
63
+ create_table :phrases_aventures do |t|
64
+ t.string :texteBot
65
+ t.integer :idZoneScore
66
+ end
67
+ end
68
+ end
69
+
70
+ #Migration.migrate(:up)
data/bin/db/Mode.rb ADDED
@@ -0,0 +1,9 @@
1
+ require 'active_record'
2
+ # Classe Mode de la base de données
3
+ class Mode < ActiveRecord::Base
4
+ has_many :grille_dbs
5
+
6
+ def to_s
7
+ "<Mode> mode : '#{mode_jeu}'"
8
+ end
9
+ end
@@ -0,0 +1,4 @@
1
+ require 'active_record'
2
+ # Classe PhrasesAventure de la base de données
3
+ class PhrasesAventure < ActiveRecord::Base
4
+ end
@@ -0,0 +1,144 @@
1
+ #Test de base de données
2
+ require "rubygems"
3
+ require "active_record"
4
+ require_relative "Migration"
5
+ require_relative "Joue"
6
+ require_relative "Joueur"
7
+ require_relative "GrilleDb"
8
+ require_relative "Difficulte"
9
+ require_relative "Mode"
10
+ require_relative "PhrasesAventure"
11
+ require_relative "GestionBase"
12
+ require_relative "../src/SerGrille"
13
+
14
+ class TestBase
15
+ def TestBase.genererBase
16
+ # Réinitialise la base
17
+ Migration.migrate(:up)
18
+
19
+ fichiers = ["Facile", "Moyen", "Difficile"]
20
+
21
+ # Difficulte.create( :niveau => "Facile")
22
+ # Difficulte.create( :niveau => "Moyen")
23
+ # Difficulte.create( :niveau => "Difficile")
24
+ Mode.create( :mode_jeu => "Entrainement")
25
+ Mode.create( :mode_jeu => "Classe")
26
+ Mode.create( :mode_jeu => "Aventure")
27
+
28
+ # unJoueur = GestionBase.ajouterJoueur("corentin")
29
+ # unJoueur2 = GestionBase.ajouterJoueur("alexis")
30
+
31
+ # Ajoute toutes les grilles de différentes difficultés à la base
32
+ fichiers.each do |difficulte|
33
+ Difficulte.create( :niveau => difficulte )
34
+ SerGrille.transformeSerial2(difficulte)
35
+ tabGrille = SerGrille.deserialiseVide(difficulte)
36
+ idDifficulte = Difficulte.find_by_niveau(difficulte).id
37
+ puts "difficulté: #{idDifficulte}"
38
+ idMode = 1
39
+ puts "nb grilles: #{tabGrille.length}"
40
+ #puts tabGrille
41
+ tabGrille.each do |grille|
42
+ #puts "idMode: #{idMode}"
43
+ # puts "Grille: #{grille}, tabLien: "
44
+ x = grille.tabLien.length + (idDifficulte / 2.0) - 1
45
+ tempsMoyen = 3.6 * x * x - 34 * x + 120
46
+ tempsMax = 3 * tempsMoyen
47
+ scoreMax = tempsMax + 500 - (3 * (7 - idDifficulte))
48
+ # puts YAML.dump(grille)
49
+ GrilleDb.create(:grilleSolution => YAML.dump(grille), :difficultes_id => idDifficulte, :modes_id => idMode, :scoreMax => scoreMax, :tempsMoyen => tempsMoyen, :tempsMax => tempsMax)
50
+ idMode = (idMode % 3) + 1
51
+ end
52
+
53
+ end
54
+ TestBase.updateScore
55
+ #grille=GrilleDb.create(:grilleSolution => "1__5HHH", :niveau =>1, :mode_jeu => 3)
56
+ #GrilleDb.create(:grilleSolution => "1__5HHH", :niveau =>2, :mode_jeu => 3)
57
+ #GrilleDb.create(:grilleSolution => "1__5HHH", :niveau =>3, :mode_jeu => 3)
58
+
59
+ #grille4=GrilleDb.create(:grilleSolution => "1__5HHH", :niveau_id =>3, :mode_jeu => 2)
60
+ end
61
+
62
+ def TestBase.test2
63
+ # grille1 = GestionBase.recupGrilles(1).first
64
+ # Joue.create( :joueurs_id => 1, :grille_dbs_id => 1,:grilleSer => nil, :score => 2521)
65
+ # Joue.create( :joueurs_id => 1, :grille_dbs_id => 4,:grilleSer => grille1, :score => 3210)
66
+ # Joue.create( :joueurs_id => 1, :grille_dbs_id => 3,:grilleSer => "1__5___;", :score => 1)
67
+ # Joue.create( :joueurs_id => 1, :grille_dbs_id => 2,:grilleSer => "1__5___;", :score => 2)
68
+
69
+ # puts(GestionBase.recupJoueur("corentin"))
70
+ # puts "|#{GestionBase.recupJoueur("robin") == nil}|"
71
+ # puts(GestionBase.recupDifficulte(grille.id))
72
+ # puts(GestionBase.recupMode(grille4.id))
73
+ # puts(GestionBase.recupScoreTotal(1))
74
+ # puts(GestionBase.recupNbGrillesJouees(1))
75
+ # puts "Joueur 4 nb: #{GestionBase.recupNbGrillesJouees(4) == nil}"
76
+ idJoueur = 2
77
+ idDifficulte = 1
78
+ idMode = 1
79
+ GestionBase.recupGrilles(idJoueur, idDifficulte, idMode, 0, 12).each do |grilleDb|
80
+ #puts "#{grilleDb}"
81
+ #puts "#{grilleDb.grilleSolution}"
82
+ grille = YAML.load(grilleDb.grilleSolution)
83
+ #puts "#{grille}"
84
+ # grille.clicTriangle(grille.tabCase[0], 1)
85
+ puts "ID: #{grilleDb.id}, Hauteur: #{grille.hauteur}, largeur: #{grille.largeur}, classe: #{grille.class}, scoreMax: #{grilleDb.scoreMax}, tempsMoyen: #{grilleDb.tempsMoyen}"
86
+ # puts "Solution: Hauteur: #{grille.grilleRes.hauteur}, largeur: #{grille.grilleRes.largeur}, classe: #{grille.grilleRes.class}"
87
+ #puts "avant grilleDb ser: #{YAML.dump(grille).largeur}"
88
+ grilleDb.grilleSolution = YAML.dump(grille)
89
+ #puts "grilleDb ser: #{grilleDb.grilleSolution.largeur}"
90
+ GestionBase.changerScore(idJoueur, grilleDb, 200)
91
+
92
+ puts "Score de la grille #{grilleDb.id}: #{GestionBase.recupScore(idJoueur, grilleDb)}"
93
+ end
94
+
95
+ puts GestionBase.recupJoueurAll
96
+
97
+ puts "Score total de joueur 2 difficulté facile: #{GestionBase.recupScoreTotal(idJoueur, 1)}"
98
+ # puts "Grilles: "
99
+ # puts GestionBase.recupGrilles(1)
100
+ # puts "Nil?"
101
+ # puts "|#{GestionBase.recupGrilles(2) == nil}|"
102
+ # puts "|#{GestionBase.recupGrilles(3) == nil}|"
103
+ # puts (GestionBase.changeScore(1, 1, 50))
104
+ # puts(GestionBase.recupScoreTotal(1))
105
+ # puts (GestionBase.changeScore(2, 1, 650))
106
+ #tab=Joue.where([ "joueurs_id = ?", 1 ]).select {|joue| GestionBase.recupMode(GrilleDb.find(joue.grille_dbs_id).id)}# == "Classe"}
107
+ #puts "Tableau"
108
+ #puts tab
109
+ #puts "Somme"
110
+ #score = tab.select{ |joue| GestionBase.recupMode(GrilleDb.find(joue.grille_dbs_id).id).mode_jeu == "Classe"}
111
+ #p score
112
+ #puts score.inject(0) { |score, joue| score += joue.score }
113
+ end
114
+
115
+ def TestBase.updateScore
116
+ fichiers = ["Facile", "Moyen", "Difficile"]
117
+
118
+ puts "Attribution des scores maximum et temps moyen de résolution..."
119
+
120
+ GrilleDb.all.each do |grilleDb|
121
+ idDifficulte = grilleDb.difficultes_id
122
+ grille = YAML.load(grilleDb.grilleSolution)
123
+ #puts tabGrille
124
+ #puts "idMode: #{idMode}"
125
+ # puts "Grille: #{grille}, tabLien: "
126
+ x = grille.hauteur + (idDifficulte / 2.0) - 1
127
+ tempsMoyen = 3.6 * x * x - 34 * x + 120
128
+ tempsMax = 3 * tempsMoyen
129
+ scoreMax = tempsMax + 500 - (3 * (7 - idDifficulte))
130
+ #puts "x: #{x}, scoreMax: #{scoreMax}, tempsMoyen: #{tempsMoyen}"
131
+ grilleDb.update(scoreMax: scoreMax, tempsMoyen: tempsMoyen, tempsMax: tempsMax)
132
+ end
133
+ end
134
+
135
+ def TestBase.reinitialiser
136
+ Joue.delete_all
137
+ end
138
+
139
+ end
140
+
141
+ TestBase.genererBase
142
+ #TestBase.updateScore
143
+ #TestBase.reinitialiser
144
+ #puts GestionBase.recupGrilleAleatoire(2, 1, 2)
Binary file
data/bin/hashi ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ Dir.chdir(File.expand_path(File.dirname(__FILE__)) + "/src") do
4
+ require_relative "src/Hashi"
5
+ end