Flat Leon Works

アプリやゲームを作ってます。

Flat Leon Works

Flat Leon Works は shinya の個人サイトです。 制作物 iOS用音楽再生アプリ「うさプレイヤ」 iOS用2Dアクションゲーム「センメツコースター」 iOS用ゲーム「うさぎのソリティア」 サイトマップ サイト概要など このサイトについて 近況 制作物 うさプレイヤ…

【Nim】お手軽契約プログラミング

Nim

この記事は「Nim Advent Calendar 2021」の25日目の記事として登録させてもらっています。 契約プログラミングとは 事前条件 事後条件 不変条件 Nimで(お手軽)契約プログラミング 事前条件をチェックする 事後条件をチェックする pre/postで記述できるように…

【Nim】無名プロシージャの書き方まとめ

Nim

この記事は「Nim Advent Calendar 2021」の24日目の記事として登録させてもらっています。 無名プロシージャの書き方 基本形 returnを省略 仮引数を省略(無い場合) 戻り値型を省略(無い場合) procと戻り値型を省略(=>記法を使う) do記法を使う(引数でのみ使…

【Nim】弱参照を実装してみる

Nim

この記事は「Nim Advent Calendar 2021」の23日目の記事として登録させてもらっています。 弱参照とは 弱参照を実装してみる 使用例 注意点 参考リンク 弱参照とは 弱参照の定義はいろいろあると思いますが、ここでは参照先が破棄されたことを検知できる参照…

【Nim】文字列リテラルと書式について

Nim

この記事は「Nim Advent Calendar 2021」の21日目の記事として登録させてもらっています。 文字列リテラルと書式の組み合わせ爆発 Nimは複数の文字列リテラルの書き方があり、さらに書式も複数の書き方があります。 書式の書き方を羅列してみると… &"書式" &…

【Nim】XMLをDOMで読み込む

Nim

この記事は「Nim Advent Calendar 2021」の20日目の記事として登録させてもらっています。 NimのXMLパーサーについて (おまけ)SAXにするかDOMにするか XMLファイルを読み込む DOM(XmlNode)にアクセスする 自身(要素)の情報にアクセスする 子要素を取得する …

【Nim 小ネタ】2つの型が同一かどうかを判定する

Nim

この記事は「Nim Advent Calendar 2021」の17日目の記事として登録させてもらっています。 問題 突然ですが、genericsの型引数が同一の型を指すのかどうかを判定したい場合どうすればよいでしょうか。 proc hoge[T,U]() = when T == U: assert( false ) echo…

【Nim 小ネタ】C++のdynamic_cast相当のことを行う

Nim

この記事は「Nim Advent Calendar 2021」の16日目の記事として登録させてもらっています。 C++のdynamic_cast C++にはdynamic_castというキャストがあり、これを使うと安全にダウンキャスト*1を行うことができます。 ここでいう「安全」とは、ダウンキャスト…

【Nim】公式より便利なオンライン実行環境「Wandbox」の紹介

Nim

この記事は「Nim Advent Calendar 2021」15日目の記事として登録させてもらっています。 オンライン実行環境 プログラミング中、プログラミング言語の文法や挙動を確認してみたくなることがあります。そういうときに便利なのがWebサイト上でコードの入力と実…

【Nim】VSCodeで始めるNimプログラミング

Nim

この記事は「Nim Advent Calendar 2021」の9日目の記事として登録させてもらっています。 はじめに Nimとは Nimのインストール choosenimのインストール(Macの場合) xzコマンドのインストール(必要な場合) homebrewのインストール(必要な場合) choosenimのイ…

はてなブログの古いテーマでアイコンが表示されなくなったときの対策(FontAwesomeが原因の場合)

このブログも結構放置してしまっていますが、久しぶりに見たら一部のアイコンや画像が表示されなくなってました。 ↓右側の日付のところや、左側のプロフィールのところのアイコンが表示エラーになっています ↓正しい表示はこんな感じです 原因 表示されてい…

デジタルで履歴書を用意する方法(家にプリンターが無くてもOK)

先日転職活動を行った際に履歴書の作成がいろいろと手間だったので、今後また必要になったときのためにまとめておきます。 前提 注意 履歴書作成編 履歴書テンプレートデータを入手する 履歴書データを作成する 証明写真を用意する デジタルデータも入手でき…

「センメツコースター」のプライバシーポリシー

iOSアプリ「センメツコースター」(開発者:shinya)のプライバシーポリシーです。 「センメツコースター」では、個人情報の収集は一切行っておりません。お問い合わせ頂いた際のメールアドレスも、返信以外の用途には使っておりません。 「センメツコースター…

iOS用ゲーム「うさぎのソリティア」の紹介

Unityの練習をかねてソリティアのゲームを作ってみました。完全無料で広告も無しです。一応iPadにも対応しています。Android版はありません*1。 ゲームルールとして「1枚めくり」「3枚めくり」を選ぶことができます ベストタイム、勝率が記録されます(「1枚…

【C#】コルーチン(イテレータブロック)で状態遷移

C#によるゲームプログラミングで、コルーチンを使った状態遷移をやってみたら便利だったのでその方法を紹介します。 状態遷移とは 状態遷移をenumとswitch文で実装する コルーチンによる状態遷移の実装 コルーチンによる実装のメリット 見通しがよくなる 一…

「うさぎのソリティア」プライバシーポリシー

iOSアプリ「うさぎのソリティア」(開発者:shinya)のプライバシーポリシーです。 「うさぎのソリティア」では、個人情報の収集は一切行っておりません。お問い合わせ頂いた際のメールアドレスも、返信以外の用途には使っておりません。 「うさぎのソリティア…

2018年重宝したツールベスト3

去年〜今年あたりに使い始めて重宝したツールを3つ紹介します。ちなみに普段はMacを使っていますが、今回紹介するツールはすべてWindowsでも利用可能です。 第3位 Visual Studio Code ( テキストエディタ、開発環境 ) Visual Studio Code公式サイト VSCodeと…

【Nim】引数渡しの罠

Nim

Nimには値型と参照型があるのですが、引数として渡したときの挙動が C++ や C# のような他のプログラミング言語とは違う場合があるようなので調べてみました。それほど詳しく調査したわけではないので注意してください。 執筆時のNimのバージョンはv0.19.0で…

【Unity】DOTweenで複数の移動を同時に行う

DOTweenによる移動は加算ではなく代入で行われるため、基本的には複数の移動を同時に行うことができません*1。例えば、Shakeしながら移動させようとすると、Shakeか移動のどちらかが打ち消されてしまい意図した通りには動きません。しかし、やり方を工夫する…

【Unity】ソースコード編集->エディタプレイの手間を減らす(Mac)

MacでのUnityのプログラミング環境に不満があったのでちょっと改善してみました。 2018/08/19 追記 : Visual Studio Codeの場合のやり方を追加しました。 MacでのUnityプログラミング作業フローの不満点 改善後の作業フロー 方法 VisualStudio For Mac側の仕…

C#とC++の比較

C#を勉強中なのですが、C#はC++とかなり似ていながらも微妙な違いもあったりして、そこが結構ややこしいです。そこでC#とC++の違いをまとめてみました。 注意 C#はC#3.0(.Net Framework 3.5) を想定*1しています C++はC++14あたりを想定しています 「C#とC++…

【C++アイデア】ラムダ式で発生しがちな不正な参照(ダングリングポインタ)を回避する

C++

C++11から導入されたラムダ式はとても便利な機能ですが、その使われ方から不正な参照いわゆるダングリングポインタが発生しやすい機能でもあります。今回はその回避策を考えてみます。 なぜ不正な参照(ダングリングポインタ)が発生しやすいのか 不正な参照の…

【C++】C++関連ブックマーク

C++

C++関連でよく使うサイトや気になった記事をここにまとめておきます。 リファレンス cppreference.com : 有志で運営されているらしいC++のリファレンスサイト。情報が非常に充実している cpprefjp - C++日本語リファレンス : 日本語のC++リファレンスサイト…

【C++】弱参照クラスを自作する

C++

C++11から標準ライブラリにstd::weak_ptrが入りました。std::weak_ptrを使うことで弱参照を行えるようになるのですが、ちょっと使い勝手が悪いので弱参照クラスを自作してみました。 ちなみに、弱参照の良さについてはこちら↓で紹介しています。 【C++】弱参…

【C++】弱参照のすすめ

C++

弱参照というものをご存知でしょうか。弱参照はとても便利で個人的にも気に入っている仕組みなのですが、この便利さがあまり知られていないような気がします。そこで今回は弱参照の良さを紹介したいと思います。 (注意) この記事はC++を前提としています。他…

【C++】初期化子リスト関連機能を大雑把に理解する

C++

C++11から初期化子リストが導入されました。初期化子リストは簡単に見えて結構難しい機能です。そこで初期化子リストを大雑把に理解するための記事を書いてみることにしました。理解することを優先しているので言葉の定義などが不正確だったりするかもしれま…

【C++】C++14勉強メモ

C++

「C++11のお勉強」に続いて、C++14のお勉強です。 2進数リテラル 通常関数での戻り値型の型推論 decltype(auto) 後置き戻り値型でのauto ラムダ式の初期化キャプチャ ジェネリックラムダ 変数テンプレート constexprの制限緩和 deprecated属性 数値リテラル…

【C++】C++11以降の戻り値型の記述方法まとめ

C++

C++11になり、後置き戻り値型、auto型、ラムダ式が導入され、戻り値の記述方法が大幅に増えました。またC++14でさらに新しい記述方法が加わったのでとてもややこしいことになっています。そこで戻り値型の記述方法をまとめてみることにしました。(勉強中のた…

【C++】C++11勉強メモ

C++

ずっとC++03縛りを続けてきましたが、そろそろC++11に手を出してもいいだろうと思いC++11の勉強を始めてみました。C++11の情報はcpprefjpさんのページを参考にしています*1。 新機能/変更点 auto decltype 範囲for文 初期化子リスト 一様初期化 ムーブ(ムー…

MacとWindowsで共通のバッチファイル(シェルスクリプト)を利用できるようにする

Windowsにはダブルクリックでスクリプトを実行できるバッチファイルという便利な仕組みがあります。Macにはバッチファイルというものはありませんが、拡張子を.commandにしたシェルスクリプトを用意することでバッチファイルと同じようにダブルクリックでス…