まどかく演習 仮説2

ここ二週間くらいプレイしてみてちょっとづつ考え方が変わってきた。

格上戦、同格戦、格下戦。格上と格下はやはりどうしようもないワンサイドゲームである。熟練度稼ぎにでもいそしむといいだろう。

やはり、同格戦である。

 

同格戦において相手を撃墜するということは、相手の回復量を上回るということである。同格の場合は、回復量の違いが撃墜数に反映されるのではないだろうか。まずは、相手と回復量で並ぶことを前提とするのが無難なはずである。回復量が並んだところで、バフデバフの振り分けが決まってくる気がする。

 

極端な話、相手に回復ありで自分に回復なしだと、同格戦であろうと一方的にぼこぼこにされるだけだろう。

 

このあたりの確認のためにも、相手の攻撃量と自分の回復量の確認を行う必要がある。

 

バフデバフで気になることは、相手の防御デバフは意図的にかけないとかけられないという点である。私の戦闘団では、前衛で防御デバフをかけている人は存在しない。

前衛のできないことを補うという点で防御デバフを入れるのでもいいだろう。

 

これらのことを駆使して撃墜数を―1程度までに抑えれば勝機が出てくるはずである。

100万人に1人

100万人に1人はオリンピックメダリスト級の人材らしい。

この数字の算出方法はどうなっているのだろうか。

 

いろいろ調べてみた結果それっぽい数字が確認できた。

東京2020メダルは約5000個製造されるようである。

(出典)東京2020オリンピックメダル (tokyo2020.org) 

世界の総人口が約77憶人である。

5000/77億人つまり0.6人/100万人

2020年においてメダリストは100万人に0.6人の人材になるということだ。

 

パラリンピックも入っているとはいえ、より希少な人材になっている。

 

100万人に1人の人材とは77億人を母数とした数字だったようである。

そして現在のメダリストは100万人に1人よりもっと希少な人材であるらしい。

まどかくの演習について 仮説

背景

幼女戦記 魔導師斯く戦えり(通称:まどかく)で待望されていたPVPの要素が追加された。そろそろアクティブな戦闘団同士で演習が行われることが多くなると考えられる。操作次第で勝敗が変化することを信じて、効率的な動きを考えてみる。

その動作の中で、必要な要素を自分の育成に落とし込めるものを落とし込んでいこうとおもう。

ただ、演習のシステムについてわかっていない部分が多いため、実際には実現不能であることを記入してしまう可能性がある。

 

概要

味方の魔力消費量を抑えるために、味方の物理攻撃バフと相手の物理防御デバフをかけるカスタマイズを中心とする育成を計画した。余った枠は回復に回す。

使用した感想は悪くなかった。

味方の物理攻撃バフを抜いて相手の物理攻撃デバフを入れると、味方のHPが管理しやすくなる。

 

要調査項目

演習エリアの前衛エリアと後衛エリアの移動方法。

→メニューから行う。

気球を攻撃している最中の後衛エリアのできること。

→前衛と同じ

後衛エリアでのキャラクターの操作可能範囲、前衛職と後衛職。

→前衛エリアに干渉できる。

 

内容

1/28の演習では敗北をした。その中で、ボトルネックになった要素がある。

当然であるがHPと魔力である。

魔力は言わずもがな、攻撃を行わないことには勝ちには近づけない。

そして、補充しているタイミングは大きな隙となっているはずである。

次にHP。ダウン後に魔力で蘇生が可能であるが蘇生後のHPが低い。

すぐにダウンしてしまう。

この二つをうまく補うことを意識しながら操作することで接戦を制することが可能なはずである。

 

現在、私の戦闘団でアクティブな人は4人-5人程度である。

 この人数ではHPの管理は不可能だろう。演習の前衛エリアと後衛エリアを移動するするだけの人員は存在しない。一人後衛職について、回復を行うという選択肢があるが、ちょっと受け身すぎるので今回は考えるのをやめておこう。

 今回は味方が撃破するときの魔力消費量を減らすというコンセプトで育成を行っていこうと思う。前衛職は物理攻撃に偏りやすい傾向があるため、相手に物理防御デバフ味方に物理攻撃バフをかけていくのが中心となるはずである。

前衛職を育てるのに飽きてきたところもある。

 

とりあえず今回は、こんな感じで後衛の育成を行っていこうと思う。

ただ、検証方法が不明であるため、効果を確認できない。

 

人数が少ないうちは全員前衛職がいいだろう。HPや魔力がなくなった場合には、後衛エリアにいる前衛職と交代するのが無難である気がする。後衛エリアにいるキャラクターを回復できるようであれば、後衛エリアに後衛職の回復を置いて回復するのもありだろう。

 

1/30追記

割といい感じで味方のバフもりもり状態にできた。

余った枠に回復を入れていたのだが、相手のアクティブが少ないこともあるが、撃墜されることがなかった。

撃墜されることがなかったため、味方の物理攻撃バフが過剰になってしまっていたが、これから撃墜されやすくなることを考えると、いまのままのバランスでいいだろう。

味方の物理防御にデバフが多量に残ってしまっているのが気になった。このことから物理阻害型が考えられる。味方の物理防御バフ、相手の物理攻撃デバフを中心に行う型である。

しかし、今の戦闘団の人数ではやる必要はないだろうせいぜい今の型に相手物理攻撃デバフを入れるエフェクトを追加するくらいだろう。

アクティブな人数が増えてきたら、また考えよう。

 

2/1追記

味方のHP回復は指定ができないようである。なので後衛のHP回復は不可能。

上位の戦闘団だと前衛五人のみで交代なし。あとは全員後衛が基本になりつつあるようだ。

また、撃破数が相手よりも劣っている場合でも勝利が可能なようである。

