モンスターハンタークロスの村クエが一段落しました
シャンティ楽しいです ✌('ω'✌ )三 ✌('ω')✌ 三( ✌'ω')✌
パケ買いしたシャンティが思いのほか楽しくて困ってない。
横スクロールアクション自体すっごい久しぶりなせいもあっていい買い物でした。
道中迷子になったり最終ダンジョンで指痛めたりとかしたけど。
- 出版社/メーカー: インターグロー
- 発売日: 2015/11/19
- メディア: Video Game
- この商品を含むブログ (3件) を見る
PC版もあると聞いて即買ってしまうとかもしてた。フルHD + フルスクリーンでできるからこっちのほうがやりやすかった。
エレコムの新トラックボールM-XT3DRBK買ってました
懲りずにエレコム製トラックボールに手を出してました。
見た目は前のと変わらず、チルトホイールと薬指付近の追加ボタンのあるデザインです。
ELECOM マウス トラックボール ワイヤレス 握りの極み 6ボタン ブラック M-XT3DRBK
- 出版社/メーカー: エレコム
- 発売日: 2015/10/17
- メディア: Personal Computers
- この商品を含むブログ (1件) を見る
実のところ、こっちのほうしか知らんかったんですが、Amazonにあったのは↑のほうだけでした。*1
www2.elecom.co.jp
この二種類、違いは薬指のボタンの機能の違いでした。
M-XT2DRBK | 速度調整ボタン |
---|---|
M-XT3DRBK | 拡張機能ボタン |
期せずして、便利そうなほう買ってました(・∀・)
さしあたり、
- スタートスクリーン
- アクションセンター
- 仮想デスクトップ
を割り当ててます。(チルトホイールはそのまま横スクロールにしてある)
使用感
前の M-XT1DRBK と変わらず、ポインタがふらつくことが結構ありますねぇ…('A`)
これ電池寿命を犠牲にハイスピードモードして直ってくれたしないかな…
やっぱロジクールのほうが安定感ある.
あとボールがショリショリしてる。
あと薬指ボタンは誤爆しやすい気がする。
*1:M-XT2DRBKのつもりで買ってた
Goで構造体スライスをXMLにして ( ;゚皿゚)ノシΣバンバン!! ってなった話
結論から書くと、ちゃんと構造体でラップしましょう、ということです。
出ないと書き出したXMLがちゃんと読み込まれなくて ( ;゚皿゚)ノシΣバンバン!! ってすることになります。
やらかしたこと
次のように、構造体とそのスライスを用意して、XMLに変換したわけです。
package main import "encoding/xml" import "fmt" type Item struct { XMLName xml.Name `xml:"item"` ID string `xml:"id,attr"` Name string `xml:"name"` Value string `xml:"value"` } type Items []Item func main() { items := Items{ Item{ ID: "001", Name: "AA1", Value: "|ω・`)ノ ヤァ", }, Item{ ID: "002", Name: "AA2", Value: "|д゚)チラッ", }, } if buf, err := xml.MarshalIndent(items, "", " "); err != nil { panic(err) } else { fmt.Print(xml.Header) fmt.Println(string(buf)) } }
実行すると次のようなXMLを得られます。
<?xml version="1.0" encoding="UTF-8"?> <item id="001"> <name>AA1</name> <value>|ω・`)ノ ヤァ</value> </item> <item id="002"> <name>AA2</name> <value>|д゚)チラッ</value> </item>
この時点ですでになんか怪しいことにお気づきでしょうか。そう、ルート要素が複数あるということに。
さて、これを以下のコードで読み込むと( ゚д゚)します。
package main import "encoding/xml" import "fmt" type Item struct { XMLName xml.Name `xml:"item"` ID string `xml:"id,attr"` Name string `xml:"name"` Value string `xml:"value"` } type Items []Item func main() { items := make(Items, 0) doc := `<?xml version="1.0" encoding="UTF-8"?> <item id="001"> <name>AA1</name> <value>|ω・`)ノ ヤァ</value> </item> <item id="002"> <name>AA2</name> <value>|д゚)チラッ</value> </item> ` if err := xml.Unmarshal([]byte(doc), &items); err != nil { panic(err) } else { for _, item := range items { fmt.Println(item) } } }
以下出力結果。
{{ item} 001 AA1 |ω・`)ノ ヤァ}
二要素目が闇に消えましたね ( ・´ー・`)
原因
たぶんルート要素がいっぱいあるせい。つまり正しいXMLになってない。
正しい解決法
なので、ちゃんと構造体でラップしましょう、そうしましょう。
エンコードする方のコード
package main import "encoding/xml" import "fmt" type Item struct { XMLName xml.Name `xml:"item"` ID string `xml:"id,attr"` Name string `xml:"name"` Value string `xml:"value"` } type Items struct { XMLName xml.Name `xml:"items"` Items []Item `xml:"item"` } func main() { items := &Items{ Items: []Item{ Item{ ID: "001", Name: "AA1", Value: "|ω・`)ノ ヤァ", }, Item{ ID: "002", Name: "AA2", Value: "|д゚)チラッ", }, }, } if buf, err := xml.MarshalIndent(items, "", " "); err != nil { panic(err) } else { fmt.Print(xml.Header) fmt.Println(string(buf)) } }
エンコード結果
<?xml version="1.0" encoding="UTF-8"?> <items> <item id="001"> <name>AA1</name> <value>|ω・`)ノ ヤァ</value> </item> <item id="002"> <name>AA2</name> <value>|д゚)チラッ</value> </item> </items>
デコードする方のコード
package main import "encoding/xml" import "fmt" type Item struct { XMLName xml.Name `xml:"item"` ID string `xml:"id,attr"` Name string `xml:"name"` Value string `xml:"value"` } type Items struct { XMLName xml.Name `xml:"items"` Items []Item `xml:"item"` } func main() { items := Items{} doc := `<?xml version="1.0" encoding="UTF-8"?> <items> <item id="001"> <name>AA1</name> <value>|ω・`)ノ ヤァ</value> </item> <item id="002"> <name>AA2</name> <value>|д゚)チラッ</value> </item> </items> ` if err := xml.Unmarshal([]byte(doc), &items); err != nil { panic(err) } else { for _, item := range items.Items { fmt.Println(item) } } }
デコード結果
{{ item} 001 AA1 |ω・`)ノ ヤァ} {{ item} 002 AA2 |д゚)チラッ}
ダメな解決方法
構造体作りたくないでござる、スライスはスライスのままにしたいでござる、みたいな人 *1 のためにたぶん間違った解決方法を。
その方法は xml.Marshaler / xml.Unmarshalerを実装して、ルート要素を無理やり作る、というのもですが。
エンコード側
package main import "encoding/xml" import "fmt" type Item struct { XMLName xml.Name `xml:"item"` ID string `xml:"id,attr"` Name string `xml:"name"` Value string `xml:"value"` } type Items []Item func (self Items) MarshalXML(e *xml.Encoder, start xml.StartElement) error { root := struct { Items []Item `xml:"item"` }{ Items: self, } start.Name.Local = "items" return e.EncodeElement(&root, start) } func main() { items := Items{ Item{ ID: "001", Name: "AA1", Value: "|ω・`)ノ ヤァ", }, Item{ ID: "002", Name: "AA2", Value: "|д゚)チラッ", }, } if buf, err := xml.MarshalIndent(items, "", " "); err != nil { panic(err) } else { fmt.Print(xml.Header) fmt.Println(string(buf)) } }
デコード側
package main import "encoding/xml" import "fmt" type Item struct { XMLName xml.Name `xml:"item"` ID string `xml:"id,attr"` Name string `xml:"name"` Value string `xml:"value"` } type Items []Item func (self *Items) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { root := struct { Items []Item `xml:"item"` }{} if err := d.DecodeElement(&root, &start); err != nil { return err } else { *self = root.Items return nil } } func main() { items := Items{} doc := `<?xml version="1.0" encoding="UTF-8"?> <items> <item id="001"> <name>AA1</name> <value>|ω・`)ノ ヤァ</value> </item> <item id="002"> <name>AA2</name> <value>|д゚)チラッ</value> </item> </items> ` if err := xml.Unmarshal([]byte(doc), &items); err != nil { panic(err) } else { for _, item := range items { fmt.Println(item) } } }
自分自身のスライスの参照先を書き換えるとか ((((;゚Д゚))))ガクガクブルブル しますね!!
*1:私
最近財布の紐が緩すぎる気がしてならない
最近うしおととら (Kindle版) を全巻まとめ買い*1*2したりとかで散財してるところで、またゲームを衝動買いしてしまいましてな。
- 出版社/メーカー: インターグロー
- 発売日: 2015/11/19
- メディア: Video Game
- この商品を含むブログ (1件) を見る
会社で調べものってことでググってたら至る所で広告を見てしまったので洗脳された感はありつつも、ほぼパケ買いですハイ。
Xbox One Controllerを導入
Windows 10にしてからどうにもXbox 360コントローラ及び互換コントローラの入力がおかしくなってました。おかしいというか、スティックの上方向から右斜め上方向の入力がほぼなくなるという(´Д`)*1
互換コントローラとXbox 360コントローラ両方で起きてたので、たぶんドライバレベルでなんかおかしくなってるっぽかったので、唐突にXbox One Controllerを買いました。ほら、Windows 10ならドライバ標準装備だって言うから…
マイクロソフト Xbox One ワイヤレスコントローラー(Xbox One/Windows PC対応)7MN-00005
- 出版社/メーカー: マイクロソフト
- 発売日: 2014/11/14
- メディア: Personal Computers
- この商品を含むブログを見る
買ってみての感想としては、
- 思ったより軽い。電池とかバッテリーがでかい360コントローラより軽くて負担が軽い
- USBケーブルで繋がる (= 有線コントローラ) なので、充電とか考えなくていい *2
- 扱いは Xbox 360と同じ (= XInput) になるので、大体のゲームで使えて(゚д゚)ウマー
という感じで、いい買い物だったかと.
難点は、R/Lキーが押しにくいことですが。
というのも、押せる場所が端のほうなんですが (下図参照) 持ち方の問題で人差し指がちょうど根元 (図の×のあたり) にきちゃって「あれ?押せないぞ?」とかなること。根元はまったく押せないのでつらいことになる。
意識すればいいんだけど、アクションゲームとかだと余裕なくなって押せなくなったりするのが困ったところです *3
この点だけは360より劣化してるなぁと
懐かしのMHP3rdの村最終を終わらせてきました (今更)
部屋を占拠してた段ボール箱を片付けたらPS3で遊べるようになったので、懐かしのMHP3rd (HD Ver.) を引っ張り出して遊んでました。
PS3をすっごい久しぶりに起動
— ちくちく( ´ω` )ごんざれす (@chiku2gonzalez) 2015, 8月 13
P3rd HDでアマツと戯れてきた
— ちくちく( ´ω` )ごんざれす (@chiku2gonzalez) 2015, 8月 13
温泉とドリンク効果がセーブされてた事に( ゚д゚)ポカーンしてた
— ちくちく( ´ω` )ごんざれす (@chiku2gonzalez) 2015, 8月 13
あ、そういえば昨日頑張ってP3rdの村最終クエをクリアしときましたよ\\\\٩( 'ω' )و ////
— ちくちく( ´ω` )ごんざれす (@chiku2gonzalez) 2015, 8月 15
いやぁ、HD Ver. だけあって綺麗でしたわー…
呟きの通り、村最終クエストの終焉を喰らう者が未クリアだったのでヒーコラ言いながら40分かけてクリアしておきました *1.
そしてMH4Gに慣らされてるなぁ…って言うのを実感してきたところです.
(ナルガの回転とか意外と避けられるようになってたところとか、アマツの三連ブレスを避け切れるとか)
久しぶりの感想としては
- 農場楽。採掘とか釣りとか栽培とか昆虫採集とか全部できて超便利。
- 村ポイントで鎧玉 (当時は武具玉) が全部揃うとか、なんていい場所なんだ。
- そういえばベッドで寝てる間もメニュー開けましたね。
- ネコタク中でもリタイアできるじゃん。なんで今できないのさ。
とまぁ、今できないことが当時はできてたんだなぁ、って遠い目になりかけた。
- 出版社/メーカー: カプコン
- 発売日: 2011/08/25
- メディア: Video Game
- 購入: 21人 クリック: 1,216回
- この商品を含むブログ (66件) を見る
MHXでユクモが復活するなら、是非ともユアミスガタ復活ととレックスUの足装備のパンツをTバックに戻してほしい
*1:二回失敗してるので合計2時間くらい費やしてる気がする