無事、部屋の契約を済ませてきました。
これから引っ越しで忙しくなります。
とりあえず、もう部屋には行っていいらしいので、明日、一度部屋に向かい必要な物を調べる予定です。
ついでだから、雪まつり会場行ってみようかな。
みのりんに会いたいし。
これからやること。
- 退去の通知
- 引っ越しの見積もり
- 引っ越し先の下調べ
- 郵便の転送
お昼に食べたラーメン。
あまり無駄遣いできねっす。
QRコード決済。
PayPayは便利でキャッシュバックサービスもあるから、よく利用しているのですが。
使ってみたきっかけは、メルカリの売上金があったので。
メルカリの売上金をそのままメルペイに使えるのです。
でも、決済方法にメルペイが使える店舗って、少ないんですよ。
圧倒的に。
それはPayPayやLinePayの比ではないです。
しかし、
メルペイがiDと連携できると聞いたらどうだろうか?
メルペイのアカウントとiDを紐付けることによって、iD決済でメルペイでの支払いができるのです。
やり方は簡単で、メルカリアプリの設定でiDと連携設定を行えば良い。
これは、スマホがFelica(いわゆる、おサイフケータイ)に対応していれば使用できます。
iDで決済ができると言うことは、ドコモが築いたインフラがそのまま使用できるので、使用できる店舗が圧倒的に増えます。
唯一の欠点と言えば、
メルペイに入金したら、現金化に時間がかかる。
これはメルカリの売上金と同じ。
これが解決できたらなぁ。(切実)
お金を管理して無駄遣いしないようにするためには、家計簿を付けるのが一番とわかっているのだけれど、データの入力がめんどくさいのよ。
オイラも、何度か家計簿を付けようとしたけれども、結局途中で挫折した。
我々も忙しい日々の中生きているわけだから、その中で家計簿のデータ入力というめんどくさい作業に時間をかけるのは、難しいと思うんです。
でも、Line家計簿を使ったら、以外とこれが続くんです。
理由は簡単で、レシートのデータ入力の手間を省く工夫がされているんです。
例えば、レシートをカメラで読み取って、データの読み取り。
これがね、非常に便利なのよ。
昔は、アプリからカメラ撮影して読み込んでいたけれど、最新のアップデートかしら、レシートにカメラを向けるだけで、スキャナーの役割を果たしてくれて、読み込んでくれます。
その識字率も非常に高い。我々がやることと言えば、数字が正しいかの確認だけ。
金融機関の口座と連携させれば、そのデータも読み取って、反映してくれます。
これも以外と便利。
あとは電子マネーにも対応してくれれば言うこと無いでしょう。
無駄遣いを防ぐには、常に、どこにお金がいくらあるか、を認識する必要があると思うんです。
毎日家計簿をつける習慣を付けて、日々、財布の中と口座の残高を認識すれば、無駄遣いも減ると思うんです。
皆さんも是非Line家計簿で家計管理をやってみて欲しいです。
オススメ。
LINE家計簿
LINE Pay Corporation無料posted withアプリーチ
前回までの状況はこちら。
最新ソースはこちら(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の箇所を考えていきます。