なんかメモ

いろいろメモ

Region(テスト版) ヘルプページ

はじめに

本ソフトウェア起動前に"C:\Users[ユーザーネーム]\AppData\Local/MyProject"(隠しフォルダ)がある場合、フォルダを別の名前に変更後起動してください。

Discord

マルチプレイの対戦相手募集、フィードバック、バグ報告などにお使い下さい。

discord.gg

操作方法

  • 前進 : W
  • 後退 : S
  • 左移動 : A
  • 右移動 : D
  • 視点移動 : マウス
  • 水平ブースト : スペースバー
  • 垂直ブースト : スペースバーを押している状態で一度離し、0.15秒以内に再度押す
  • アンカー射出・回収 : 右クリック押し込みで射出、右クリックを離すと回収(右クリックで射出、射出中に再度押すと回収も可能)
  • 右手武器発射 : 左クリック
  • 肩武器発射 : マウス親指ボタン
  • メインアビリティ : 左Shift
  • サブアビリティ : 左Ctrl
  • 自爆 : ESC

ファイル構成

画面説明

f:id:yuki_rinrin:20171206010911p:plain

システム説明

VTS

残体力に応じて機体性能が強化

  • ATKモード(機体周辺に赤いエフェクト) - 武装性能が強化
  • DEFモード(機体周辺に青いエフェクト) - 上記ATKモードに加え、防御性能が強化

壁張り付き

  • アンカーを挿した状態で機体側面を壁に接触させることにより壁に張り付く事が可能(アンカー射出地点より一定距離内かつ、ブーストを使用していない状態で)

    壁張り付き解除

  • ブーストを使用
  • 張り付いた状態で一定以上旋回
  • アンカーを回収

デフレクターブースト

  • 壁に張り付いた状態でブーストを使用することにより、一定時間通常のブーストより速い速度で移動可能

モード説明

SinglePlayer

1人用練習モード f:id:yuki_rinrin:20171206011638p:plain

MultiPlayer

オンライン対戦モード f:id:yuki_rinrin:20171206011744p:plain

対戦開始方法

ポート開放 : UDP7777, 7778, 7779, 7780 TCP7777, 7778, 7779, 7780

ホスト側 

  1. 上記ポートを開放
  2. 上記画像のMaxPlayerCountで部屋の人数を指定
  3. Createボタンで部屋を作成

クライアント側

  1. 上記ポートを開放
  2. 上記画像のEnter Room Addressと記載してある入力欄にホスト側グローバルIPアドレスを入力
  3. Joinボタンで部屋に参加

Customize

機体をカスタマイズするモード f:id:yuki_rinrin:20171207224435p:plain Frame欄で機体を選択後、各ステータスにポイントを割り振ることによって機体ステータスを変更可能
f:id:yuki_rinrin:20171206014111p:plain アンカー、各武装、各アビリティを入れ替え可能

OmniPotence

  • 上記CustomizeモードにあるFrameステータス数値の上限値、下限値、割り振れる最大ポイント数のルールをプレイヤーが作成可能なモード

  • 作成されたルールは"C:\Users[ユーザーネーム]\AppData\Local/MyProject\Saved\SaveGames\Param.sav"に保存されているので、このファイルをプレイヤー間で共有することにより、プレイヤーが作成したルールでオンライン対戦が可能 f:id:yuki_rinrin:20171206015252p:plain

Settings

プレイヤーネーム、ボタン設定、マウス感度を設定するモード

LLVMのGo bindingでhello world

An introduction to LLVM in Goを読んでhello worldしようとしたらllvm知らなすぎて調べたのでまとめ

基本的な流れ

  1. module作成
  2. main関数作成
  3. entry基本ブロック作成
  4. 基本ブロックの中にビルダーを通して実行する命令を構築していく
  5. Dump()でllvm IRを出力

MCJITコンパイラを使う

初期化

以下の関数で初期化

llvm.LinkInMCJIT()
llvm.InitializeNativeTarget()
llvm.InitializeNativeAsmPrinter()
llvm.InitializeAllAsmParsers()

実行
  1. NewMCJITCompilerOptionsで構造体を作成しオプションを設定
  2. NewMCJITCompilerでJITコンパイラを作成
  3. RunFunctionで実行

最適化

  1. PassManagerを作成
  2. TargetDataを追加
  3. 最適化するためのpassを追加していく
  4. Runで実行

その他

  • memcpyの部分は試し、putsで表示するだけならいらない(CreateGlobalStringPtrのポインタを直接putsに渡してあげればいい)

LLVMのGo bindingでhello world

リンク

An introduction to LLVM in Go

LLVM Project Blog: Using MCJIT with the Kaleidoscope Tutorial

Goであると思ってたけど、なかった関数、定数

python使ってた感覚でいくと、意外となかった関数や定数があったのでまとめ

関数

round

Goであると思ってたけど、なかった関数、定数 round

gcd

math/bigにはあるからそっちでもいい Goであると思ってたけど、なかった関数、定数 gcd

expandPath

Goであると思ってたけど、なかった関数、定数 expandPath

定数

machine epsilon

Goであると思ってたけど、なかった関数、定数 machine epsilon

リンク

Golang で filepath.Abs に ~(ホームディレクトリ) を指定した時にカレントワーキングディレクトリが先頭についてしまう - tkuchikiの日記

floating point - Easiest way to get the machine epsilon in go (golang) - Stack Overflow

逆引きGolang (数値)

Greatest common divisor - Rosetta Code

yukicoderのテストを取得してローカルで実行するツールを書いてみた(リアクティブジャッジ、スペシャルジャッジ対応)

最近yukicoderをやり始めたので、テストを取得してローカルで実行するツールを書いてみた。(リアクティブジャッジ、スペシャルジャッジ対応)

github.com

インストール

Releases · yukirin/goyuki · GitHubからバイナリをダウンロードするか go get する

$go get github.com/yukirin/goyuki

使い方

  • yukicoderにログイン(twitter,github)した状態でブラウザのcookieから REVEL_SESSIONの値を取り出し、GOYUKI環境変数にその値を設定する
$ export GOYUKI=12345hogehoge # zshの場合
  • テストケースを取得する
$ goyuki get 337(例 問題No.337 P versus NP)
  • テストを実行する
    コンパイル後、テストが実行される
$ goyuki run 337 sample.go
  • 出力結果(例) f:id:yuki_rinrin:20160205214336j:plain:w550

対応言語