diff options
| author | Syndamia <kami02882@gmail.com> | 2019-09-09 21:36:14 +0300 |
|---|---|---|
| committer | Syndamia <kami02882@gmail.com> | 2019-09-09 21:36:14 +0300 |
| commit | d1b9410b01182238cc3d36324c84bf9d1f454ac1 (patch) | |
| tree | c0baf6ef6e53f7ef80b10fd042adf0428c8e0ca1 /Bitspace 2.0 | |
| parent | 0b4849692ff13eb313d9cbf4e570cb842fde1047 (diff) | |
| download | Shower-d1b9410b01182238cc3d36324c84bf9d1f454ac1.tar Shower-d1b9410b01182238cc3d36324c84bf9d1f454ac1.tar.gz Shower-d1b9410b01182238cc3d36324c84bf9d1f454ac1.zip | |
Began the Bitspace 2.0 project. Mainly worked on issues #48 and #49, the overall structure of the program and trying to catch up to Bitspace, learning from my mistakes
Diffstat (limited to 'Bitspace 2.0')
| -rw-r--r-- | Bitspace 2.0/Bitspace 2.0.sln | 25 | ||||
| -rw-r--r-- | Bitspace 2.0/Bitspace 2.0/App.config | 6 | ||||
| -rw-r--r-- | Bitspace 2.0/Bitspace 2.0/Bitspace 2.0.csproj | 60 | ||||
| -rw-r--r-- | Bitspace 2.0/Bitspace 2.0/Game creatures/Creatures.cs | 11 | ||||
| -rw-r--r-- | Bitspace 2.0/Bitspace 2.0/Game creatures/Mob.cs | 95 | ||||
| -rw-r--r-- | Bitspace 2.0/Bitspace 2.0/Game creatures/Player.cs | 32 | ||||
| -rw-r--r-- | Bitspace 2.0/Bitspace 2.0/Game map/Biome.cs | 57 | ||||
| -rw-r--r-- | Bitspace 2.0/Bitspace 2.0/Game map/Map.cs | 111 | ||||
| -rw-r--r-- | Bitspace 2.0/Bitspace 2.0/Graphics.cs | 32 | ||||
| -rw-r--r-- | Bitspace 2.0/Bitspace 2.0/KeyBindings.cs | 13 | ||||
| -rw-r--r-- | Bitspace 2.0/Bitspace 2.0/Program.cs | 25 | ||||
| -rw-r--r-- | Bitspace 2.0/Bitspace 2.0/Properties/AssemblyInfo.cs | 36 |
12 files changed, 503 insertions, 0 deletions
diff --git a/Bitspace 2.0/Bitspace 2.0.sln b/Bitspace 2.0/Bitspace 2.0.sln new file mode 100644 index 0000000..d05b548 --- /dev/null +++ b/Bitspace 2.0/Bitspace 2.0.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29230.47 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bitspace 2.0", "Bitspace 2.0\Bitspace 2.0.csproj", "{08984D4B-A069-4347-9CEC-0B0130EECE42}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {08984D4B-A069-4347-9CEC-0B0130EECE42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {08984D4B-A069-4347-9CEC-0B0130EECE42}.Debug|Any CPU.Build.0 = Debug|Any CPU + {08984D4B-A069-4347-9CEC-0B0130EECE42}.Release|Any CPU.ActiveCfg = Release|Any CPU + {08984D4B-A069-4347-9CEC-0B0130EECE42}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {0DD527CF-AB5F-4314-9149-29740D2C85DC} + EndGlobalSection +EndGlobal diff --git a/Bitspace 2.0/Bitspace 2.0/App.config b/Bitspace 2.0/Bitspace 2.0/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/Bitspace 2.0/Bitspace 2.0/App.config @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8" ?> +<configuration> + <startup> + <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /> + </startup> +</configuration>
\ No newline at end of file diff --git a/Bitspace 2.0/Bitspace 2.0/Bitspace 2.0.csproj b/Bitspace 2.0/Bitspace 2.0/Bitspace 2.0.csproj new file mode 100644 index 0000000..5f5e2e8 --- /dev/null +++ b/Bitspace 2.0/Bitspace 2.0/Bitspace 2.0.csproj @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProjectGuid>{08984D4B-A069-4347-9CEC-0B0130EECE42}</ProjectGuid> + <OutputType>Exe</OutputType> + <RootNamespace>Bitspace_2._0</RootNamespace> + <AssemblyName>Bitspace 2.0</AssemblyName> + <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> + <Deterministic>true</Deterministic> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Core" /> + <Reference Include="System.Xml.Linq" /> + <Reference Include="System.Data.DataSetExtensions" /> + <Reference Include="Microsoft.CSharp" /> + <Reference Include="System.Data" /> + <Reference Include="System.Net.Http" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="Game creatures\Creatures.cs" /> + <Compile Include="Game map\Biome.cs" /> + <Compile Include="Game creatures\Player.cs" /> + <Compile Include="Graphics.cs" /> + <Compile Include="KeyBindings.cs" /> + <Compile Include="Game map\Map.cs" /> + <Compile Include="Game creatures\Mob.cs" /> + <Compile Include="Program.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <None Include="App.config" /> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> +</Project>
\ No newline at end of file diff --git a/Bitspace 2.0/Bitspace 2.0/Game creatures/Creatures.cs b/Bitspace 2.0/Bitspace 2.0/Game creatures/Creatures.cs new file mode 100644 index 0000000..025a727 --- /dev/null +++ b/Bitspace 2.0/Bitspace 2.0/Game creatures/Creatures.cs @@ -0,0 +1,11 @@ +using Bitspace_2._0.Game_creatures; +using System; +using System.Collections.Generic; + +namespace Bitspace_2._0.Game_creatures { + public static class Creatures { //when adding new collections, update Graphics.Update() + public static Dictionary<string, Player> Players = new Dictionary<string, Player>() { + { "Player1", new Player("The player", '@', ConsoleColor.White, 10) } + }; + } +} diff --git a/Bitspace 2.0/Bitspace 2.0/Game creatures/Mob.cs b/Bitspace 2.0/Bitspace 2.0/Game creatures/Mob.cs new file mode 100644 index 0000000..a236046 --- /dev/null +++ b/Bitspace 2.0/Bitspace 2.0/Game creatures/Mob.cs @@ -0,0 +1,95 @@ +using Bitspace_2._0.Game_map; +using System; +using System.Linq; + +namespace Bitspace_2._0.Game_creatures { + abstract public class Mob { //short for mobile object + protected static Random rndNum = new Random(); //the random class uses certain patters to it's randomness, this way it will always give a "random" number + + public string name; + public char body; + public ConsoleColor Color { get; protected set; } + + public int XPos { get; set; } + public int YPos { get; set; } + public int MovementFactor { get; set; } + public int DefaultMovementFactor { get; protected set; } + + public int Health { get; set; } + public int MaxHealth { get; protected set; } + public int LungCapacity { get; set; } + public int MaxLungCapacity { get; protected set; } + public int Armour { get; protected set; } + public int MaxArmour { get; protected set; } + + public void MoveRandomly() { + var randomDirection = rndNum.Next(MovementFactor); //the bigger it is, the less chance for a mob to move from it's current position + + Move(randomDirection); + } + + protected void Move(int direction) { + switch (direction) { + case 1: //North + if (this.YPos > Map.MinY) YPos--; + break; + case 2: //South + if (this.YPos < Map.MaxY) YPos++; + break; + case 3: //West + if (this.XPos > Map.MinX) XPos--; + break; + case 4: //East + if (this.XPos < Map.MaxX) XPos++; + break; + } + } + + public Mob (string name, char body, ConsoleColor color, int maxHealth) + : this(name, body, color, 20, maxHealth, 10, 0) { } + + public Mob (string name, char body, ConsoleColor color, int maxHealth, int maxLungCapacity) + : this(name, body, color, 20, maxHealth, maxLungCapacity, 0) { } + + public Mob(string name, char body, ConsoleColor color, int defaultMovementFactor, int maxHealth, int maxLungCapacity) + : this(name, body, color, defaultMovementFactor, maxHealth, maxLungCapacity, 0) { } + + public Mob (string name, char body, ConsoleColor color, int defaultMovementFactor, int maxHealth, int maxLungCapacity, int maxArmour) { + this.Name = name; + this.Body = body; + this.Color = color; + + this.XPos = 0; this.YPos = 0; //temporary + this.MovementFactor = this.DefaultMovementFactor = defaultMovementFactor; + + this.Health = this.MaxHealth = maxHealth; + this.LungCapacity = this.MaxLungCapacity = maxLungCapacity; + this.Armour = this.MaxArmour = maxArmour; + } + + public override string ToString() { + return $"{this.Name} | Health: {this.Health} | Armour: {this.Armour} | Air: {new string('O', this.LungCapacity)}\r\n" + + $"X: {this.XPos} | Y: {this.YPos}"; + } + + public string Name { + get { return this.name; } + protected set { + if (!value.Any(c => (c > 47 && c < 58) || (c > 64 && c < 91) || (c > 96 && c < 123) || c == '_' || c == ' ')) { + throw new ArgumentException("Player name can be composed only of small letters, big letters, numbers, underscores and spaces."); + } + this.name = value; + } + } + + public char Body { + get { return this.body; } + protected set { + if (value < 33 || value > 126) { //TODO: limit it even more (in the end) + throw new ArgumentException("Body character can only be from the ASCII printable characters (from 32 to 126), without the space character (32)"); + } + this.body = value; + } + } + } +} diff --git a/Bitspace 2.0/Bitspace 2.0/Game creatures/Player.cs b/Bitspace 2.0/Bitspace 2.0/Game creatures/Player.cs new file mode 100644 index 0000000..77acb57 --- /dev/null +++ b/Bitspace 2.0/Bitspace 2.0/Game creatures/Player.cs @@ -0,0 +1,32 @@ +using System; +using System.Linq; + +namespace Bitspace_2._0.Game_creatures { + public class Player : Mob { + public void InputAction() { + var pressedKey = Console.ReadKey().Key; + + if (KeyBindings.Movement.ContainsValue(pressedKey)) { + switch (KeyBindings.Movement.First(kp => kp.Value == pressedKey).Key) { + case "Forwards": Move(1); break; + case "Backwards": Move(2); break; + case "Left": Move(3); break; + case "Right": Move(4); break; + } + } + } + + public Player(string name, char body, ConsoleColor color, int maxHealth) + : base(name, body, color, 20, maxHealth, 10, 0) { } + + public Player(string name, char body, ConsoleColor color, int maxHealth, int maxLungCapacity) + : base(name, body, color, 20, maxHealth, maxLungCapacity, 0) { } + + public Player(string name, char body, ConsoleColor color, int defaultMovementFactor, int maxHealth, int maxLungCapacity) + : base(name, body, color, defaultMovementFactor, maxHealth, maxLungCapacity, 0) { } + + public Player(string name, char body, ConsoleColor color, int defaultMovementFactor, int maxHealth, int maxLungCapacity, int maxArmour) + : base(name, body, color, defaultMovementFactor, maxHealth, maxLungCapacity, maxArmour) { } + + } +} diff --git a/Bitspace 2.0/Bitspace 2.0/Game map/Biome.cs b/Bitspace 2.0/Bitspace 2.0/Game map/Biome.cs new file mode 100644 index 0000000..550857b --- /dev/null +++ b/Bitspace 2.0/Bitspace 2.0/Game map/Biome.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Bitspace_2._0.Game_map { + class Biome { + private string name; + + private char ground; + public ConsoleColor Color { get; private set; } + + public bool Suffocate { get; private set; } + //these values are per game tick / every time they are called + public int Damage { get; private set; } + public int Heal { get; private set; } + + public Biome(string name, char ground, ConsoleColor color) : this(name, ground, color, false, 0, 0) { } + + public Biome(string name, char ground, ConsoleColor color, bool suffocate) : this(name, ground, color, suffocate, 0, 0) { } + + public Biome(string name, char ground, ConsoleColor color, int damage, int heal) : this(name, ground, color, false, damage, heal) { } + + public Biome(string name, char ground, ConsoleColor color, bool suffocate, int damage, int heal) { + this.Name = name; + this.Ground = ground; + this.Color = color; + this.Suffocate = suffocate; + this.Damage = damage; + } + + public void AffectMob() { + //can be finished after implimenting mobs + } + + public string Name { + get { return name; } + private set { + if (!value.Any(c => (c > 47 && c < 58) || (c > 64 && c < 91) || (c > 96 && c < 123) || c == '_')) { + throw new ArgumentException("Biome name can be composed only of small letters, big letters, numbers and the underscore character"); + } + this.name = value; + } + } + + public char Ground { + get { return ground; } + private set { + if (value < 33 || value > 126) { + throw new ArgumentException("Biome ground character can only be from the ASCII printable characters (from 32 to 126), without the space character (32)"); + } + this.ground = value; + } + } + } +} diff --git a/Bitspace 2.0/Bitspace 2.0/Game map/Map.cs b/Bitspace 2.0/Bitspace 2.0/Game map/Map.cs new file mode 100644 index 0000000..7763554 --- /dev/null +++ b/Bitspace 2.0/Bitspace 2.0/Game map/Map.cs @@ -0,0 +1,111 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Bitspace_2._0.Game_map { + static class Map { + public static StringBuilder[] MobLayer { get; private set; } + public static StringBuilder[] ItemLayer { get; private set; } + public static StringBuilder[] MapLayer { get; private set; } + + //hardcoded temporarely + public static int MinX = 0; + public static int MaxX; + public static int MinY = 0; + public static int MaxY; + + private static Dictionary<string, Biome> biomeDB = new Dictionary<string, Biome>() { + { "Grass", new Biome("Grass", ',', ConsoleColor.Green, 0, 1) }, + { "Water", new Biome("Water", '-', ConsoleColor.Blue, true, 1, 0) }, + { "Lava", new Biome("Lava", '#', ConsoleColor.Red, 2, 0) } + }; + + public static void Generate(int width, int height) { + MaxX = width - 1;//temporary + MaxY = height - 1;//temporary + + MobLayer = NewBlanckSBArray(width, height); + ItemLayer = NewBlanckSBArray(width, height); + MapLayer = GenerateMapLayer(width, height); + } + + private static StringBuilder[] NewBlanckSBArray(int width, int height) { + StringBuilder[] sBArray = new StringBuilder[height]; + + for (int row = 0; row < height; row++) { + sBArray[row] = new StringBuilder(new string(' ', width)); + } + return sBArray; + } + + public static void ClearLayer(string layerName) { + switch (layerName) { + case "MobLayer": MobLayer = NewBlanckSBArray(MobLayer[0].Length, MobLayer.Length); break; + case "ItemLayer": ItemLayer = NewBlanckSBArray(ItemLayer[0].Length, ItemLayer.Length); break; + } + } + + private static StringBuilder[] GenerateMapLayer(int width, int height) { + StringBuilder[] sBArray = new StringBuilder[height]; + + Random randomNumber = new Random(); + for (int row = 0; row < height; row++) { //adds the possibility of having 2 biomes on one row (could be 1) + sBArray[row] = new StringBuilder(new string(RandomBiome(randomNumber).Ground, randomNumber.Next(width + 1))); + + sBArray[row].Append(new StringBuilder(new string(RandomBiome(randomNumber).Ground, width - sBArray[row].Length))); + } + return sBArray; + } + + private static Biome RandomBiome(Random randomNumber) { + Biome currBiome; + + if (randomNumber.Next(4) > 0) { // 3/4 chance that the biome will not hurt and will not suffocate + currBiome = biomeDB.Values.Where(x => x.Damage == 0).ElementAt(randomNumber.Next(biomeDB.Values.Count(x => x.Damage == 0))); + } + else { + if (randomNumber.Next(5) > 0) { // 4/5 chance that the biome will hurt and suffocate + currBiome = biomeDB.Values.Where(x => x.Damage > 0 && x.Suffocate) + .ElementAt(randomNumber.Next(biomeDB.Values.Count(x => x.Damage > 0 && x.Suffocate))); + } + else { // 1/5 chance that the biome will hurt but won't suffocate + currBiome = biomeDB.Values.Where(x => x.Damage > 0 && !x.Suffocate) + .ElementAt(randomNumber.Next(biomeDB.Values.Count(x => x.Damage > 0 && !x.Suffocate))); + } + } + return currBiome; + } + + public static StringBuilder[] World { + get { + StringBuilder[] temp = NewBlanckSBArray(MapLayer[0].Length, MapLayer.Length); + + Overlay(temp, MapLayer); + Overlay(temp, ItemLayer); + Overlay(temp, MobLayer); + + return temp; + } + } + + private static void Overlay(StringBuilder[] origin, StringBuilder[] newLayer) { + for (int row = 0; row < origin.Length; row++) { + for (int col = 0; col < origin[0].Length; col++) { + if (newLayer[row][col] != ' ') origin[row][col] = newLayer[row][col]; + } + } + } + + public static string StringWorld { + get { + StringBuilder toReturn = new StringBuilder(); + foreach (var row in World) { + toReturn.AppendLine(row.ToString()); + } + + return toReturn.ToString(); + } + } + } +} diff --git a/Bitspace 2.0/Bitspace 2.0/Graphics.cs b/Bitspace 2.0/Bitspace 2.0/Graphics.cs new file mode 100644 index 0000000..baa9f94 --- /dev/null +++ b/Bitspace 2.0/Bitspace 2.0/Graphics.cs @@ -0,0 +1,32 @@ +using Bitspace_2._0.Game_map; +using Bitspace_2._0.Game_creatures; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Bitspace_2._0 { + static class Graphics { + public static void ReWriteScreen() { + Console.Clear(); + + Update(); + + Console.WriteLine(Map.StringWorld); + } + + private static void Update() { + UpdateMobLayer(); + //UpdateItemLayer(); + } + + private static void UpdateMobLayer() { + Map.ClearLayer("MobLayer"); + + foreach(var pl in Creatures.Players.Values) { + Map.MobLayer[pl.YPos][pl.XPos] = pl.Body; + } + } + } +} diff --git a/Bitspace 2.0/Bitspace 2.0/KeyBindings.cs b/Bitspace 2.0/Bitspace 2.0/KeyBindings.cs new file mode 100644 index 0000000..61d585c --- /dev/null +++ b/Bitspace 2.0/Bitspace 2.0/KeyBindings.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; + +namespace Bitspace_2._0 { + static class KeyBindings { + public static Dictionary<string, ConsoleKey> Movement = new Dictionary<string, ConsoleKey>() { + { "Forwards", ConsoleKey.W }, + { "Backwards", ConsoleKey.S }, + { "Left", ConsoleKey.A }, + { "Right", ConsoleKey.D } + }; + } +} diff --git a/Bitspace 2.0/Bitspace 2.0/Program.cs b/Bitspace 2.0/Bitspace 2.0/Program.cs new file mode 100644 index 0000000..6ac34e0 --- /dev/null +++ b/Bitspace 2.0/Bitspace 2.0/Program.cs @@ -0,0 +1,25 @@ +using System; +using System.Threading; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Bitspace_2._0.Game_map; +using Bitspace_2._0.Game_creatures; + +namespace Bitspace_2._0 { + class Program { + static void Main(string[] args) { + Map.Generate(20, 10); + Console.CursorVisible = false; + + for (ulong gameTick = 0; ; gameTick++, Thread.Sleep(70)) { + if (Console.KeyAvailable) { + Creatures.Players["Player1"].InputAction(); + } + + Graphics.ReWriteScreen(); + } + } + } +} diff --git a/Bitspace 2.0/Bitspace 2.0/Properties/AssemblyInfo.cs b/Bitspace 2.0/Bitspace 2.0/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..46f7553 --- /dev/null +++ b/Bitspace 2.0/Bitspace 2.0/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Bitspace 2.0")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Bitspace 2.0")] +[assembly: AssemblyCopyright("Copyright © 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("08984d4b-a069-4347-9cec-0b0130eece42")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] |
