Deal cards for FreeCell: Difference between revisions
Content added Content deleted
No edit summary |
(→{{header|C}}: colors; just one array) |
||
Line 32:
#include <stdlib.h>
#include <locale.h>
wchar_t s_suits[] = L"♣♦♥♠", s_nums[] = L"A23456789TJQK";
#define RMAX32 ((1U << 31) - 1)
#define RMAX ((1U << 15) - 1)
static int seed = 1;
int rnd(void) { return (seed = (seed * 214013 + 2531011) & RMAX32) >> 16; }
void srnd(int x) { seed = x; }
▲void show(void)
{
int i;
for (i = 0; i < 52;
printf(" \033[%
s_suits[
}
}
void deal(int s, int *t)
{
int i, j
srnd(s);▼
for (i = 0; i < 52; i++) t[i] = i;▼
▲ for (i = 0; i < 52; i++) t[i] = 51 - i;
▲ srnd(s);
for (
}
printf("Deal %d\n", s);▼
show();▼
}
int main(int c, char **v)
{
int s, card[52];
if (c < 2 || (s = atoi(v[1])) <= 0) s = 11982;▼
setlocale(LC_ALL, "");
deal(s, card);▼
▲ if (c < 2 || (s = atoi(v[1])) <= 0) s = 11982;
▲ show(card);
▲ deal(s);
return 0;
}</lang>
|