summaryrefslogtreecommitdiff
path: root/Assets/Algorithms
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Algorithms')
-rw-r--r--Assets/Algorithms/01_Generic.meta8
-rw-r--r--Assets/Algorithms/01_Generic/说明.txt0
-rw-r--r--Assets/Algorithms/01_Generic/说明.txt.meta7
-rw-r--r--Assets/Algorithms/02_Geometry.meta8
-rw-r--r--Assets/Algorithms/02_Geometry/说明.txt0
-rw-r--r--Assets/Algorithms/02_Geometry/说明.txt.meta7
-rw-r--r--Assets/Algorithms/03_Search.meta8
-rw-r--r--Assets/Algorithms/03_Search/说明.txt0
-rw-r--r--Assets/Algorithms/04_Pathfinding.meta8
-rw-r--r--Assets/Algorithms/04_Pathfinding/AStarPathfinding.cs18
-rw-r--r--Assets/Algorithms/04_Pathfinding/PathFinding.unity300
-rw-r--r--Assets/Algorithms/04_Pathfinding/PathFinding.unity.meta7
-rw-r--r--Assets/Algorithms/Algorithms.cs34
-rw-r--r--Assets/Algorithms/Algorithms.cs.meta (renamed from Assets/Algorithms/04_Pathfinding/AStarPathfinding.cs.meta)2
-rw-r--r--Assets/Algorithms/Recursion.cs63
-rw-r--r--Assets/Algorithms/Recursion.cs.meta11
-rw-r--r--Assets/Algorithms/说明.txt2
-rw-r--r--Assets/Algorithms/说明.txt.meta (renamed from Assets/Algorithms/03_Search/说明.txt.meta)2
18 files changed, 112 insertions, 373 deletions
diff --git a/Assets/Algorithms/01_Generic.meta b/Assets/Algorithms/01_Generic.meta
deleted file mode 100644
index 38fc722..0000000
--- a/Assets/Algorithms/01_Generic.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 49e7f1e9210c36f459a8579d9d1706e2
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Algorithms/01_Generic/说明.txt b/Assets/Algorithms/01_Generic/说明.txt
deleted file mode 100644
index e69de29..0000000
--- a/Assets/Algorithms/01_Generic/说明.txt
+++ /dev/null
diff --git a/Assets/Algorithms/01_Generic/说明.txt.meta b/Assets/Algorithms/01_Generic/说明.txt.meta
deleted file mode 100644
index e6615bd..0000000
--- a/Assets/Algorithms/01_Generic/说明.txt.meta
+++ /dev/null
@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: 090f934784733db4bbd28b04c857cda4
-TextScriptImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Algorithms/02_Geometry.meta b/Assets/Algorithms/02_Geometry.meta
deleted file mode 100644
index 3275f64..0000000
--- a/Assets/Algorithms/02_Geometry.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 23d9820c1cb98cb43887b1241fd0afec
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Algorithms/02_Geometry/说明.txt b/Assets/Algorithms/02_Geometry/说明.txt
deleted file mode 100644
index e69de29..0000000
--- a/Assets/Algorithms/02_Geometry/说明.txt
+++ /dev/null
diff --git a/Assets/Algorithms/02_Geometry/说明.txt.meta b/Assets/Algorithms/02_Geometry/说明.txt.meta
deleted file mode 100644
index 8308a43..0000000
--- a/Assets/Algorithms/02_Geometry/说明.txt.meta
+++ /dev/null
@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: 4175678562e71954aae8ee2bb15e49e4
-TextScriptImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Algorithms/03_Search.meta b/Assets/Algorithms/03_Search.meta
deleted file mode 100644
index aff6d3a..0000000
--- a/Assets/Algorithms/03_Search.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: bc4e655f4044bf54d93829b52b707dcc
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Algorithms/03_Search/说明.txt b/Assets/Algorithms/03_Search/说明.txt
deleted file mode 100644
index e69de29..0000000
--- a/Assets/Algorithms/03_Search/说明.txt
+++ /dev/null
diff --git a/Assets/Algorithms/04_Pathfinding.meta b/Assets/Algorithms/04_Pathfinding.meta
deleted file mode 100644
index e1dfa1f..0000000
--- a/Assets/Algorithms/04_Pathfinding.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 397d06bf756e6f24db1de7ae08b644f0
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Algorithms/04_Pathfinding/AStarPathfinding.cs b/Assets/Algorithms/04_Pathfinding/AStarPathfinding.cs
deleted file mode 100644
index 80ba51d..0000000
--- a/Assets/Algorithms/04_Pathfinding/AStarPathfinding.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class AStarPathfinding : MonoBehaviour
-{
- // Start is called before the first frame update
- void Start()
- {
-
- }
-
- // Update is called once per frame
- void Update()
- {
-
- }
-}
diff --git a/Assets/Algorithms/04_Pathfinding/PathFinding.unity b/Assets/Algorithms/04_Pathfinding/PathFinding.unity
deleted file mode 100644
index afeda4c..0000000
--- a/Assets/Algorithms/04_Pathfinding/PathFinding.unity
+++ /dev/null
@@ -1,300 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!29 &1
-OcclusionCullingSettings:
- m_ObjectHideFlags: 0
- serializedVersion: 2
- m_OcclusionBakeSettings:
- smallestOccluder: 5
- smallestHole: 0.25
- backfaceThreshold: 100
- m_SceneGUID: 00000000000000000000000000000000
- m_OcclusionCullingData: {fileID: 0}
---- !u!104 &2
-RenderSettings:
- m_ObjectHideFlags: 0
- serializedVersion: 9
- m_Fog: 0
- m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
- m_FogMode: 3
- m_FogDensity: 0.01
- m_LinearFogStart: 0
- m_LinearFogEnd: 300
- m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
- m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
- m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
- m_AmbientIntensity: 1
- m_AmbientMode: 0
- m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
- m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
- m_HaloStrength: 0.5
- m_FlareStrength: 1
- m_FlareFadeSpeed: 3
- m_HaloTexture: {fileID: 0}
- m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
- m_DefaultReflectionMode: 0
- m_DefaultReflectionResolution: 128
- m_ReflectionBounces: 1
- m_ReflectionIntensity: 1
- m_CustomReflection: {fileID: 0}
- m_Sun: {fileID: 0}
- m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
- m_UseRadianceAmbientProbe: 0
---- !u!157 &3
-LightmapSettings:
- m_ObjectHideFlags: 0
- serializedVersion: 12
- m_GIWorkflowMode: 1
- m_GISettings:
- serializedVersion: 2
- m_BounceScale: 1
- m_IndirectOutputScale: 1
- m_AlbedoBoost: 1
- m_EnvironmentLightingMode: 0
- m_EnableBakedLightmaps: 1
- m_EnableRealtimeLightmaps: 0
- m_LightmapEditorSettings:
- serializedVersion: 12
- m_Resolution: 2
- m_BakeResolution: 40
- m_AtlasSize: 1024
- m_AO: 0
- m_AOMaxDistance: 1
- m_CompAOExponent: 1
- m_CompAOExponentDirect: 0
- m_ExtractAmbientOcclusion: 0
- m_Padding: 2
- m_LightmapParameters: {fileID: 0}
- m_LightmapsBakeMode: 1
- m_TextureCompression: 1
- m_FinalGather: 0
- m_FinalGatherFiltering: 1
- m_FinalGatherRayCount: 256
- m_ReflectionCompression: 2
- m_MixedBakeMode: 2
- m_BakeBackend: 1
- m_PVRSampling: 1
- m_PVRDirectSampleCount: 32
- m_PVRSampleCount: 512
- m_PVRBounces: 2
- m_PVREnvironmentSampleCount: 256
- m_PVREnvironmentReferencePointCount: 2048
- m_PVRFilteringMode: 1
- m_PVRDenoiserTypeDirect: 1
- m_PVRDenoiserTypeIndirect: 1
- m_PVRDenoiserTypeAO: 1
- m_PVRFilterTypeDirect: 0
- m_PVRFilterTypeIndirect: 0
- m_PVRFilterTypeAO: 0
- m_PVREnvironmentMIS: 1
- m_PVRCulling: 1
- m_PVRFilteringGaussRadiusDirect: 1
- m_PVRFilteringGaussRadiusIndirect: 5
- m_PVRFilteringGaussRadiusAO: 2
- m_PVRFilteringAtrousPositionSigmaDirect: 0.5
- m_PVRFilteringAtrousPositionSigmaIndirect: 2
- m_PVRFilteringAtrousPositionSigmaAO: 1
- m_ExportTrainingData: 0
- m_TrainingDataDestination: TrainingData
- m_LightProbeSampleCountMultiplier: 4
- m_LightingDataAsset: {fileID: 0}
- m_LightingSettings: {fileID: 0}
---- !u!196 &4
-NavMeshSettings:
- serializedVersion: 2
- m_ObjectHideFlags: 0
- m_BuildSettings:
- serializedVersion: 2
- agentTypeID: 0
- agentRadius: 0.5
- agentHeight: 2
- agentSlope: 45
- agentClimb: 0.4
- ledgeDropHeight: 0
- maxJumpAcrossDistance: 0
- minRegionArea: 2
- manualCellSize: 0
- cellSize: 0.16666667
- manualTileSize: 0
- tileSize: 256
- accuratePlacement: 0
- maxJobWorkers: 0
- preserveTilesOutsideBounds: 0
- debug:
- m_Flags: 0
- m_NavMeshData: {fileID: 0}
---- !u!1 &490219957
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 490219960}
- - component: {fileID: 490219959}
- - component: {fileID: 490219958}
- m_Layer: 0
- m_Name: Main Camera
- m_TagString: MainCamera
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!81 &490219958
-AudioListener:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 490219957}
- m_Enabled: 1
---- !u!20 &490219959
-Camera:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 490219957}
- m_Enabled: 1
- serializedVersion: 2
- m_ClearFlags: 1
- m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
- m_projectionMatrixMode: 1
- m_GateFitMode: 2
- m_FOVAxisMode: 0
- m_SensorSize: {x: 36, y: 24}
- m_LensShift: {x: 0, y: 0}
- m_FocalLength: 50
- m_NormalizedViewPortRect:
- serializedVersion: 2
- x: 0
- y: 0
- width: 1
- height: 1
- near clip plane: 0.3
- far clip plane: 1000
- field of view: 60
- orthographic: 0
- orthographic size: 5
- m_Depth: -1
- m_CullingMask:
- serializedVersion: 2
- m_Bits: 4294967295
- m_RenderingPath: -1
- m_TargetTexture: {fileID: 0}
- m_TargetDisplay: 0
- m_TargetEye: 3
- m_HDR: 1
- m_AllowMSAA: 1
- m_AllowDynamicResolution: 0
- m_ForceIntoRT: 0
- m_OcclusionCulling: 1
- m_StereoConvergence: 10
- m_StereoSeparation: 0.022
---- !u!4 &490219960
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 490219957}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 1, z: -10}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 0}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &1788501447
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1788501449}
- - component: {fileID: 1788501448}
- m_Layer: 0
- m_Name: Directional Light
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!108 &1788501448
-Light:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1788501447}
- m_Enabled: 1
- serializedVersion: 10
- m_Type: 1
- m_Shape: 0
- m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
- m_Intensity: 1
- m_Range: 10
- m_SpotAngle: 30
- m_InnerSpotAngle: 21.80208
- m_CookieSize: 10
- m_Shadows:
- m_Type: 2
- m_Resolution: -1
- m_CustomResolution: -1
- m_Strength: 1
- m_Bias: 0.05
- m_NormalBias: 0.4
- m_NearPlane: 0.2
- m_CullingMatrixOverride:
- e00: 1
- e01: 0
- e02: 0
- e03: 0
- e10: 0
- e11: 1
- e12: 0
- e13: 0
- e20: 0
- e21: 0
- e22: 1
- e23: 0
- e30: 0
- e31: 0
- e32: 0
- e33: 1
- m_UseCullingMatrixOverride: 0
- m_Cookie: {fileID: 0}
- m_DrawHalo: 0
- m_Flare: {fileID: 0}
- m_RenderMode: 0
- m_CullingMask:
- serializedVersion: 2
- m_Bits: 4294967295
- m_RenderingLayerMask: 1
- m_Lightmapping: 4
- m_LightShadowCasterMode: 0
- m_AreaSize: {x: 1, y: 1}
- m_BounceIntensity: 1
- m_ColorTemperature: 6570
- m_UseColorTemperature: 0
- m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
- m_UseBoundingSphereOverride: 0
- m_ShadowRadius: 0
- m_ShadowAngle: 0
---- !u!4 &1788501449
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1788501447}
- m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
- m_LocalPosition: {x: 0, y: 3, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 0}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
diff --git a/Assets/Algorithms/04_Pathfinding/PathFinding.unity.meta b/Assets/Algorithms/04_Pathfinding/PathFinding.unity.meta
deleted file mode 100644
index 79e62ae..0000000
--- a/Assets/Algorithms/04_Pathfinding/PathFinding.unity.meta
+++ /dev/null
@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: 76e00398d0d0380468c9f9f3ad59d027
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Algorithms/Algorithms.cs b/Assets/Algorithms/Algorithms.cs
new file mode 100644
index 0000000..31be4a8
--- /dev/null
+++ b/Assets/Algorithms/Algorithms.cs
@@ -0,0 +1,34 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace AlgorithmCollection
+{
+
+ public static partial class Algorithms
+ {
+ public static void Swap<T>(ref T v1, ref T v2)
+ {
+ T temp = v1;
+ v1 = v2;
+ v2 = temp;
+ }
+
+ public static void Swap<T>(ref List<T> data, int i1, int i2)
+ {
+ T temp = data[i1];
+ data[i1] = data[i2];
+ data[i2] = temp;
+ }
+
+ // 阶乘
+ public static int Factorial(int n)
+ {
+ if (n == 1)
+ return 1;
+ return n * Factorial(n - 1);
+ }
+
+ }
+
+} \ No newline at end of file
diff --git a/Assets/Algorithms/04_Pathfinding/AStarPathfinding.cs.meta b/Assets/Algorithms/Algorithms.cs.meta
index 5cd6112..b06d1f9 100644
--- a/Assets/Algorithms/04_Pathfinding/AStarPathfinding.cs.meta
+++ b/Assets/Algorithms/Algorithms.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 66158ef978f1a7540addceae83d08239
+guid: 2600020773f30ce428a6884de5077f0a
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Assets/Algorithms/Recursion.cs b/Assets/Algorithms/Recursion.cs
new file mode 100644
index 0000000..30ebd8a
--- /dev/null
+++ b/Assets/Algorithms/Recursion.cs
@@ -0,0 +1,63 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using AlgorithmCollection;
+
+// 递归与分治算法
+
+namespace AlgorithmCollection.Recursion
+{
+
+ public static class RecursionHelper
+ {
+
+ #region 全排列,返回数据的所有组合
+ public static void Permutations<T>(List<T> data, ref List<List<T>> perms)
+ {
+ if (perms == null)
+ perms = new List<List<T>>();
+ foreach(List<T> perm in perms)
+ {
+ List<T> p = new List<T>(perm);
+ perms.Add(p);
+ }
+ }
+
+ // 生成器形式,每次返回一个组合
+ public static IEnumerable Permutations<T>(List<T> data)
+ {
+ foreach(var perm in _Permutations(data, 0, data.Count - 1))
+ {
+ yield return perm;
+ }
+ }
+
+ // 计算start~end范围内的全排列
+ private static IEnumerable _Permutations<T>(List<T> data, int start , int end, List<T> perm = null)
+ {
+ if(perm == null)
+ perm = new List<T>(data.Count);
+ if(start == end)
+ {
+ perm.Add(data[start]);
+ yield return perm;
+ perm.RemoveAt(perm.Count - 1);
+ }
+ else
+ {
+ for (int i = start; i <= end; ++i)
+ {
+ perm.Add(data[i]);
+ Algorithms.Swap(ref data, start, i);
+ IEnumerator itor = _Permutations(data, start + 1, end, perm).GetEnumerator();
+ while(itor.MoveNext())
+ yield return itor.Current;
+ Algorithms.Swap(ref data, start, i);
+ perm.RemoveAt(perm.Count - 1);
+ }
+ }
+ }
+ #endregion
+
+ }
+} \ No newline at end of file
diff --git a/Assets/Algorithms/Recursion.cs.meta b/Assets/Algorithms/Recursion.cs.meta
new file mode 100644
index 0000000..07aa1e2
--- /dev/null
+++ b/Assets/Algorithms/Recursion.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d879b71db7b8d344fafd47ce8522aae3
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Algorithms/说明.txt b/Assets/Algorithms/说明.txt
new file mode 100644
index 0000000..634f729
--- /dev/null
+++ b/Assets/Algorithms/说明.txt
@@ -0,0 +1,2 @@
+Algrothms.cs里是通用算法合集
+
diff --git a/Assets/Algorithms/03_Search/说明.txt.meta b/Assets/Algorithms/说明.txt.meta
index 231fb95..be7853f 100644
--- a/Assets/Algorithms/03_Search/说明.txt.meta
+++ b/Assets/Algorithms/说明.txt.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 1c40061e432b0ed42a672dbe8e834665
+guid: 64304d8e88db18b46bade48952f0e7f5
TextScriptImporter:
externalObjects: {}
userData: