Esempio n. 1
0
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="navigationService"></param>
        public MainPageViewModel(INavigationService navigationService)
            : base(navigationService)
        {
            // タイトル
            Title = "じゃんけんアプリ";

            // 勝敗数
            WinCount.Value  = "0";
            DrawCount.Value = "0";
            LoseCount.Value = "0";

            // 自分の手ボタンの画像
            ButtonImageGu.Value    = ImageSource.FromResource("JankenApp.Images.icon_gu.png");
            ButtonImageChoki.Value = ImageSource.FromResource("JankenApp.Images.icon_choki.png");
            ButtonImagePa.Value    = ImageSource.FromResource("JankenApp.Images.icon_pa.png");

            // 自分の手ボタンのパラメータ
            ButtonParameterGu.Value    = HAND_GU;
            ButtonParameterChoki.Value = HAND_CHOKI;
            ButtonParameterPa.Value    = HAND_PA;

            // コンピュータの手ボタンの処理
            CommandStart.Subscribe(_ =>
            {
                if (!isRunning)
                {
                    Result.Value = string.Empty;    // 結果表示を消す
                    isRunning    = true;            // コンピュータの手をぐるぐる回す
                }
            });

            // 自分の手ボタンの処理
            CommandSelect.Subscribe <int>(x =>
            {
                if (isRunning)
                {
                    isRunning = false;      // コンピュータの手をぐるぐる回すのを止める
                    Thread.Sleep(INTERVAL); // ぐるぐるが止まるまでの調整時間
                    Judge(x);               // じゃんけんの結果を判定・表示する
                }
            });

            // コンピュータの手をぐるぐる回すのを非同期処理で実行
            Task.Run(() => ShuffleHand());
        }