新居、契約してきました。

無事、部屋の契約を済ませてきました。

これから引っ越しで忙しくなります。

とりあえず、もう部屋には行っていいらしいので、明日、一度部屋に向かい必要な物を調べる予定です。

ついでだから、雪まつり会場行ってみようかな。

みのりんに会いたいし。

これからやること。

  • 退去の通知
  • 引っ越しの見積もり
  • 引っ越し先の下調べ
  • 郵便の転送

お昼に食べたラーメン。

あまり無駄遣いできねっす。

メルペイを使ってみた!

QRコード決済。

PayPayは便利でキャッシュバックサービスもあるから、よく利用しているのですが。

使ってみたきっかけは、メルカリの売上金があったので。

メルカリの売上金をそのままメルペイに使えるのです。

でも、決済方法にメルペイが使える店舗って、少ないんですよ。

圧倒的に。

それはPayPayやLinePayの比ではないです。

しかし、

メルペイがiDと連携できると聞いたらどうだろうか?

メルペイのアカウントとiDを紐付けることによって、iD決済でメルペイでの支払いができるのです。

やり方は簡単で、メルカリアプリの設定でiDと連携設定を行えば良い。

これは、スマホがFelica(いわゆる、おサイフケータイ)に対応していれば使用できます。

iDで決済ができると言うことは、ドコモが築いたインフラがそのまま使用できるので、使用できる店舗が圧倒的に増えます。

唯一の欠点と言えば、

メルペイに入金したら、現金化に時間がかかる。

これはメルカリの売上金と同じ。

これが解決できたらなぁ。(切実)

今まで家計簿が続かなかった人こそ、Line家計簿を試して頂きたい。

お金を管理して無駄遣いしないようにするためには、家計簿を付けるのが一番とわかっているのだけれど、データの入力がめんどくさいのよ。

オイラも、何度か家計簿を付けようとしたけれども、結局途中で挫折した。

我々も忙しい日々の中生きているわけだから、その中で家計簿のデータ入力というめんどくさい作業に時間をかけるのは、難しいと思うんです。

でも、Line家計簿を使ったら、以外とこれが続くんです。

理由は簡単で、レシートのデータ入力の手間を省く工夫がされているんです。

例えば、レシートをカメラで読み取って、データの読み取り。

これがね、非常に便利なのよ。

昔は、アプリからカメラ撮影して読み込んでいたけれど、最新のアップデートかしら、レシートにカメラを向けるだけで、スキャナーの役割を果たしてくれて、読み込んでくれます。

その識字率も非常に高い。我々がやることと言えば、数字が正しいかの確認だけ。

金融機関の口座と連携させれば、そのデータも読み取って、反映してくれます。

これも以外と便利。

あとは電子マネーにも対応してくれれば言うこと無いでしょう。

無駄遣いを防ぐには、常に、どこにお金がいくらあるか、を認識する必要があると思うんです。

毎日家計簿をつける習慣を付けて、日々、財布の中と口座の残高を認識すれば、無駄遣いも減ると思うんです。

皆さんも是非Line家計簿で家計管理をやってみて欲しいです。

オススメ。

LINE家計簿

LINE家計簿

LINE Pay Corporation無料posted withアプリーチ

【C#】【数独】仮置きロジックを適用する条件を考える。

前回までの状況はこちら。

最新ソースはこちら(gitHub)

https://github.com/takishita2nd/sudoku

さて、いよいよ仮置きロジックの実装にとりかかります。

そのためには、仮置きロジックを行う条件を考えましょう。

現在まで実装しているロジックでのみで、ある程度はマスを埋めることができますので、そのロジックでも埋まらなかった場合、と考えるのが妥当でしょう。

その条件とは、周期処理の前と後で、確定しているマスの数が同じならば、と判断するのが一番簡単だと思います。

それでは実装します。

まずは、確定しているマスを数えるメソッドを作成します。

        private int countInputedNumber()
        {
            int ret = 0;
            for(int i = 0; i < 9; i++)
            {
                for(int j = 0; j < 9; j++)
                {
                    if(_square[i, j].isConfirmed())
                    {
                        ret++;
                    }
                }
            }
            return ret;
        }

特に難しいところはありませんね。

これを、周期処理に組み込みます。

        private int now_count = 0;
        private int prev_coount = 0;

        public void run()
        {
            bool roop = true;
            while (roop)
            {
                for(int row = 0; row < 9; row++)
                {
                    for(int col = 0; col < 9; col++)
                    {
                        if(_square[row,col].isConfirmed() == false)
                        {
                            Candidate candidate = new Candidate();
                            searchRowLine(row, candidate);
                            searchColLine(col, candidate);
                            search9Area(row, col, candidate);
                            _square[row, col].checkCandidate(candidate);
                        }
                    }
                }
                searchNumber();

                prev_coount = now_count;
                now_count = countInputedNumber();

                if(prev_coount == now_count)
                {
                    //debug
                    Console.WriteLine("ここで仮置きロジックを適用する {0} {1}", prev_coount, now_count);
                    return;
                }

                roop = !checkEnd();
                FileAccess.Output(_square);
            }
        }

こんな感じでどうでしょうか。

prev_coountが周期前の確定したマス数、now_countが周期後の確定したマス数です。

確定したマス数を数える前に前回のマス数を保存し、それと、現周期でのマス数を比較します。

これが同じならば、仮置きロジックを適用する(debug出力を行っているところ)という動きになります。

次回は、このdebugの箇所を考えていきます。