Advertisement
Guest User

Untitled

a guest
Nov 27th, 2014
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. #include <time.h>
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4.  
  5. int main(void) {
  6. srand(time(NULL));
  7. int r = rand() %13; //é número de cartas de cada naipe
  8. printf("Número sorteado %d", r);
  9. return 0;
  10. }
  11.  
  12. int rand_int(int n) {
  13. int limit = RAND_MAX - RAND_MAX % n;
  14. int rnd;
  15.  
  16. do {
  17. rnd = rand();
  18. } while (rnd >= limit);
  19. return rnd % n;
  20. }
  21.  
  22. void shuffle(int *array, int n) {
  23. int i, j, tmp;
  24.  
  25. for (i = n - 1; i > 0; i--) {
  26. j = rand_int(i + 1);
  27. tmp = array[j];
  28. array[j] = array[i];
  29. array[i] = tmp;
  30. }
  31. }
  32.  
  33. #include <stdio.h>
  34. #include <stdlib.h>
  35. #include <time.h>
  36.  
  37. #define CARDS 52
  38. #define DRAW 5
  39.  
  40. void showcard(int card);
  41.  
  42. int main() {
  43. int deck[CARDS];
  44. int x,c;
  45.  
  46. /* inicializa o deck */
  47. for(x=0;x<CARDS;x++)
  48. deck[x] = 0;
  49.  
  50. srand((unsigned)time(NULL));
  51. for(x=0;x<DRAW;x++) {
  52. for(;;) { /* loop até uma carta válida seja puxada */
  53.  
  54. c = rand() % CARDS; /* gera a carta randomicamente */
  55. if(deck[c] == 0) { /* a carta já foi puxada? */
  56. deck[c] = 1; /* determinada que a carta foi puxada */
  57. showcard(c); /* mostra carta */
  58. break; /* encerra loop */
  59. }
  60. } /* repete até uma carta ser válida */
  61. }
  62. return(0);
  63. }
  64.  
  65. void showcard(int card) {
  66. char *suit[4] = { "Spades", "Hearts", "Clubs", "Diamonds" };
  67.  
  68. switch(card % 13) {
  69. case 0:
  70. printf("%2s","A");
  71. break;
  72. case 10:
  73. printf("%2s","J");
  74. break;
  75. case 11:
  76. printf("%2s","Q");
  77. break;
  78. case 12:
  79. printf("%2s","K");
  80. break;
  81. default:
  82. printf("%2d",card%13+1);
  83. }
  84. printf(" of %sn",suit[card/13]);
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement