ラベル Android の投稿を表示しています。 すべての投稿を表示
ラベル Android の投稿を表示しています。 すべての投稿を表示

2017年12月9日土曜日

アプリ公開の準備。

試しにどれくらいの作業が必要なのか実験。
Googledrive使用のためにパーミッション要求してるのでプライバシーポリシー準備しろとか色々な問題が。

blogのページでもよさげなので簡単にかいてみて、アプリ内でも警告出すようにしてとりあえずあとは公開ボタン押せば良いだけ?

なかなか勇気がでないですなー。そもそも公開ページには自分の実データ晒してたり中々踏ん切りつかないですね。

2017年12月2日土曜日

勝率カウンタ進捗

というわけで、月別表示実装してみました。

スクショだと細かくて見にくいかな。
簡単な細工でこんなこと出来るのは楽しいですね。

ついでにGoogleDriveからのダウンロードの件について。
アップロードは以前共有のシステム使って実現しましたが、こっちはゴリゴリ書かないとでした。
といってもあちこちからサンプルコード引っ張ってきただけだったり。
困ったのはGoogleDrive上で同じファイル名のものが複数あると区別がつかない点。
仕方なくタイムスタンプで区別するか、と思ったらタイムゾーンの変更の仕方が見つからない。
リファレンスにもそれ系の記述が見当たらないので存在しないのかな?
もうちょっと調べてみよう。

あとはネット使うのでエラー処理いろいろ考えないといけないのが面倒。
やっぱ完成はしない気がする・・・。

2017年11月25日土曜日

Kotolin in Android アプリ

Android版勝率カウンタですが、前にも言った通りKotlinという言語で書いてます。
便利だなー、と思うところをつらつらと書いていきます。

ソース見ながら適当に書くので順番は適当です。

EventListnerが簡単に書ける。
findViewById<Button>(R.id.buttonKill).setOnClickListener{
    kill++
    updateText() 
}
Killボタン押したときの動作ですね。
簡単な動作をシンプルに書けます。

when:場合分けがわかりやすく書ける
nowArp -=when (nowArp){
    in 0..99->0
    in 100..299->5
    in 300..699->6
    in 700..1199->10
    in 1200..1999->15
    else ->20
負けた時のARPの変化です。
現在のランクによって減るポイントが異なるのですが、範囲を条件にできるので簡潔に書けます。
また、値を返すことができるのも便利ですね。
ランクの割り出しも場合分けが多いですが同様にやってます。

コレクションの操作が楽しい
setRate(R.id.forestRate,{it.stage==textForest})
setRate(R.id.forestTodayRate,{isToday(it.date)&&it.stage==textForest})
private fun setRate(id:Int,f:(Record)->Boolean) {
    val r=app.records.filter { f(it)}
    val win=r.count{it.result==textWin}
    val count=r.count()
    val s =if (count != 0) {"%.1f%%".format(win * 100.0 / count)} else ""
    findViewById<EditText>(id).setText(s)
}
勝率の計算はこんな感じでやってます。

recordsが RecordクラスのListになっていて、全結果を保持しています。
そこでステージ、日付、結果でfilterをかけて当日、トータルの勝率を割り出しています。
コレクションの操作自体はC#のLINQで知ったのですが、こちらの書式のほうが好きですね。

コレクション操作でもう一個肝なのがグラフ作成時ですね
val list= mutableListOf<CandleEntry>()
val dayList=app.records.map{ Record.getDay(it.date)}.toSet()

val yAxis= mutableListOf<String>()

for((index,day) in dayList.withIndex()){
    val dayData=app.records.filter { Record.getDay(it.date)==day }
    val start=dayData.first().old_arp
    val end=dayData.last().arp
    val max=dayData.maxBy{it.arp}!!.arp
    val min=dayData.minBy{it.arp}!!.arp
    list.add(CandleEntry(index.toFloat(),max.toFloat(),min.toFloat(),start.toFloat(),end.toFloat()))
    yAxis.add(day)
}
ろうそく足チャート用のデータ作成です。
まずX軸用のラベルdayListを作成。mapで日付だけのリストをつくってtoSetで重複削除。
Y軸用データは日付ごとのRecordリスト:dayDataを取得してその中から開始値、終了値、最大値、最小値を割り出していきます。

後、ちょこちょこと出てきてますが強力な型推論は便利です。
変数定義時に型名を書かなきゃいけないのはほとんどないし、間違えるとすぐ警告が出るので助かります。

実際のところ、そんなにプログラムの知識もないし深く考えないので、これでいいのかどうか不安になりつつやってます。
解説にもなってないとは思いますがこんな感じで楽しくいじっています。

2017年11月23日木曜日

12月バトルアリーナ更新

前々から12月にバトルアリーナのアップデートがあるという話がありましたが、ようやく内容が発表されました。

武器3種の入れ替えと新ステージの追加。
慣れ親しんだ弓とお別れは辛いですが・・・あれ?ステージの追加ということは勝率カウンタも?
ってことで早速仮に実装しました。
画面がかなり狭くなってきました。
情報もごちゃごちゃした感じで見づらい?
あと、ほんとにステージ追加だったのかステージ更新だったかちょっと自信がないです。

もうちょっと何とかならないかな、と思ってもいいアイデアが浮かばない・・・。

2017年11月19日日曜日

バトルアリーナ勝率カウンタ進捗

ゲーム内では、負けまくってレジェンドから落ちたり、かろうじて復帰したりとドタバタしてますが、アプリも相変わらずプログラム中。



今日は勝率を追加。一応、ライブラリのほうで拡大縮小も出来るみたい。これに任せればいいかな?
この他、場所別の勝率とかも追加しようと思うんだけど、どうやって表示させようかな

2017年11月18日土曜日

バトルアリーナ勝率カウンタのその後

PSO2バトルアリーナの勝率記録するアプリのAndroid版、どうしたもんかなぁとソースをこねくり回していたところ、いいものを見つけました。

MPAndroidChart
https://github.com/PhilJay/MPAndroidChart

グラフを表示してくれるライブラリです。
これでアプリ上でグラフにすれば手軽に情報が見れていいかも。
アプリの構成をどうするかは要検討ですが。

ってことで、簡単に実装してみて、実際に記録してるデータをどうにかぶっこんで表示したのがこちら
面白そうだったのでろうそく足チャートにしてみました。
なかなかカオスなことがわかりますね。

ただ、このままデータが増えると表示しきれないだろうから月ごと表示とかいろいろ考えないとダメっぽいですね。
ログ自体もそれなりに容量食うはずなので管理も考えないと。
実用に耐えるレベルになるまでバトルアリーナ続くかな・・・。

2017年11月2日木曜日

PSO2のバトルアリーナにハマり中

ずいぶんと放置してたけど久々に書いてみる

SEGAのファンタシースターオンライン2にハマっています。
https://pso2.jp/

ログを見る限り2012/07/10に開始したので、前回の投稿の少しあとからずっとやってることになりますね。
ゲーム本編、オフラインイベントなどなどいろいろな要素もありますが、現在特にハマってるのが対人コンテンツであるバトルアリーナ。
6人対6人、ランダムに与えられる武器でポイントを集めながら戦うコンテンツになります。
正直バランスはどうなのかと思いつつも、楽しいのでひたすらやりこんでいます。
ついでに動画配信なんかも始めてしまったり。


で、ここからが本題なのですが画面右に移ってるツール。
どこのステージでどれくらい勝ってるか記録しているのですが、当然自作です。
勉強もかねてC#で組んであります。
データをListにしてLinQで加工して表示する単純なもの。
CSVで保存してあるので、あとからExcelでグラフ化もできるかな、と。

などと作ってるうちに今度聞きつけたのがKotlinなる言語がAndroidに正式採用されたというニュース。
[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]
Kotlinスタートブック 新しいAndroidプログラミング [ 長澤太郎 ]
価格:3780円(税込、送料無料) (2017/11/2時点)

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]
Kotlinイン・アクション [ Dmitry Jemerov ]
価格:4114円(税込、送料無料) (2017/11/2時点)


