hashi-ruby 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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