牛歩戦術

牛の歩みより遅いかもしれないコードの削り量。
だけど着実に減らして行けてるのがなんとなく嬉しい今日この頃です。

Smileys Triangle

そろそろスマイリーさんを眺めるのはお腹いっぱいになりつつあるけど頑張ってます。
やっと二重ループの解消とputs一発が達成できた!ばんざーい。
でも三項演算子が入ってコードは読み辛くなった感じがある。4B減って78B。

char c[99] = ":-)";

main(i)
{
  for(; i < 33; i++)
    puts(i < 2 ? ":\n:-\n:-)" : strcat(c, "))"));
}

tennis

プレイヤーの数字、1か2が入力から与えられて、与えられた方のポイントを増やしていき、7点先に取った方が勝ち。
これまた三項演算子だらけの非常に読み辛いコードが出来上がった。
入力を受け取る方法を当初のscanfを使うものから、getsに変えて167B。
printfが2回書いてあるのと、三項演算子の数が多すぎるのを減らせればいいんだけどな。
プレイヤー3とか4が出てきたら成り立たないコードだけど、テニスって2人でやるからいいよね!
何・・・ダブルス・・・だと・・・?

o, t;

main(i)
{
  for(; gets(&i); o != t ? printf("Player%d %s %d - %d\n",
    o > t ? 1 : 2, o > 6 || t > 6 ? "wins the set" : "leads",
    o > t ? o : t, o < t ? o : t) : printf("Set is tied at %d\n",o)
  )
    i % 48 < 2 ? o++ : t++;
}