commit c08dad8d42dbf6c27de36acc625d665afb195e07 Author: shibazaki Date: Mon Sep 22 12:19:54 2025 +0200 first commit diff --git a/Program.cs b/Program.cs new file mode 100644 index 0000000..34eb597 --- /dev/null +++ b/Program.cs @@ -0,0 +1,125 @@ +using System; +using System.Collections.Generic; +using System.Net; +using System.Net.Sockets; +using System.Text; +using System.Threading; + +class Player +{ + public int Id; + public int Row; + public int Col; + public ConsoleColor Color; + public TcpClient Client; +} + +class Server +{ + static int[,] maze = new int[,] + { + { 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, + { 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1 }, + { 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1 }, + { 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1 }, + { 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1 }, + { 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1 }, + { 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1 }, + { 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1 }, + { 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1 }, + { 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 }, + { 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, + }; + + static List players = new List(); + static Random rand = new Random(); + + static void Main() + { + TcpListener listener = new TcpListener(IPAddress.Any, 65500); + listener.Start(); + Console.WriteLine("Server running..."); + + while (true) + { + TcpClient client = listener.AcceptTcpClient(); + Thread t = new Thread(() => HandleClient(client)); + t.Start(); + } + } + + static void HandleClient(TcpClient client) + { + Player player = new Player + { + Id = rand.Next(1000, 9999), + Row = 1, + Col = 5, + Color = (ConsoleColor)rand.Next(1, 15), + Client = client + }; + lock (players) { players.Add(player); } + + NetworkStream stream = client.GetStream(); + byte[] buffer = new byte[1024]; + while (true) + { + try + { + int read = stream.Read(buffer, 0, buffer.Length); + if (read == 0) break; + string move = Encoding.UTF8.GetString(buffer, 0, read); + + int newRow = player.Row; + int newCol = player.Col; + if (move == "W") newRow--; + if (move == "S") newRow++; + if (move == "A") newCol--; + if (move == "D") newCol++; + + if (maze[newRow, newCol] != 1) + { + player.Row = newRow; + player.Col = newCol; + } + + SendMapToAll(); + } + catch { break; } + } + + lock (players) { players.Remove(player); } + client.Close(); + } + + static void SendMapToAll() + { + lock (players) + { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < maze.GetLength(0); i++) + { + for (int j = 0; j < maze.GetLength(1); j++) + { + var playerHere = players.Find(p => p.Row == i && p.Col == j); + if (playerHere != null) + sb.Append("00"); + else if (maze[i, j] == 1) + sb.Append("██"); + else if (maze[i, j] == 2) + sb.Append("XX"); + else + sb.Append(" "); + } + sb.AppendLine(); + } + + byte[] data = Encoding.UTF8.GetBytes(sb.ToString()); + foreach (var p in players) + { + try { p.Client.GetStream().Write(data, 0, data.Length); } catch { } + } + } + } +} + diff --git a/bin/Debug/net8.0/server_labytint b/bin/Debug/net8.0/server_labytint new file mode 100755 index 0000000..b0053f2 Binary files /dev/null and b/bin/Debug/net8.0/server_labytint differ diff --git a/bin/Debug/net8.0/server_labytint.deps.json b/bin/Debug/net8.0/server_labytint.deps.json new file mode 100644 index 0000000..0a5ede8 --- /dev/null +++ b/bin/Debug/net8.0/server_labytint.deps.json @@ -0,0 +1,23 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "server_labytint/1.0.0": { + "runtime": { + "server_labytint.dll": {} + } + } + } + }, + "libraries": { + "server_labytint/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/bin/Debug/net8.0/server_labytint.dll b/bin/Debug/net8.0/server_labytint.dll new file mode 100644 index 0000000..51944f8 Binary files /dev/null and b/bin/Debug/net8.0/server_labytint.dll differ diff --git a/bin/Debug/net8.0/server_labytint.pdb b/bin/Debug/net8.0/server_labytint.pdb new file mode 100644 index 0000000..210ae80 Binary files /dev/null and b/bin/Debug/net8.0/server_labytint.pdb differ diff --git a/bin/Debug/net8.0/server_labytint.runtimeconfig.json b/bin/Debug/net8.0/server_labytint.runtimeconfig.json new file mode 100644 index 0000000..becfaea --- /dev/null +++ b/bin/Debug/net8.0/server_labytint.runtimeconfig.json @@ -0,0 +1,12 @@ +{ + "runtimeOptions": { + "tfm": "net8.0", + "framework": { + "name": "Microsoft.NETCore.App", + "version": "8.0.0" + }, + "configProperties": { + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false + } + } +} \ No newline at end of file diff --git a/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs new file mode 100644 index 0000000..dca70aa --- /dev/null +++ b/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] diff --git a/obj/Debug/net8.0/apphost b/obj/Debug/net8.0/apphost new file mode 100755 index 0000000..b0053f2 Binary files /dev/null and b/obj/Debug/net8.0/apphost differ diff --git a/obj/Debug/net8.0/ref/server_labytint.dll b/obj/Debug/net8.0/ref/server_labytint.dll new file mode 100644 index 0000000..6c417ac Binary files /dev/null and b/obj/Debug/net8.0/ref/server_labytint.dll differ diff --git a/obj/Debug/net8.0/refint/server_labytint.dll b/obj/Debug/net8.0/refint/server_labytint.dll new file mode 100644 index 0000000..6c417ac Binary files /dev/null and b/obj/Debug/net8.0/refint/server_labytint.dll differ diff --git a/obj/Debug/net8.0/server_labytint.AssemblyInfo.cs b/obj/Debug/net8.0/server_labytint.AssemblyInfo.cs new file mode 100644 index 0000000..a301d71 --- /dev/null +++ b/obj/Debug/net8.0/server_labytint.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("server_labytint")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] +[assembly: System.Reflection.AssemblyProductAttribute("server_labytint")] +[assembly: System.Reflection.AssemblyTitleAttribute("server_labytint")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/obj/Debug/net8.0/server_labytint.AssemblyInfoInputs.cache b/obj/Debug/net8.0/server_labytint.AssemblyInfoInputs.cache new file mode 100644 index 0000000..4170efc --- /dev/null +++ b/obj/Debug/net8.0/server_labytint.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +1801560a49bd7289f28b578147fb98b059fb9237c25a461abb52cb8cdd09c5c1 diff --git a/obj/Debug/net8.0/server_labytint.GeneratedMSBuildEditorConfig.editorconfig b/obj/Debug/net8.0/server_labytint.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..e642cd7 --- /dev/null +++ b/obj/Debug/net8.0/server_labytint.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,13 @@ +is_global = true +build_property.TargetFramework = net8.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = server_labytint +build_property.ProjectDir = /home/twelve/Code/sharp/server_labytint/ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/obj/Debug/net8.0/server_labytint.GlobalUsings.g.cs b/obj/Debug/net8.0/server_labytint.GlobalUsings.g.cs new file mode 100644 index 0000000..8578f3d --- /dev/null +++ b/obj/Debug/net8.0/server_labytint.GlobalUsings.g.cs @@ -0,0 +1,8 @@ +// +global using global::System; +global using global::System.Collections.Generic; +global using global::System.IO; +global using global::System.Linq; +global using global::System.Net.Http; +global using global::System.Threading; +global using global::System.Threading.Tasks; diff --git a/obj/Debug/net8.0/server_labytint.assets.cache b/obj/Debug/net8.0/server_labytint.assets.cache new file mode 100644 index 0000000..d41d71d Binary files /dev/null and b/obj/Debug/net8.0/server_labytint.assets.cache differ diff --git a/obj/Debug/net8.0/server_labytint.csproj.CoreCompileInputs.cache b/obj/Debug/net8.0/server_labytint.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..92d40fb --- /dev/null +++ b/obj/Debug/net8.0/server_labytint.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +266ac63c091ce2746152dc20e12bf1ae87591659a897be89c831ee71b4829b90 diff --git a/obj/Debug/net8.0/server_labytint.csproj.FileListAbsolute.txt b/obj/Debug/net8.0/server_labytint.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..c9e9cab --- /dev/null +++ b/obj/Debug/net8.0/server_labytint.csproj.FileListAbsolute.txt @@ -0,0 +1,14 @@ +/home/twelve/Code/sharp/server_labytint/bin/Debug/net8.0/server_labytint +/home/twelve/Code/sharp/server_labytint/bin/Debug/net8.0/server_labytint.deps.json +/home/twelve/Code/sharp/server_labytint/bin/Debug/net8.0/server_labytint.runtimeconfig.json +/home/twelve/Code/sharp/server_labytint/bin/Debug/net8.0/server_labytint.dll +/home/twelve/Code/sharp/server_labytint/bin/Debug/net8.0/server_labytint.pdb +/home/twelve/Code/sharp/server_labytint/obj/Debug/net8.0/server_labytint.GeneratedMSBuildEditorConfig.editorconfig +/home/twelve/Code/sharp/server_labytint/obj/Debug/net8.0/server_labytint.AssemblyInfoInputs.cache +/home/twelve/Code/sharp/server_labytint/obj/Debug/net8.0/server_labytint.AssemblyInfo.cs +/home/twelve/Code/sharp/server_labytint/obj/Debug/net8.0/server_labytint.csproj.CoreCompileInputs.cache +/home/twelve/Code/sharp/server_labytint/obj/Debug/net8.0/server_labytint.dll +/home/twelve/Code/sharp/server_labytint/obj/Debug/net8.0/refint/server_labytint.dll +/home/twelve/Code/sharp/server_labytint/obj/Debug/net8.0/server_labytint.pdb +/home/twelve/Code/sharp/server_labytint/obj/Debug/net8.0/server_labytint.genruntimeconfig.cache +/home/twelve/Code/sharp/server_labytint/obj/Debug/net8.0/ref/server_labytint.dll diff --git a/obj/Debug/net8.0/server_labytint.dll b/obj/Debug/net8.0/server_labytint.dll new file mode 100644 index 0000000..51944f8 Binary files /dev/null and b/obj/Debug/net8.0/server_labytint.dll differ diff --git a/obj/Debug/net8.0/server_labytint.genruntimeconfig.cache b/obj/Debug/net8.0/server_labytint.genruntimeconfig.cache new file mode 100644 index 0000000..e040dde --- /dev/null +++ b/obj/Debug/net8.0/server_labytint.genruntimeconfig.cache @@ -0,0 +1 @@ +298a3d36b4e168b9fc9928099d091a54ec114e7d2bf2583da2226bbc2afcaeb3 diff --git a/obj/Debug/net8.0/server_labytint.pdb b/obj/Debug/net8.0/server_labytint.pdb new file mode 100644 index 0000000..210ae80 Binary files /dev/null and b/obj/Debug/net8.0/server_labytint.pdb differ diff --git a/obj/project.assets.json b/obj/project.assets.json new file mode 100644 index 0000000..1307ff0 --- /dev/null +++ b/obj/project.assets.json @@ -0,0 +1,71 @@ +{ + "version": 3, + "targets": { + "net8.0": {} + }, + "libraries": {}, + "projectFileDependencyGroups": { + "net8.0": [] + }, + "packageFolders": { + "/home/twelve/.nuget/packages/": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/home/twelve/Code/sharp/server_labytint/server_labytint.csproj", + "projectName": "server_labytint", + "projectPath": "/home/twelve/Code/sharp/server_labytint/server_labytint.csproj", + "packagesPath": "/home/twelve/.nuget/packages/", + "outputPath": "/home/twelve/Code/sharp/server_labytint/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/home/twelve/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/nix/store/xd9xy9mf4wmmlcdk51kzvsrnazqsajfz-dotnet-sdk-8.0.412/share/dotnet/sdk/8.0.412/PortableRuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/obj/project.nuget.cache b/obj/project.nuget.cache new file mode 100644 index 0000000..ab74b88 --- /dev/null +++ b/obj/project.nuget.cache @@ -0,0 +1,8 @@ +{ + "version": 2, + "dgSpecHash": "c05mmQVMoyU=", + "success": true, + "projectFilePath": "/home/twelve/Code/sharp/server_labytint/server_labytint.csproj", + "expectedPackageFiles": [], + "logs": [] +} \ No newline at end of file diff --git a/obj/server_labytint.csproj.nuget.dgspec.json b/obj/server_labytint.csproj.nuget.dgspec.json new file mode 100644 index 0000000..f02ee47 --- /dev/null +++ b/obj/server_labytint.csproj.nuget.dgspec.json @@ -0,0 +1,66 @@ +{ + "format": 1, + "restore": { + "/home/twelve/Code/sharp/server_labytint/server_labytint.csproj": {} + }, + "projects": { + "/home/twelve/Code/sharp/server_labytint/server_labytint.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/home/twelve/Code/sharp/server_labytint/server_labytint.csproj", + "projectName": "server_labytint", + "projectPath": "/home/twelve/Code/sharp/server_labytint/server_labytint.csproj", + "packagesPath": "/home/twelve/.nuget/packages/", + "outputPath": "/home/twelve/Code/sharp/server_labytint/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/home/twelve/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/nix/store/xd9xy9mf4wmmlcdk51kzvsrnazqsajfz-dotnet-sdk-8.0.412/share/dotnet/sdk/8.0.412/PortableRuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/obj/server_labytint.csproj.nuget.g.props b/obj/server_labytint.csproj.nuget.g.props new file mode 100644 index 0000000..28c22ca --- /dev/null +++ b/obj/server_labytint.csproj.nuget.g.props @@ -0,0 +1,15 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + /home/twelve/.nuget/packages/ + /home/twelve/.nuget/packages/ + PackageReference + 6.11.1 + + + + + \ No newline at end of file diff --git a/obj/server_labytint.csproj.nuget.g.targets b/obj/server_labytint.csproj.nuget.g.targets new file mode 100644 index 0000000..3dc06ef --- /dev/null +++ b/obj/server_labytint.csproj.nuget.g.targets @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/server_labytint.csproj b/server_labytint.csproj new file mode 100644 index 0000000..206b89a --- /dev/null +++ b/server_labytint.csproj @@ -0,0 +1,10 @@ + + + + Exe + net8.0 + enable + enable + + +