つらねの日記

プログラムの進捗やゲームをプレイした感想などを書き連ねる日記。

AOJ 2175 - Whist

Whist | Aizu Online Judge

問題

トランプのゲームを行う. 南北,東西のチームに別れて,13回カードを出しあい,勝利した回数が多いほうのチームの勝利.

  • 初めに指定された絵柄が一番強い
  • 前ターンに勝利した人が出す絵柄が次に強い.最初は西(贔屓だ)
  • 弱い 23456789TQKA 強い



はまったとこ

pairみたいに{a, b}ってtupleをつくろうとしたらだめだった.
はじめtupleの二重配列にしてたらRSORTでrbegin, rendがないからvectorに変えるはめになった.

AOJ 2049 - Headstrong Student

Headstrong Student | Aizu Online Judge

問題

循環小数の始まりと周期の長さを求めよ.




考え方

実際に割り算の筆算をしてみて,同じあまりがでたら,循環.
余りが小数点以下何桁目で表われたかをメモしておく.
二回目に出てきたときから最初にでてきた桁数の差分が周期.最初の桁数がスタート.

AOJ 2031 - Hyper Rock-Scissors-Paper

Hyper Rock-Scissors-Paper | Aizu Online Judge

問題

手の数が多いジャンケンがある.入力として出した手があたえられるので,勝者を出力せよ.勝者がいないときにはDraw.
勝者は誰にも負けずに勝利しているもののことをいう.




やったこと

このハイパージャンケンでは自分以外の全ての手との相性が定まっている.従って,被弾していない手が唯一の勝利であることが確定している(ただし同じ手のみのときはあいこ).
ので,被弾数をカウントして0である手が勝者.

terminal-notifier 使おうとしたら嵌った

github.com
osascript -e 'display notifaction' が動かないので,terminal-notifierを使おうとしたら同様に動かなかった.
script editorからのdisplay notifactionは動く.

環境

  • OS X El Capitan
  • iTerm2 2.1.4
  • tmux 2.1
  • zsh 5.1.1
  • terminal-notifier (1.6.3)
osascript
  • display notifaction するとなにもおこらない.
  • zsh には戻る
  • 他のコマンドとかは動く
terminal-notifier
  • 叩くとなにもおこらない
  • zsh にも戻らない

結論

tmux のせいだった.qiita.com

terminalで

$ brew install reattach-to-user-namespace

.tmux.confに

set-option -g default-command "reattach-to-user-namespace -l zsh"

で動くようになった.
tmux は一旦全部殺す必要がある.

clipboard共有まだやってなかったっていうのは内緒.

ruby ASCII-8BIT 文字化けする

現象

Rubyist Magazine - WEBrickでプロキシサーバを作って遊ぶ

  • 上の記事を参考にrubywebrick使ってproxy server作っていざbodyを出力したら凄いいきおいで文字化けする(もうtmuxのステータスバー?とか侵食する勢い).
  • res.body.encoding の値がASCII-8BITのとき化ける.
  • UTF-8の時は大丈夫
  • rubyにはreadline処置はほどこしてある.
  • force_encodingとか設定してもだめ
  • encode('utf-8')とかしようとするとinvalidとかでてできない.
  • 無効な文字列を無視してencodeするとなにもでない
  • とにかくやばい

結論

gzipだった.
qiita.com

OSX desktop の 配置が勝手に変わる

めも.

意図せずにdesktopの順序がかわることがあった.
Mission Control の設定のせいだった.

環境設定から"Mission Control"へ

f:id:turane_gaku:20151102091118p:plain

"最近の使用状況に基づいて操作スペースを自動的に並べ替える"のチェックを外す.

f:id:turane_gaku:20151102090930p:plain
以上.

AOJ 2024 - Blackjack

Blackjack | Aizu Online Judge

問題

ブラックジャックのディーラーをしてくれるプログラムを作れ。
ディーラーは手札の点数が

  • 16かそれ以下のとき
  • Aが11と数えられて17のとき

hitsし,それ以外はstandsする.





考え方

普通に人間がディーラーをやるときのように書く。
手札と山札を作り、最初にblackjack判定を行う。
また、以下の条件を満たすときヒットし続ける。

Hits if the score of the hand is 16 or less.
Also hits if the score of the hand is 17 and one of aces is counted as 11.