コーディング
のバックアップソース(No.8)
Unity学習帳2冊目
コーディング
のバックアップソース(No.8)
[
トップ
] [
差分
|
バックアップ
|
リロード
] [
新規
|
一覧
|
検索
|
最新
|
ヘルプ
]
[ ]
差分
を表示
現在との差分
を表示
コーディング
へ行く。
« Prev
Next »
TITLE:コーディング #contents #jsmath 有用なデザインパターンをサンプルコードとして羅列したページ **組み合わせ計算 [#md88b46e] プログラムコードではforループが利用できるので数学的ではないがシンプルな計算を行った #code(csharp){{ //組合せ計算 public int nCr(int n, int r) { if (n == r || r == 0) return 1; int deno = n; int nume = 1; for (int i = 2; i <= r; n--, i++) { deno *= (n - 1); nume *= i; } return deno / nume; } }} **値から特定桁の数字を抽出 [#a5631237] 値を\({ 10 }^{ n-1 }\)で割って、もう一度\(10\)で割った余りを拾えば狙った桁の数字を抽出できる(\(n\):桁数) 他のn進数でも同様の考え方で狙った桁を抽出できる #code(csharp){{ using UnityEngine; using System.Collections; public class test1 : MonoBehaviour { void Start() { print(Digit(123456789, 6)); //7桁目を表示(変数digは0を含んでカウントしている) } public int Digit(int value, int dig) { int n=1; for (int i = 0; i < dig; i++) { n *= 10; } int temp = value / n; return temp%10; } } }} //一例でゲーム、バブルボブルのスコアの百の位と十の位を同数にしてからクリアするとボーナスフルーツが出現するなどの処理に応用できる **デレゲートセレクタ [#oec6aa10] デレゲートを利用する事で関数を選択する事を可能とする #code(csharp){{ using UnityEngine; using System.Collections; public class Sum1 : MonoBehaviour { public enum Function { Linear, Gravity, } public Function function; delegate float FunctionDelegate (float x); FunctionDelegate[] FunctionDelegates = { Linear, Gravity, }; void Start () { FunctionDelegate f = FunctionDelegates [(int)function]; print (f (2)); } static float Linear (float dt) { return 1f * dt; } static float Gravity (float dt) { return 9.8f * dt; } } }} **Enumerableを利用した数列の作成 [#n15ee342] 等差数列、等比数列を作成する #code(csharp){{ using UnityEngine; using System.Collections; using System.Linq; public class Numbers2 : MonoBehaviour { void Start () { float[] quary = SequenceDiff (1, 2, 5); //float[] quary = SequenceRatio (1, 2, 5); foreach (var item in quary) { print (item); } } //等差数列 float[] SequenceDiff (float a, float d, int count) { float[] quary = Enumerable.Range (1, count).Select (n => a + (n - 1) * d).ToArray (); return quary; } //等比数列 float[] SequenceRatio (float a, float r, int count) { float[] quary = Enumerable.Range (1, count).Select (n => a * Mathf.Pow (r, n)).ToArray (); return quary; } } }} **IEnumerableを利用した数列の作成 [#b00a3820] #code(csharp){{ using UnityEngine; using System.Collections; using System.Collections.Generic; public class Pattern : MonoBehaviour { void Start () { IEnumerable<float> number = GeneratorNum (5, 20); foreach (var item in number) { print (item); } } IEnumerable<float> GeneratorNum (int x, int y) { for (int i = x; i <= y; i++) { yield return i; } } } }}
« Prev
Next »
コーディング のバックアップ一覧
コーディング のバックアップソース(No. All)
1: 2015-04-17 (金) 17:56:18
osinko
2: 2015-04-17 (金) 18:29:14
osinko
3: 2015-06-03 (水) 23:46:55
osinko
4: 2015-12-02 (水) 17:53:56
osinko
5: 2015-12-03 (木) 02:19:38
osinko
6: 2015-12-03 (木) 11:31:14
osinko
7: 2016-01-28 (木) 20:51:38
osinko
8: 2016-01-30 (土) 03:10:18
osinko
9: 2016-05-13 (金) 01:56:42
osinko
10: 2016-06-18 (土) 00:31:03
osinko
11: 2016-06-18 (土) 10:57:45
osinko
12: 2016-06-18 (土) 21:00:31
osinko
13: 2016-07-31 (日) 22:26:06
osinko
現: 2016-08-01 (月) 01:45:01
osinko