Googleに行きたい大学生

情報系とは無縁の大学生が就職難易度のトップともいわれてる夢の会社に入社できるか挑戦

html,cssを学ぶ、幅優先探索で初めてqueue使った

今日は昨日内容が薄かった分濃くなるぞ!

 


まずUnityのプロジェクトから行こうかな

 

デザイン変更

入力画面

f:id:ProgrammingFromScratch:20200126010600p:plain

結果画面その1 handにしかカードがない場合

f:id:ProgrammingFromScratch:20200126010603p:plain

結果画面その2 boardにもカードがある場合

f:id:ProgrammingFromScratch:20200126010732p:plain

適当に切ったら端切れた。

 

フォントをすべて統一した。

 

中身も大幅に変更した点があって、それは実機テストを行ったときに1分半近くかかってた処理を0.1秒以下にするためのもの。

 

問題だったのはhandにしかカードがないとき、どの役になるかを計算するのに200万回計算をしてた。

いや、カードを5枚選んだ時それがどの役になるかとかすべて計算してるので1セットにつき20-50くらい計算してるのかな。

すると1億回ぐらい計算することになる。

そりゃ遅いわけや。

 

 

それをいかに早くするか考えてたんやけど、まず最初配られた2枚は52C2通りしかない。

いや、もっと少ない。ポーカーにおいては

2ハート 3スペードって手と

2ダイヤモンド 3ハートは同じものとして扱っていい

(最初に配られた時の手札に関して、同じものとしてみていいってこと)

 

つまり手札にもてる番号の組み合わせと、それぞれが同じ記号なのかそうでないのかを考えればよい。つまり169通りしかない。

 

じゃあ、その169通りをあらかじめ計算して、どっかに保存しておけばいいやんって思った。C#で配列を宣言するとき、

int numbers [, , ,] = new int[, , , ] {{{ , , , },{ , , , }},{ ......

みたいな形にしたらいいからそういう出力になるようにやらした。

結果は

f:id:ProgrammingFromScratch:20200126011828p:plain

↑↑↑↑↑↑↑↑↑↑↑↑下のスクロールバーに注目。↑↑↑↑↑↑↑↑↑↑↑↑

1時間計算してもらいました。パソコンありがとう。お疲れ様。

 

これをscriptにはっ付けたから、今はこのデータを呼び出すだけ。

マジで一瞬。素晴らしい。

ゲームとかダウンロードしたら、追加のダウンロードをして処理を早くしますか、みたいな感じの発想かな。

 

これをうまくやるのに結構時間がかかった。

うまく行ったのでおっけい。

 

 

長くなったけど、次にインターンについて

 

あるインターンに申し込んだんだが、そこは

未経験者は勉強するものを与えるから200-400時間ぐらいで終わるであろう物をやってきてね。テストもするよ。

ってかんじ。

これはいいチャンスだと思い、始めた。

html,css,ruby,VScode,Javascript,Railsどれも全く触れたことがないので、成長しまくれるやんって思った。

早速html,cssの範囲をどっとインストールで勉強。これが全体の5パーセントくらいの時間かかるらしいけど、2時間で終わった。100時間で終わるかな?

f:id:ProgrammingFromScratch:20200126012519p:plain

これが作ったもの、初めてのhtmlの範囲をやったことある人は懐かしいかもしれない。

f:id:ProgrammingFromScratch:20200126012556p:plain

結構簡単で、調べながらならこのブログくらいのものは作れるなって思った。

そういえばなんかはてなブログでもそういうなんいじれたよな。時間があったらのぞいてみよう。

ドットインストールは動画が短くていいね。すごく進んでる気分になる。

 

 

次はAtcoderについて

今はABCの昔の問題を解いてるんやけど、幅優先探索 breadth first searchやったっけ。

の問題がCにあったので、手を出してみた。

蟻本の最初のほうに載ってたしできるかなって。

 

やっぱりインプットだけじゃできない。本を見ながら解いた。

なるほどね。問題演習できるインターネットの教材って特にプログラミングではいいと思う。紙じゃ難しい。

 

そこで思ったのが 普通x,yのxって左右の値でyが上下やん?

2次元配列で vector[y][x]やったら正しく出るけど、なんかいつもx,yって受験のt子機から使ってるから少しこんがらがった。

x,y使わずに解いたほうがいいのかな。自分だけなのかな。

 

 

 

今日は

Atcoder10問、Unity2時間、ドットインストール2時間、蟻本1時間、VScodeの基本30分をした。

 

明日は

Atcoder10問、Unity1時間、インターンの勉強1時間、蟻本1時間、が最低目標。