意表を突いても勝てない

サンムーンでたら頑張る

<Window x:Class="WpfApp4.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp4"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="584.454">
<Grid>
<Grid HorizontalAlignment="Left" Margin="174,90,0,49" Width="350">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="70"/>
<ColumnDefinition Width="70"/>
<ColumnDefinition Width="70"/>
<ColumnDefinition Width="70"/>
<ColumnDefinition Width="70"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="70"/>
<RowDefinition Height="70"/>
<RowDefinition Height="70"/>
<RowDefinition Height="70"/>
</Grid.RowDefinitions>
<Button x:Name="button_BS" Content="BS" HorizontalAlignment="Left" Grid.Row="3" VerticalAlignment="Top" Width="50" Height="50" Margin="10,10,0,0" Grid.Column="0"/>
<Button x:Name="button_Zero" Content="0" HorizontalAlignment="Left" Grid.Row="3" VerticalAlignment="Top" Width="50" Height="50" Margin="10,10,0,0" Grid.Column="1"/>
<Button x:Name="button_Comma" Content="." HorizontalAlignment="Left" Grid.Row="3" VerticalAlignment="Top" Width="50" Height="50" Margin="10,10,0,0" Grid.Column="2"/>
<Button x:Name="button_Plus" Content="+" HorizontalAlignment="Left" Grid.Row="3" VerticalAlignment="Top" Width="50" Height="50" Margin="10,10,0,0" Grid.Column="3"/>
<Button x:Name="button_Equal" Content="=" HorizontalAlignment="Left" Grid.Row="3" VerticalAlignment="Top" Width="50" Height="50" Margin="10,10,0,0" Grid.Column="4"/>

<Button x:Name="button_One" Content="1" HorizontalAlignment="Left" Grid.Row="2" VerticalAlignment="Top" Width="50" Height="50" Margin="10,10,0,0" Grid.Column="0"/>
<Button x:Name="button_Two" Content="2" HorizontalAlignment="Left" Grid.Row="2" VerticalAlignment="Top" Width="50" Height="50" Margin="10,10,0,0" Grid.Column="1"/>
<Button x:Name="button_Three" Content="3" HorizontalAlignment="Left" Grid.Row="2" VerticalAlignment="Top" Width="50" Height="50" Margin="10,10,0,0" Grid.Column="2"/>
<Button x:Name="button_Minus" Content="-" HorizontalAlignment="Left" Grid.Row="2" VerticalAlignment="Top" Width="50" Height="50" Margin="10,10,0,0" Grid.Column="3"/>

<Button x:Name="button_Four" Content="4" HorizontalAlignment="Left" Grid.Row="1" VerticalAlignment="Top" Width="50" Height="50" Margin="10,10,0,0" Grid.Column="0"/>
<Button x:Name="button_Five" Content="5" HorizontalAlignment="Left" Grid.Row="1" VerticalAlignment="Top" Width="50" Height="50" Margin="10,10,0,0" Grid.Column="1"/>
<Button x:Name="button_Six" Content="6" HorizontalAlignment="Left" Grid.Row="1" VerticalAlignment="Top" Width="50" Height="50" Margin="10,10,0,0" Grid.Column="2"/>
<Button x:Name="button_Multiply" Content="×" HorizontalAlignment="Left" Grid.Row="1" VerticalAlignment="Top" Width="50" Height="50" Margin="10,10,0,0" Grid.Column="3"/>

<Button x:Name="button_Seven" Content="7" HorizontalAlignment="Left" Grid.Row="0" VerticalAlignment="Top" Width="50" Height="50" Margin="10,10,0,0" Grid.Column="0"/>
<Button x:Name="button_Eight" Content="8" HorizontalAlignment="Left" Grid.Row="0" VerticalAlignment="Top" Width="50" Height="50" Margin="10,10,0,0" Grid.Column="1"/>
<Button x:Name="button_Nine" Content="9" HorizontalAlignment="Left" Grid.Row="0" VerticalAlignment="Top" Width="50" Height="50" Margin="10,10,0,0" Grid.Column="2"/>
<Button x:Name="button_Divide" Content="÷" HorizontalAlignment="Left" Grid.Row="0" VerticalAlignment="Top" Width="50" Height="50" Margin="10,10,0,0" Grid.Column="3"/>
</Grid>
<TextBlock x:Name="textBlock_Disp" FontSize="18" TextAlignment="Right" HorizontalAlignment="Left" Height="46" Margin="174,39,0,0" TextWrapping="Wrap" Text="0" VerticalAlignment="Top" Width="268"/>

 


</Grid>
</Window>

1.

大項目 中項目 入力 期待出力 テスト結果
整数の演算ができるか 足し算 5+2 7.00000
  引き算 2-4 -2.00000
  割り算 9/3 3.00000
  掛け算 5*0 0.00000
小数の演算ができるか 足し算 4.5+6.8 11.30000
  引き算 88.4-23.9 64.50000
  割り算 84.3/11.8 7.14407
  掛け算 15.5*99.3 1539.15000
計算の順序を守っているか 掛け算 4.5+7*5 39.50000
  割り算 5+4/3 6.33333
エラー処理 割る数が0 9/0 ERROR!
  1文字目が非数字 a+2 ERROR!
  演算子の後が非数字(+) 55+b ERROR!
  演算子の後が非数字(*) 91*m ERROR!
  演算子の連続(+) 53++ ERROR!
  演算子の連続(*) 81** ERROR!
仕様遵守 入力を5桁に丸めているか 0.000005*1000000 10.00000
  出力を5桁に丸めているか 5.555555+1 6.55556

 

 

2.

大項目 中項目 入力 期待出力 テスト結果
整数の演算ができるか 足し算 5+2 7.00000
  引き算 2-4 -2.00000
  割り算 9/3 3.00000
  掛け算 5*0 0.00000
小数の演算ができるか 足し算 4.5+6.8 11.30000
  引き算 88.4-23.9 64.50000
  割り算 84.3/11.8 7.14407
  掛け算 15.5*99.3 1539.15000
負の値の演算ができるか 足し算 (-5)+3 -2.00000
  引き算 8-(-2) 10.00000
  割り算 (-4)/9 -0.44444
  掛け算 3*(-2) -6.00000
計算の順序を守っているか 掛け算 4.5+7*5 39.50000
  割り算 5+4/3 6.33333
  括弧 5+(4-3*8) -15.00000
エラー処理 割る数が0 9/0 ERROR!:Divided Zero
  1文字目が非数字 a+2 ERROR!:NOT_DIGIT
  演算子の後が非数字(+) 55+b ERROR!:NOT_DIGIT
  演算子の後が非数字(*) 91*m ERROR!:NOT_DIGIT
  演算子の連続(+) 53++ ERROR!CONTINUOUS_OPERATOR
  演算子の連続(*) 81** ERROR!CONTINUOUS_OPERATOR
  カッコの閉じ忘れ 5+(4*2 ERROR!:Not Block End
仕様遵守 入力を5桁に丸めているか 0.000005*1000000 10.00000
  出力を5桁に丸めているか 5.555555+1 6.55556

2

CCalc.cpp

#include <cctype>//isdigit
#include <cmath>// round,fabs
#include <cfloat>//DBL_EPSILON
#include "CCalc2.h"



long  CCalc::getErrorCode() {
	return m_errorCode;
}

double CCalc::calculate() {

	return AddSub();
}

double CCalc::AddSub()
{
	double ans = MulDiv();

	while ((m_errorCode == ERRCODE_SUCCESS) && (m_itr != m_inputString.end())) {
		switch (*m_itr) {
		case '+':
			m_itr++;
			m_ContinuousOperator = true;
			ans += MulDiv();
			m_ContinuousOperator = false;
			break;
		case '-':
			m_itr++;
			m_ContinuousOperator = true;
			ans -= MulDiv();
			m_ContinuousOperator = false;
			break;
		default:
			if (!isdigit(*m_itr) && (*m_itr != '.') && (*m_itr != m_BLKEND)) {//数字の後の数字意外を弾く(例:5g4)
				m_errorCode = ERRCODE_NOT_DIGIT;
			}
			return ans;
			break;

		}
	}
	return ans;
}

double CCalc::MulDiv()
{
	double ans = Factor();
	double div = 0.0; //割る数が0以外かのチェック用
	while ((m_errorCode == ERRCODE_SUCCESS) && (m_itr != m_inputString.end())) {
		switch (*m_itr) {
		case '*':
			m_itr++;
			m_ContinuousOperator = true;
			ans *= Factor();
			m_ContinuousOperator = false;
			break;
		case '/':
			m_itr++;
			m_ContinuousOperator = true;
			div = Factor();
			m_ContinuousOperator = false;
			if (fabs(div - 0.0) < DBL_EPSILON) {//小数なので相対誤差で0かチェック
				m_errorCode = ERRCODE_DIVIDED_ZERO;
				return ans;
			}
			ans /= div;
			break;
		default:
			return ans;
			break;
		}
	}
	return ans;
}

double CCalc::Factor()
{
	double ans = 0.0;

	if ((*m_itr) == m_BLKTOP) {
		m_itr++;
		m_inBlock = true;
		ans = AddSub();
		if ((m_itr == m_inputString.end()) || ((*m_itr) != m_BLKEND)) {
			m_errorCode = ERRCODE_NOT_BLKEND;
			return 0;
		}
		m_itr++;
		m_inBlock = false;
		return ans;
	}

	if (m_inBlock) {
		if (isdigit(*m_itr) || (*m_itr == '.') || (*m_itr == '-')) {
			return Value();
		}
	}
	else {
		if (isdigit(*m_itr) || (*m_itr == '.')) {
			return Value();
		}

	}
	
	if ((m_ContinuousOperator == true) && (((*m_itr == '+')) || ((*m_itr == '-')) || ((*m_itr == '*')) || ((*m_itr == '/')))) {
		m_errorCode = ERRCODE_CONTINUOUS_OPERATOR;
	}
	else {
		m_errorCode = ERRCODE_NOT_DIGIT;
	}
	

	return 0;
}

double CCalc::Value()
{
	double ans = 0.0;
	size_t conversion_i = 0;
	ans = std::stod(&(*m_itr), &conversion_i);
	m_itr += conversion_i;
	ans = round2(ans, m_DEGREE);//入力を5桁に調整
	return ans;
}

double CCalc::round2(double dIn, int nLen)
{
	double    dOut;

	dOut = dIn * pow(10.0, nLen - 1);
	dOut = (double)round(dOut);
	dOut *= pow(10.0, -(nLen - 1));

	return dOut;
}

CCalc.h

#pragma once
#include <string>
using namespace std;

class CCalc
{
public:
	CCalc() = delete;
	CCalc(const string& input) : m_inputString(input), m_errorCode(ERRCODE_SUCCESS) {
		m_itr = m_inputString.begin();
		m_inBlock = false;
		m_ContinuousOperator = false;
	}
	virtual ~CCalc() = default;

	enum eERRCODE {
		ERRCODE_SUCCESS,
		ERRCODE_NOT_DIGIT,
		ERRCODE_DIVIDED_ZERO,
		ERRCODE_NOT_BLKEND,
		ERRCODE_CONTINUOUS_OPERATOR,
	};

	long getErrorCode();
	double calculate();


private:
	const string m_inputString;
	long m_errorCode;
	string::const_iterator m_itr;
	static const int m_DEGREE = 6;//四捨五入をする桁←どこで書くべき?
	static const char m_BLKTOP = '(';
	static const char m_BLKEND = ')';
	bool m_inBlock;
	bool m_ContinuousOperator;
	double AddSub();
	double MulDiv();
	double Factor();
	double Value();
	double round2(double dIn, int nLen);
};



main.cpp

#include <iostream>
#include <iomanip>
#include <string>
#include "CCalc2.h"

using namespace std;

int main(void)
{
	string input;

	while (!cin.eof()) {
		cin >> input;
		if (input != "\0") {

			CCalc calc(input);//new~Deleteにするかセット関数にするか,このままだとインスタンスをずっと生成してしまう?

			double ans = calc.calculate();

			switch (calc.getErrorCode()) {
			case calc.ERRCODE_NOT_DIGIT:
				cout << "ERROR!:NOT_DIGIT" << endl << endl;
				break;
			case calc.ERRCODE_DIVIDED_ZERO:
				cout << "ERROR!:Divided Zero" << endl << endl;
				break;
			case calc.ERRCODE_NOT_BLKEND:
				cout << "ERROR!:Not Block End" << endl << endl;
				break;
			case calc.ERRCODE_CONTINUOUS_OPERATOR:
				cout << "ERROR!CONTINUOUS_OPERATOR" << endl << endl;
				break;
			default:
				cout << fixed << setprecision(5) << ans << endl << endl;//小数点5桁表示
			}
		}
	}
	return 0;
}

C++で電卓

今までCしか書いたことなかったけどC++やることになったので、
電卓をクラスとか使ってC++っぽく書いてみた。
参考というかほぼこちらのコードを使用
blog.goo.ne.jp


CCalc.cpp

#include <cctype>//isdigit
#include <cmath>// round,fabs
#include <cfloat>//DBL_EPSILON
#include "CCalc.h"



long  CCalc::getErrorCode() {
	return m_errorCode;
}

double CCalc::calculate() {

	return AddSub();
}

double CCalc::AddSub()
{
	double ans = MulDiv();
	
	while ((m_errorCode != ERRCODE_BAD) && (m_itr != m_inputString.end())) {
		switch (*m_itr) {
			case '+':
				m_itr++;
				ans += MulDiv();
				break;
			case '-':
				m_itr++;
				ans -= MulDiv();
				break;
			default:
				if (!isdigit(*m_itr) && (*m_itr != '.')) {//数字の後の数字意外を弾く(例:5g4)
					m_errorCode = ERRCODE_BAD;
				}
				return ans;
				break;

		}
	}
	return ans;
}

double CCalc::MulDiv()
{
	double ans = Factor();
	double div = 0.0; //割る数が0以外かのチェック用
	while ((m_errorCode != ERRCODE_BAD) && (m_itr!= m_inputString.end())) {
		switch (*m_itr) {
		case '*':
			m_itr++;
			ans *= Factor();
			break;
		case '/':
			m_itr++;
			div = Factor();
			if (fabs(div - 0.0) < DBL_EPSILON) {//小数なので相対誤差で0かチェック
				m_errorCode = ERRCODE_BAD;
				return ans;
			}
			ans /= div;
			break;
		default:
			return ans;
			break;
		}
	}
	return ans;
}

double CCalc::Factor()
{
	if (isdigit(*m_itr) || (*m_itr == '.')) {
		return Value();
	}
	m_errorCode = ERRCODE_BAD;//1文字目,演算子の後が数字じゃなければエラー

	return 0;
}

double CCalc::Value()
{	
	double ans = 0.0;
	size_t conversion_i = 0;
	ans = std::stod(&(*m_itr), &conversion_i);
	m_itr += conversion_i;
	ans = round2(ans, m_DEGREE);//入力を5桁に調整
	return ans;
}

double CCalc::round2(double dIn, int nLen)
{
	double    dOut;

	dOut = dIn * pow(10.0, nLen-1);
	dOut = (double)round(dOut);
	dOut *= pow(10.0, -(nLen-1));

	return dOut;
}

CCalc.h

#pragma once
#include <string>
using namespace std;

class CCalc
{
public:
	CCalc() = delete;
	CCalc(const string& input) : m_inputString(input),m_errorCode(ERRCODE_SUCCESS){
		m_itr = m_inputString.begin();
	}
	virtual ~CCalc() = default;

	enum eERRCODE {
		ERRCODE_SUCCESS,
		ERRCODE_BAD,
	};

	long getErrorCode();
	double calculate();


private:
	const string m_inputString;
	long m_errorCode;
	string::const_iterator m_itr;
	static const int m_DEGREE = 6;//四捨五入をする桁←どこで書くべき?

	double AddSub();
	double MulDiv();
	double Factor();
	double Value();
	double round2(double dIn, int nLen);
};


main.cpp

#include <iostream>
#include <iomanip>
#include <string>
#include "CCalc.h"

using namespace std;

int main(void)
{
	string input;
	
	while (!cin.eof()) {
		cin >> input;
		if (input != "\0") {

			CCalc calc(input);//new~Deleteにするかセット関数にするか,このままだとインスタンスをずっと生成してしまう?

			double ans = calc.calculate();
		
			switch ( calc.getErrorCode() ) {
				case calc.ERRCODE_BAD:
					cout << "ERROR!" << endl << endl;
					break;
				default:
					cout << fixed << setprecision(5) << ans <<endl << endl;//小数点5桁表示
			}
		}
	}
	return 0;
}


【グランドファンタジア】Machinistのスキル【日本語訳】

Mechanicから15LVで転職可能.

JaleにいるNicholas (192, 326)に話しかけることでクエスト達成

 

 

Nuclear Fisson
MPcost:10
cooltaime:45
コアを1つ消費する.
デバフを取り除く

Fast Charge
MPcost:10
cooltaime:3
コアを1つ取得する.
さらに基本攻撃ダメージを5%上昇する.これは5回まで重複可能.
コアは5個までしか持てない

Nuclear impact
MPcost:60
cooltaime:15
コアを1つ消費する.
1チャージポイント取得する.ダッシュの射程は12メートル
通常攻撃のダメージ+260ダメージを与える.
さらに電磁誘導のスタックに応じて効果が変動
1ターゲットを1秒スタン
2ターゲットを1.5秒スタン
3ターゲットを1.75秒スタン
5ターゲットを2秒スタン

Stray Bullets
MPcost:75
casttaime:0.5
cooltaime:15
コアを1つ消費する.
射程は12メートル.チャージポイントに応じてダメージ変更.
チャージポイント:
1通常攻撃のダメージ+160ダメージを与える.
2通常攻撃のダメージ+320ダメージを与える.
3通常攻撃のダメージ+480ダメージを与える.
4通常攻撃のダメージ+640ダメージを与える.
5通常攻撃のダメージ+800ダメージを与える.
ターゲットに電磁誘導のスタックを1与える.

パッシブスキル
Muluti-Core Combat Processor
クリティカル攻撃が発生したら全てのスキルのクールタイム0.5秒減らす.

 

実践で使ってみてどんなのかわかったら追記します.

 

【グランドファンタジア】Mechanic(機兵?)のスキル【日本語訳】

wikiになかったのでメモ

2017/10/02日現在 Grand Fantasia US鯖の情報です.

 

Rechage Mecha
MPcost:10
casttaime:2.5
他のスキルを使うのに必要なコアを5つつくる。
コアは最大5つまでしか持てない

 

Lightning stab1
MPcost:35
cooltaime:15

近接攻撃
コアを1つ消費する
1チャージポイント取得する.突きの射程は8メートル
通常攻撃のダメージ+90ダメージを与える.
攻撃した相手を1.5秒固定する.
攻撃した後10メートルバックする(突きの後バックステップで銃って感じ)
ターゲットに電磁誘導のスタックを1与える.

 

Nuclear Bomb1
MPcost:25
cooltaime:1.5

銃での攻撃
1チャージポイント取得する.
通常攻撃のダメージ+100ダメージを与える.
ターゲットに電磁誘導のスタックを1与える.

 

FissionBomb1
MPcost:50
casttaime:0.5
cooltaime:20
コアを1つ消費する.
チャージポイントと電磁誘導のスタックに応じて効果が変動
チャージポイント:
1通常攻撃のダメージ+120ダメージを与える.
2通常攻撃のダメージ+240ダメージを与える.
3通常攻撃のダメージ+360ダメージを与える.
4通常攻撃のダメージ+480ダメージを与える.
5通常攻撃のダメージ+600ダメージを与える.
電磁誘導のスタック:
1ターゲットの直接・魔法防御どちらも5%ダウン
2ターゲットの直接・魔法防御どちらも10%ダウン
3ターゲットの直接・魔法防御どちらも15%ダウン
5ターゲットの直接・魔法防御どちらも20%ダウン

 

パッシブスキル

Jale CPU

アイテムクラフト,装備の強化,ミグルのクラフト成功率が1%上昇

【オーバーウォッチ】立ち回り参考動画・ブログ【OverWatch】

 

f:id:kidd5566:20170125001709j:plain

 

 

いままであんま動画とか見ずにやってたから知識増やそうかという自分用まとめ

まだ見てないものもあるので情報の真偽はわかりません

初心者の人とかは一通り見ると良いかも

全て無断転載なので何か問題があればコメントください

 

あと他におすすめ動画・ブログあったらコメントください。

ファラとかメイとかアナとか!!

 

 

全般的なこと

overwatch.hatenadiary.jp基本的な考え方とかが書いてあって参考になるし面白い

lastyark.blog39.fc2.com

ソロルシオ頑張ろうってなるブログ

www.citrussin.com

www.citrussin.com

 

 

 

だらだらさんとcitrussinさんのブログ読むと強くなった気がする

気だけね。たくさん記事があるから空いた時間に全部目を通しておくといいと思う

読み物としても面白いし

 

 

ルシオ

Lastyさんのブログ

lastyark.blog39.fc2.com

lastyark.blog39.fc2.com

Lastyが教えるルシオ講座!? – KINGDOM | セミプロマルチゲーミングチーム

 ストレイフジャンプ(できない)

www.youtube.com

壁走り

www.youtube.com

www.citrussin.com

www.citrussin.com

urashimanippou.blogspot.jp

 

D.Va

owyamero.blogspot.jp

www.youtube.com

 

 

ザリヤ

www.youtube.com

www.youtube.com

ソルジャー

urucaさんのソルジャー講座 https://www.twitch.tv/ow_uruca/v/114705672

 

www.youtube.com

この動画はアヌビスだけど他のステージも解説してるからリンク辿ると良いかも

 

ラインハルト

www.youtube.com

www.twitch.tvしらすぱんさんのツイッチのアーカイブに解説があります。

アーカイブって消えないっけ?心配…早めに見ておこう!!)

 

ウィンストン

www.youtube.com

www.youtube.com

 

 

トレーサー

www.youtube.com

 その他

とても便利なプレイリスト

www.youtube.com