多分これで実装必須部分はできたはず。
デバッグは完全ではないので実際やってみてから。