パスワードを忘れた? アカウント作成
452668 journal

pascalの日記: プログラム。

日記 by pascal
こんな書き方していいのかどうかは知らないけど、VC++6.0とgcc2.95では通った。

void srand(unsigned);unsigned long time(unsigned long*);char*gets(char*),a[58],
u[99],h,b,i;int printf(const char*,...),rand(),c;main(w){for(srand(time(0));!h;
h=121-*gets(u)){for(i=57;i--;)i/4?c=a[i]=0:a[a[i]=48+rand()%10]++&&i++;for(;h<4
;w?++c,h/4||printf("hit=%d,blow=%d\n",h,b):0){u[3]=b=!printf("4桁入力:"),w=3[
gets(u)];for(h=4;--h;)for(i=h;i--;w*=u[i]-u[h]);for(i=4;i--;)u[i]-a[i]?b+=!!a[u
[i]]:h++;}printf("%d手で正解 もう1回?(y/n):",c);}return 0;}

真面目に縮めてみると、こんな感じ。
乱数を使うために<stdlib.h>を読むのはもったいないので、ロジスティック写像を使ってそれっぽい値が出るようにしてみた。偏りはあるかもしれないけど、気づく前に飽きるでしょw
初期値がいつも同じだといかんから、<time.h>は読んでみる。
#include <stdio.h>
#include <time.h>
char a[58],u[99],h,b,i,c;double r;main(w){for(;!h;h=*gets(u)-121){for(i=57;i--;
i/4?c=a[i]=0:a[a[i]=48+(int)r]++&&i++)for(r=h?r:1./time(0),h=99;h--;)r*=4-.4*r;
for(;h<4;w?c++,h/4||printf("hit=%d,blow=%d\n",h,b):0){u[3]=b=!printf("4桁入力\
:"),w=gets(u)[3];for(h=4;--h;)for(i=h;i--;w*=u[i]-u[h]);for(i=4;i--;)u[i]-a[i]
?b+=!!a[u[i]]:h++;}printf("%d手で正解 もう1回?(y/n):",c);}return 0;}

ヒットアンドブローってゲームです。ローカルルールとかあるみたいだから少々違うかも。例によって七行プログラミングスレで出たお題です。
ブローの綴り、元のソースのままだけど違う気がする。
でも、正しいつづりも分からない罠。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

アレゲは一日にしてならず -- アレゲ見習い

読み込み中...