Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.72 KB | None | 0 0
  1. //Steven Lay
  2. //19/04/2017
  3. //Youchew is a program that takes the input of 6 dice rolls and calculates a score using a specific criteria, selecting the best score it possibly can and printing it out
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #define ROLLS 5
  8.  
  9. int main(void){
  10. int diceRolls[ROLLS];
  11. int i = 0;
  12. int j = 0;
  13. while(i < ROLLS){
  14. scanf("%d", &diceRolls[i]);
  15. if((diceRolls[i]) < 1 || (diceRolls[i]) > 9){
  16. printf("Invalid input: 5 integers 1..9 must be supplied.\n");
  17. return EXIT_FAILURE;
  18. }
  19. else{
  20. i++;
  21. }
  22. }
  23. i = 0;
  24. //Sum
  25. int sum = 0;
  26. while(i < ROLLS){
  27. printf("%d ", diceRolls[i]);
  28. i++;
  29. }
  30. i = 0;
  31. while(i < ROLLS){
  32. sum = sum + diceRolls[i];
  33. i++;
  34. }
  35. printf("You Chew score is %d: sum.\n", sum);
  36. //Sameface
  37. int k = 0;
  38. int sameFace = 0;
  39. int face = 0;
  40. int face2 = 0;
  41. i = 0;
  42. j = 0;
  43. while(j < ROLLS){
  44. if(diceRolls[j] == diceRolls[i]){
  45. i++;
  46. j++;
  47. }
  48. }
  49. i = 0;
  50. j = 0;
  51. while(i < ROLLS){
  52. j = k;
  53. while(j < ROLLS){
  54. if(j == 4){
  55. j++;
  56. }
  57. else if(diceRolls[i] == diceRolls[j+1]){
  58. sameFace++;
  59. j++;
  60. face = diceRolls[i];
  61. }
  62. else{
  63. j++;
  64. }
  65. }
  66. if(sameFace == 0){
  67. i++;
  68. k++;
  69. }
  70. else{
  71. i = 5;
  72. j = 5;
  73. }
  74. }
  75. //For sameFace, another while loop is used for pairs of pairs
  76. if(sameFace == 1){
  77. i = 0;
  78. j = 0;
  79. k = 0;
  80. sameFace = 0;
  81. while(i < ROLLS){
  82. j = k;
  83. while(j < ROLLS){
  84. if(j == 4){
  85. j++;
  86. }
  87. else if(diceRolls[i] == diceRolls[j+1]){
  88. if(diceRolls[i] != face){
  89. if(i == 3){
  90. sameFace++;
  91. j++;
  92. face2 = diceRolls[i];
  93. //The following is used to end the while loops
  94. i = i + 2;
  95. j = j + 2;
  96. }
  97. else{
  98. sameFace++;
  99. j++;
  100. face2 = diceRolls[i];
  101. }
  102. }
  103. else{
  104. j++;
  105. }
  106. }
  107. else{
  108. j++;
  109. }
  110. }
  111. if(sameFace == 0){
  112. i++;
  113. k++;
  114. }
  115. else{
  116. i++;
  117. k++;
  118. }
  119. }
  120. if(sameFace == 0){
  121. sameFace = (14 + (2 * face));
  122. printf("You Chew score is %d: two %d's.\n", sameFace, face);
  123. }
  124. else if(sameFace == 1){
  125. sameFace = (13 + 2 * face + 2 * face2);
  126. printf("You Chew score is %d: pair of %d's and a pair of %d's.\n", sameFace, face, face2);
  127. }
  128. else{
  129. sameFace = (15 + 3 * face2 + 2 * face);
  130. printf("You Chew score is %d: three %d's and a pair of %d's.\n", sameFace, face2, face);
  131. }
  132. }
  133. //Another while loop will be needed here in order to check for a trio and a pair
  134. else if(sameFace == 2){
  135. i = 0;
  136. j = 0;
  137. if((diceRolls[i] == diceRolls[j+1] && diceRolls[i] == diceRolls[j+2]) && (diceRolls[i+3] == diceRolls[j+4])){
  138. face = diceRolls[i];
  139. face2 = diceRolls[i+3];
  140. sameFace = (15 + 3 * face + 2 * face2);
  141. printf("You Chew score is %d: three %d's and a pair of %d's.\n", sameFace, face, face2);
  142. }
  143. else{
  144. sameFace = (15 + (3 * face));
  145. printf("You Chew score is %d: three %d's.\n", sameFace, face);
  146. }
  147. }
  148. //For four of a kind's
  149. else if(sameFace == 3){
  150. sameFace = (16 + (4* face));
  151. printf("You Chew score is %d: four %d's.\n", sameFace, face);
  152. }
  153. //For five of a kind's
  154. else if(sameFace == 4){
  155. sameFace = (17 + (5 * face));
  156. printf("You Chew score is %d: five %d's.\n", sameFace, face);
  157. }
  158. //Sequential faces
  159. //This first while loop identifies the smallest number in the set
  160. int counter = 0;
  161. int sequence = 0;
  162. int smallest = 0;
  163. i = 0;
  164. j = 0;
  165. while(j < ROLLS){
  166. if(diceRolls[i] < diceRolls[j]){
  167. sequence = diceRolls[i];
  168. j++;
  169. }
  170. else if(diceRolls[i] == diceRolls[j]){
  171. sequence = diceRolls[i];
  172. j++;
  173. }
  174. else{
  175. i++;
  176. }
  177. }
  178. printf("%d", sequence);
  179. smallest = sequence;
  180. //This second while loop checks all other integers in the set
  181. i = 0;
  182. j = 0;
  183. diceRolls[j] = 0;
  184. while (i < ROLLS){
  185. if(diceRolls[i] == sequence + 1){
  186. if(diceRolls[j] == 0){
  187. diceRolls[j] = sequence;
  188. counter++;
  189. sequence = diceRolls[i];
  190. i = 0;
  191. }
  192. else{
  193. counter++;
  194. sequence = diceRolls[i];
  195. j++;
  196. diceRolls[j] = sequence;
  197. i = 0;
  198. }
  199. }
  200. else{
  201. i++;
  202. }
  203. }
  204. j = 0;
  205. printf("counter is %d, %d, %d", counter, diceRolls[j], diceRolls[j+4]);
  206. int sequenceResult = 0;
  207. if(counter == 3){
  208. j = 0;
  209. sequenceResult = (25 + diceRolls[j+3]);
  210. printf("You Chew score is %d: short sequence %d..%d.",sequenceResult ,diceRolls[j] ,diceRolls[j+3]);
  211. }
  212. else if(counter == 4){
  213. j = 0;
  214. sequenceResult = (37 + diceRolls[j+4]);
  215. printf("You Chew score is %d: long sequence %d..%d.",sequenceResult ,diceRolls[j] ,diceRolls[j+4]);
  216. }
  217. return 0;
  218. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement