C/C++/C#

C/C++/C#

C++でポケモンの速度判定を作る

ポケモンの速度判定は異なる場合はより数値の大きな方、同じ場合はランダムになる。今回はCoin.getCoinValue()でコイントスを行う関数を実装し同速の場合の判定を作った。なお、arrayで作っているのはダブルバトル等への拡張を容易に...
C/C++/C#

enum classは便利

enum class は列挙型の一種で名前衝突の回避ができる。使うときは型名::列挙子とする。
C/C++/C#

ソースコードをgistに登録して技相性のCSVデータを公開してみた

gistへの登録は色々なサイトにあるので割愛。今回はポケモンの技相性のcsvデータを登録した。
C/C++/C#

C++でポケモンの個体値が記録されたCSVを読み込む

targetと同じ文字列を抜き出し配列として返す。CSVはポケモンの個体値のリストでtargetにポケモンの名前を渡すとそれを探す。以下ソースstd::array < std::string, 9> readCSV(std::string ...
C/C++/C#

C++で数値を二進数で表示する

bitsetを読み込めば使える。#include<iostream>#include <bitset>int main() { std::cout << std::bitset<8>(4);}
C/C++/C#

C++で最大公約数を求める

私の環境ではstd::gcdが使えなかったので自作した。gcd関数が最大公約数を求める関数サンプルコード例だと97が得られる#include<iostream>auto gcd(int x, int y) { if (x % y == 0)...
C/C++/C#

C++で麻雀ゲームを作る その6

得点計算関数をクラス化した。方針は各プレイヤーごとに宣言して点数計算をするイメージclass Point {public: uint32_t getPointDealer(int hang) { if (hang == 5) { retur...
C/C++/C#

C++で麻雀ゲームを作る その5

麻雀の得点計算をする。5翻以上は符に関わらず同じなので子の場合を実装。if文を使って条件分岐すればいい#include<iostream>uint32_t Point(int hang) { if (hang == 5) { return ...
C/C++/C#

C++で麻雀ゲームを作る その4

親を決めたりするためのサイコロクラスを作る。サイコロを定義するクラスを作り、それを2つ分宣言する。乱数の偏りは今のところ考慮していない。#include<iostream>#include <random>class dice {publi...
C/C++/C#

C++でアペリーの定理を計算する

ゼータ関数が\(s=3\)の時の結果が無理数であるという結果である。今回はC++でアペリーの定理を計算する。\begin{align}\zeta(3)=\sum_{n=1}^\infty \frac{1}{n^3}=1.2020569 \c...
C/C++/C#

C++で麻雀ゲームを作る その3

switch文を使って牌とIDを紐付ける。とりあえずデバックのためにstringで返すようにした。std::string getPaiStr(int ID) { switch(ID){ case 1: return "萬1"; case 2...
C/C++/C#

遅延演算子の使い方

z変換を使うと遅延演算子が登場する。遅延演算子をzとすると次の関係が成り立つ。\begin{align}y(t+1)&=y(t)z \\y(t-1)&=y(t)z^{-1}\end{align}遅延演算子はそれ単体では機能せず、時系列データ...
C/C++/C#

C++で麻雀ゲームを作る その2

今回は手配を更新する関数を追加する。push_backで格納すればいい。#include<iostream>#include<vector>class Player {public: Player() { } Player(std::str...
C/C++/C#

C++で麻雀ゲームを作る その1

メインのプレーヤークラスの大枠を作った。細かい関数はおいおい#include<iostream>#include<vector>class Player {public: Player() { } Player(std::string na...
C/C++/C#

C++で共振周波数を計算する

RLC直列、並列回路の共振周波数は\begin{align}f=\frac{1}{2 \pi \sqrt{LC}}\end{align}となる。これをC++で計算する。実行結果235947ソースコードmain.cppint main() {...
C/C++/C#

Windows.hを使った時間計測

Windows.hが使えれば1ms程度の精度で計測ができる。読み込んでQueryPerformanceCounter(&start);//処理QueryPerformanceCounter(&end);処理を書けばいい。ソースコード#inc...
C/C++/C#

C++のcomplexを使って複素数を定義する関数を作る

これが全て。std::complex<double>(Re, Im)double型で受け取って放り込めば終わり。ソースコードstd::complex<double> dot(double Re, double Im) { return st...
C/C++/C#

C++で複素数のノルムを求める

複素数のノルムを求める。ノルムは\begin{align}z=\sqrt{x^2+y^2}\end{align}で求められる。ソースコードdouble dot2norm(std::complex<double> dot) { return ...
C/C++/C#

EX2 – エラーの修正をやってみた

問題(を解いてみた。修正箇所は「"」と「;」の付け忘れ、「5」の書き忘れ。私の環境ではbits/stdc++.hは通らないのでiostreamに変更している。あとusing namespace std;は宗教上の都合で削除した。修正前#in...
C/C++/C#

ポインタを使った値の代入

配列に直接入れてもポインタに代入しても結果は同じ。実行結果024681012141618ソースコード#include<iostream>int main() { int num; int* p = &num; int n = 10; for...