つまり、演習において相手の気球を撃破するタイミングが重要になってくるようである。どういったタイミングがいいのかや、タイミングの調整方法については不明である。おそらく終了直前で撃破を行うのが一番効果的だろう。撃破にかけられる時間等から逆算して行動を組み立てていけばいいだろう。

演習に勝機を見出す第一条件は相手を撃破できるだけの戦闘力を確保することになるだろう。

 

相手が極端に弱い場合には熟練度稼ぎをしてもかまわないだろう。魔力を補充しながらできるため結構な効率が出るだろう。

 

負けない方法として撃破されないようにするという選択肢が存在するが、その戦術がとれるのは廃課金限定だろう。

アルディーノでTSC2007を動かす

完了。

この後はSH4で一から動作させていきたいところであるが、難しい。

初期設定をどうしていくかが難しい。

アルディーノはその辺に関しては終了している上、ライブラリが存在しているため非常に扱いやすい。

 

今回は、タッチパネルの簡易検査キットが作れれば目標達成であるためこの辺で終了である。

 

#include <Wire.h>

void setup() {
Wire.begin();
Serial.begin(9600);
}

void loop() {

Wire.beginTransmission(0x48);
Wire.write(0xC0);
Wire.endTransmission();

Wire.requestFrom(0x48, 1);// request 1 bytes from Slave ID #8

while (Wire.available()) {
byte b = Wire.read();
Serial.println(b);
}

delay(500);
}

アルディーノでtsc2007を動作させる

TSC2007とは、抵抗膜式のタッチパネルコントローラーのことである。

i2c通信を利用して動作をさせている。

アルディーノ同士でi2c通信をさせることに成功したので、今度はアルディーノ以外と通信させてみるのを試みる。

 

コードをどうしたらいいのかわからない。

wireライブラリが使用できるのかもよくわからない。

readとwriteコマンドしかないのにどうやって、X軸Y軸をそれぞれ受け取っているのかわからない。

 

ALPHA PROJECTという会社にキットが3600くらいで発売されているのが見つかった。その中にサンプルプログラムが含まれているようである。

ただ、その中身を参考にして、私がコードを書き上げるのはどうにも難しい気がする。

 

その中で、やっと新たに先に進めそうなものを見つけた。

I2C Scannerを使用したコードである。

これを使用することにより、つながっているi2cデバイスのアドレスを取得することが可能である。

アドレスと同時に、wire関数を使用できるかどうか検証が可能である。

とりあえずこれを行ってみる。

とりあえず回路組みから行っていく。

 

次のステップとしてCPUをSHに変更がしていきたいので、wireライブラリを使用せずにコードが書けるかどうかも検証を行っていきたい。

 

21/1/27 追記

I2C Scannerを書き込んで使用を行った。データーシート通りの反応があった。

また、sh4はリードとライトを別々に行っているだろうということも判明した。

 

アドレスは判明した。しかし実際にどういうコードを書いて動作させるかまでは至っていない。

i2crコードであったり、wire.hのリードライト関数であったり、コンパイラごとに使用できる関数が異なるのはわかるが、実際にどうなっているのか判明させるのは困難である。

i2crコードというのは ichigojamというマイコンで使用が可能な関数であるようだが、どうやら1文でリードライトを行っているような雰囲気が出ている。具体的に言うならば、読み出すメモリを指定してそのメモリの中身を読みだしているようである。

sh4の場合はどうなのかアルディーノの場合はどうなのかコードを確認して読んでみたが、どうやら両方とも別々に行っているようである。

 

また、読み出しを行っているが、その読み出した情報の取得はいつ行っているのだろうか。タッチパネルの複雑なところは、いつでも座標が読み取れるわけではなく、タッチされた瞬間にのみ、座標の取得が行われることである。

コマンドが書き込まれた瞬間に読み込んでいるのかそれともコマンドが書き込まれる前に読み込まれているのかだけでも判明させたい。

確定申告について

株の取引で譲渡益や配当金が発生しているため確定申告を行う

 

 今回使用したもの

年末調整後の源泉徴収票

今年かかった医療費の領収証

ふるさと納税領収書(5件)

特定口座取引証明書(3件)

・オーナーズブック → 雑所得で分配金として入力

SBI → 配当の欄に記入後、外国税額控除

・ネオモバイル → 配当欄の総合課税にて入力

  市民税・県民税特定配当等以下略の入力のために住民税の配当割額と株式譲渡所得割額等のメモを行っておくとよい。

 

 

今回計算を行ってもらった結果、1481円ほどの還付が受けられそうである。

コード 覚書 スレーブ→マスタ スレーブで値を取得

1/18 追記 このコード自体はうまくいったが、次のスレーブのタイミングで送信するというプログラムが分からないため、ステップを一個飛ばしていく。

アルディーノとTSC2007を通信させるためにはどうしたらよいのか考えていく。

 TSC2007のアドレスはいくつであるか。

 また、TSC2007にどのようなコードが埋め込まれていると予測されるか。

この二点について調べていく。

 

ライブラリを使用せずに記入を行う。

C+の言語でアルディーノに記入できるかどうかの検証。

 

 

マスター側コード

#include <Wire.h>

void setup() {
 Wire.begin();
 Serial.begin(9600);
}

void loop() {
 Wire.requestFrom(8, 1);// request 1 bytes from Slave ID #8

 while (Wire.available()) {
  byte b = Wire.read();
  Serial.println(b);
 }

 delay(500);
}

 

スレーブ側コード

#include <Wire.h>

byte b=0;

void setup() {
 Wire.begin(8);// Slave ID #8
 Wire.onRequest(requestEvent);
}

void loop() {
}

int knob = 0;

void requestEvent() {
 knob = analogRead(2);

    knob / = 4;

    Wire.write(knob);
}