PythonTips
色々とメモしておく
便利機能
再帰呼び出しの回数の上限値を設定
import sys sys.setrecursionlimit(1000000) # 最大数が1000000に
間違えやすい内容
dequeでスタックとキューの使い分け
deque.append() # 要素の追加 deque.pop() #LIFO : スタック deque.popleft() # FIFO : キュー
2次元配列の初期化
2d_array = [[0]*3]*5 # こうやると他の行と共有してしまう 2d_array = [[0 for i in range(3)] for j in range(5)] #こういう形で宣言する
高速化(最適化)
appendするときは、listではなくtapleを使う
q = deque.append((x,y)) # 早い q = deque.append([x,y]) # 遅い
heapq
データの追加や最大/最小を常に取りたいデータ構造で最速
AtCoderでお勉強
最近、AtCoderでプログラミングをもっかい勉強するのにハマってる。
というのも転職してからマネージメント寄りから、エンジニア業務をすることになって色々な知識不足に悩まされているからだ。CS系の大学院まで出たはずなんだけど(汗
かといって普通に本を読んだりしているだけだと面白くない...。
ということで競技プログラミングのコンテストに参加しながら、業務で使うPython3を勉強している。(言語は選べます)
競技プログラミング(AtCoder)を使って学ぶメリットは、
- コンテスト参加でスコアが出るので、自分のレベルや上達も確認できてモチベーションになる
- 問題の解説や他の人の回答も見ることができるので、学習しやすい
がありそう
ちなみに、AtCoder に関しては問題の解説などネット上に資料が豊富にある。
例えば、
- https://qiita.com/KoyanagiHitoshi/items/32dc42d8c5ee75339e54
- https://qiita.com/drken/items/e77685614f3c6bf86f44
など
今後の予定としては、解説を読みながら問題に慣れて、さっさと緑になりたい(願望)。
ROS環境で最新のGazeboを取得する
ROS環境でGazeboを動かしたいという人は多いと思いますが、ROS環境の導入には公式ページのページを参考にコマンドを使ってインストールすることが多いと思います。
~$ sudo apt-get install ros-kinetic-desktop-full
しかし、この状態でインストールするとGazeboのバージョンは、7.0になってしまい、修正されたバージョン(例えば7.11など)が選択できません。
そこで、上記のapt-getを行う前に下記のコマンドを実行してGazeboのリストを更新します。
~$ sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list' ~$ wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add - ~$ sudo apt-get update
この状態でrosのインストールを行えば、最新版がインストールできます。
もし、7.0が既にインストールされている場合には、上記コマンド実行後に
~$ sudo apt-get purge ros-kinetic-* ~$ sudo apt-get install ros-kinetic-desktop-full
とすることで更新可能です。
Gazebo9の利用について
Gazebo自身の最新はGazebo9.0ですが、ros-kineticのサポートが7.XXまでとなっています。
次のrosの長期サポート版が出るまではGazebo7を使っていたほうが良さそうです。
参考資料
ゲームで使えるアイコン素材の集め方
最近はスマホゲーム開発を再開しているScnshです。
スマホゲームの作成にあたって、一つ問題となるのが素材をどうするかです。
私の作成しているゲームは、カードゲームのためカードの絵柄とアイコンぐらいしか素材を使いません。
UnityにはAssetStoreという素材を有償・無償色々とありますが、UnityEngineにインポートして利用することが可能です。
例えば、以下のアセットが最初に作り始めるときには便利かと思います。
AssetStore上に存在するということで、Unityで使うときには気兼ねなく使えます。
しかし、欲しいアイコンがない場合には アイコン素材を公開しているサイトの中で、探すことも時には必要になります。
そこで、サイトの中でも特に権利関係で自由度が高いものをピックアップして紹介したいと思います。
icon rainbowicon-rainbow.com
このサイトのアイコンは種類が豊富にもかかわらずに、
- 会員登録などの必要もない
- 商用利用可能
- さらに商用利用時の権利等の記載も必要ない
ということでかなり自由に使うことができます。
ただし利用したアプリ等がリリースされた際には連絡してほしいとのことですので、私も無事にリリースできた際には連絡するつもりです。
他にも色々とあるかと思いますが、見つけ次第、追記していきます。
スマホゲームの作成
最近、以前作成していたUnityゲームのiOS版の開発を再開しています。
ちなみに、Android版は既に作成してリリースしています。
ドイツの有名なカードゲームをアプリ化したものになります。
色々とグレーかもしれませんが、今のところは公開停止などにはなっていません。
(無料だからか?)
iOS版では基本ルールはそのままにアレンジしてリリースする予定です。
使っているUnityアセット紹介
技術ブログということで情報紹介も少し。
DOTweenと呼ばれるSpriteのTween生成をアシストするアセットです。
とても有名なアセットなので、今更説明も必要ないかと思いますが2Dのカードゲーム作成に置いてはかなり有用です。
有料版もありますが、無料版でも基本的な動きが使えるので私の場合は事足りています。
今年こそブログを書く
あけましておめでとうございます。
書こうと思っていて1年以上ほったらかしていたブログですが、そろそろ書き始めようと思います。
技術的な内容に焦点を当てようと思ってますが、気合を入れて書くと続かないので、小さい内容でもどんどん投稿していこうと思います。
今年もよろしくお願いします。