どんなのかな?と調べてるうちにこの勝率カウントツールをAndroidで作ったら面白いかもしれない、と思い作ってみました。
基本的に同じことしているものですが、CSVを共有ボタンからGoogleドライブにあげればGoogleスプレッドシートで編集できるのでこれは面白いかもと思ってます。
自己満足で終わるか、公開するか。どうしようかな。

2011年6月17日金曜日

Imaginary Range

Android版が出てたのでやってみましたが、よくわからない感と面白いのが入り混じってますw

話の筋とか微妙に惹かれるような、突き放されすぎのような。
コミックのテンポがアメコミ・バンデシネなので違和感あるし。
ただ、キャラの絵は結構好きだしミニゲーム自体も面白いし。

評価に困りますねw

やった感じだとスマートフォンよりタブレットのほうがやりやすいです。
でも、コミックはタブレットの解像度じゃ粗が見えるし。

おすすめ、まではいかないけど無料だしやってみたら?位の感じw

Imaginary Range News | SQUARE ENIX

2011年6月15日水曜日

Optimus Pad届いた。

早速届いたのでざっと使ってみました。

SIMもささずに立ち上げてみたけど、普通にWiFiで接続。

ブラウザは快適。やはりこれくらいの画面でないと一般サイトは見難いよね。
スクロールもスムーズで問題なし。

アプリはDLNAと動画プレイヤを試行錯誤中。
Xperiaで使ってるTwonky Mobileが対応していなかった^^;;
NetfrontとSkifta betaはなんかしっくりこない。

今日はUPnPlayというのを試してみるか。
DTCP-TP対応したの出ないかなぁ。

2011年6月13日月曜日

Optimus Pad買った。

家でごろ寝しながら使えるタブレットが欲しくていろいろ探していました。

3DSのブラウザがFlash対応なら良かったんだけど。
ってそれなら手持ちのXperiaと大差ないかw

iPad2か、Xoomか、Optimus Padかで悩んだけど、やっぱAppleものに手を出す気になれず、しかもSoftbankなのが気に入らないのでiPad2は却下。

XoomかOptimus Padか、で行くと大差は無いんだけど3G SIMが入るかはいらないかは大きい気がしたのでOptimus Padに決定。

あとは新規契約か白ROMか、だけどあんまり持ち歩く気が無いので白ROMに決めてヤフオクで落札。
ネット使いたいときはXperiaからSIM抜けばそのまま使えるしね。

たぶん水曜までには到着する・・・はず。

2011年5月17日火曜日

これ、いいかも。

テンキー搭載のスライド型モデル「AQUOS PHONE IS11SH」 - ケータイ Watch

意外とテンキー入力って楽なんだよね。
でも、auなのが問題。docomoだったらなぁ。

スマートフォン機種変したいなぁ。

ドコモ、2011年夏商戦向け24モデル発表 - ケータイ Watch

来月でXperiaの分割も終わるのでそろそろ新しいスマートフォンに変えたいところ。

防水MEDIASがクレイドル充電できるのがGood.
シャープの3D機も気になる。

Xperiaはもういい気がするし、LG・サムスンは避けたい。

やっぱMEDIASかなぁ。