|
> 乱数生成関数random()を使って、スロットマシンのプログラムを作成する。
標準の C には、random() なんてありません。Unix にはありますが。
次のプログラムは random() を使っていないし、初期値をキーボードから
設定していないので、解答ではありません。単なるヒントです。
例によって、わざと変な書き方をしているので、悪しからず。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define d(x,y,z) (b[x]==b[y] && b[y]==b[z] && (n = b[x]))
int main(void)
{
int a, b[9], i, j, m, n;
srand(time(0));
printf("何枚持っていますか? ");
if (scanf("%d", &a) != 1 || a <= 0) return 1;
do {
printf("%d 枚持っています。何枚賭けますか? ", a);
if (scanf("%d", &m) != 1 || m <= 0) break;
if (m > a)
printf("%d 枚しか持っていません。\n", a);
else {
a -= m;
for (i = 0; i < 9; i++)
printf(" %d%c", b[i] = rand() % 9 + 1, " \n"[i%3==2]);
if (d(0,4,8) || d(2,4,6) || d(0,1,2) || d(3,4,5) || d(6,7,8)
|| d(0,3,6) || d(1,4,7) || d(2,5,8))
printf("アタリ。%d 枚獲得\n", m *= n), a += m;
else
printf("ハズレ\n");
}
} while (a);
return 0;
}
|