commit af356f294e35165131ba527467b90e9b474b7ee7 Author: bwbl Date: Thu Oct 3 16:23:08 2024 +0200 finised diff --git a/.idea/.idea.p4.dir/.idea/.gitignore b/.idea/.idea.p4.dir/.idea/.gitignore new file mode 100644 index 0000000..0dd5a8e --- /dev/null +++ b/.idea/.idea.p4.dir/.idea/.gitignore @@ -0,0 +1,13 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Rider ignored files +/.idea.p4.iml +/modules.xml +/projectSettingsUpdater.xml +/contentModel.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/.idea.p4.dir/.idea/encodings.xml b/.idea/.idea.p4.dir/.idea/encodings.xml new file mode 100644 index 0000000..df87cf9 --- /dev/null +++ b/.idea/.idea.p4.dir/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/.idea.p4.dir/.idea/indexLayout.xml b/.idea/.idea.p4.dir/.idea/indexLayout.xml new file mode 100644 index 0000000..7b08163 --- /dev/null +++ b/.idea/.idea.p4.dir/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Program.cs b/Program.cs new file mode 100644 index 0000000..0e8ffa3 --- /dev/null +++ b/Program.cs @@ -0,0 +1,279 @@ +namespace P4 +{ + public enum Token + { + None, + FirstPlayer, + SecondPlayer, + } + + public class Program + { + public void SetColor(ConsoleColor backgroundColor = ConsoleColor.Black, ConsoleColor forgroundColor = ConsoleColor.White) + { + Console.ForegroundColor = forgroundColor; + Console.BackgroundColor = backgroundColor; + } + + static void Main(string[] args) + { + new Program().SetColor(); + int[] boardSize = new Board().BoardSize(); + Token[,] board = new Token[boardSize[0], boardSize[1]]; + new Game().Start(board); + } + } + + public class Game + { + private Draw d = new Draw(); + public void Start(Token[,] board) + { + int pos = 0; + Token currentPlayer = Token.FirstPlayer; + bool placed = false; + + while (!CheckWin(board)) + { + if (CheckDraw(board)) + break; + d.DrawBoard(board); + d.DrawPlayGround(board, currentPlayer, pos); + + ConsoleKey key = Console.ReadKey().Key; + switch (key) + { + case ConsoleKey.RightArrow: + pos++; + break; + + case ConsoleKey.LeftArrow: + pos--; + break; + + case ConsoleKey.Enter: + case ConsoleKey.Spacebar: + placed = PlaceToken(board, currentPlayer, pos); + if (placed && currentPlayer == Token.FirstPlayer) + currentPlayer = Token.SecondPlayer; + else if (placed && currentPlayer == Token.SecondPlayer) + currentPlayer = Token.FirstPlayer; + + break; + } + } + d.DrawBoard(board); + d.DrawPlayGround(board, currentPlayer, pos); + Console.Clear(); + // currentplayer est inversé + if (CheckDraw(board)) + Console.WriteLine("il y a eu une égalité"); + else if (currentPlayer == Token.FirstPlayer) + Console.WriteLine("Le joueur " + "2" + " a gagné"); + else if (currentPlayer == Token.SecondPlayer) + Console.WriteLine("Le joueur " + "1" + " a gagné"); + Console.WriteLine("La partie à été gagnée en " + Turn(board) + " tours"); + } + + static int Turn(Token[,] board) + { + int count = 0; // compteur + for (int y = 0; y < board.GetLength(1); y++) + { + for (int x = 0; x < board.GetLength(0); x++) + { + if (board[x, y] != 0) + { + count++; + } + } + } + return count; + } + private bool CheckDraw(Token[,] board) + { + for (int y = 0; y < board.GetLength(1); y++) + { + for (int x = 0; x < board.GetLength(0); x++) + { + if (board[x, y] == 0) + { + return false; + } + } + } + return true; + } + + private bool CheckWin(Token[,] board) + { + Token[] players = {Token.FirstPlayer, Token.SecondPlayer}; + // boucle qui alterne entre les joueurs 1 et 2 + foreach (var j in players) + { + // boucle qui fait toutes les colonnes + for (int y = 0; y < board.GetLength(1); y++) + { + // boucle qui fait toute la valeur des colonnes + for (int x = 0; x < board.GetLength(0); x++) + { + // on check les bordures horizontales + if (x + 3 < board.GetLength(0)) + { + // on check les 4 prochains jetons dans le sens horizontal + if (board[x, y] == j && + board[x + 1, y] == j && + board[x + 2, y] == j && + board[x + 3, y] == j) + { + // on retourne vrai si la condition est respectée + return true; + } + } + // on check les bordure verticales + if (y + 3 < board.GetLength(1)) + { + // on check les 4 prochains jetons dans le sens vertical + if (board[x, y] == j && + board[x, y + 1] == j && + board[x, y + 2] == j && + board[x, y + 3] == j) + { + // on retourne vrai si la condition est respectée + return true; + } + } + // on check les bordures horizontales et verticales + if (y + 3 < board.GetLength(1) && x + 3 < board.GetLength(0)) + { + // on check les 4 prochains jetons dans le sens horizontal et vertical + if (board[x, y] == j && + board[x + 1, y + 1] == j && + board[x + 2, y + 2] == j && + board[x + 3, y + 3] == j) + { + // on retourne vrai si la condition est respectée + return true; + } + } + // on check les bordures horizontales et verticales + if (y - 3 > 0 && x + 3 < board.GetLength(0)) + { + // on check les 4 prochains jetons dans le sens horizontal et vertical + if (board[x, y] == j && + board[x + 1, y - 1] == j && + board[x + 2, y - 2] == j && + board[x + 3, y - 3] == j) + { + // on retourne vrai si la condition est respectée + return true; + } + } + } + } + } + + // si rien n'a été trouvé, on retourne false + return false; + } + + private bool PlaceToken(Token[,] board, Token currentPlayer, int pos) + { + for (int i = board.GetLength(1) - 1; i >= 0; i--) + { + if (board[pos, i] != Token.None) continue; + board[pos, i] = currentPlayer; + return true; + } + return false; + } + } + public class Board + { + private Program p = new Program(); + public int[] BoardSize() + { + int[] boardSize = { 0, 0 }; // initialisation de la taille + string[] input = { "", "" }; // initialisation de l'entrée utilisateur + // écriture des instructions en couleur grâce à la méthode WriteColor + Console.Write("La taille doit être comprise entre "); + p.SetColor(default, ConsoleColor.Red); + Console.Write("5x6"); + p.SetColor(); + Console.Write(" et "); + p.SetColor(default, ConsoleColor.Red); + Console.Write("13x16\n"); + p.SetColor(); + Console.WriteLine("exemple: 6x7 (6 lignes et 7 colonnes)"); + Console.Write("taille: "); + + // récupération de l'entrée utilisateur dans une liste grâce à un split + input = Console.ReadLine().Split('x'); + + // on essaye de Parse en int les entrées, sinon on fait une récursion + try + { + boardSize[0] = int.Parse(input[1]); + boardSize[1] = int.Parse(input[0]); + } + catch + { + Console.WriteLine("La taille est invalide. réessayer"); + return BoardSize(); + } + + // on check si les entrées sont incorrectes si oui on fait une récursion + if (boardSize[1] <= 5 || boardSize[1] >= 13 || boardSize[0] <= 6 || boardSize[0] >= 16) + { + Console.WriteLine("La taille est invalide. réessayer"); + return BoardSize(); + } + + // et si tous les checks sont passés, on retourne la taille + Console.WriteLine("taille valide"); + return boardSize; + } + } + + + public class Draw + { + public void DrawPlayGround(Token[,] board, Token currentPlayer, int pos) + { + for (int x = 0; x < board.GetLength(0); x++) + { + Console.SetCursorPosition(x, 0); + + if (pos == x) Console.Write(DrawToken(currentPlayer)); + else Console.Write(DrawToken(Token.None)); + } + } + + public void DrawBoard(Token[,] board) + { + Console.Clear(); + + for (int y = 0; y < board.GetLength(1); y++) + for (int x = 0; x < board.GetLength(0); x++) + { + Console.SetCursorPosition(x, y + 2); + Console.Write(DrawToken(board[x, y])); + } + } + + public char DrawToken(Token token) + { + switch (token) + { + case Token.FirstPlayer: + return 'X'; + case Token.SecondPlayer: + return 'O'; + case Token.None: + return '.'; + default: + return default; + } + } + } +} diff --git a/bin/Debug/net8.0/p4 b/bin/Debug/net8.0/p4 new file mode 100755 index 0000000..c0f217f Binary files /dev/null and b/bin/Debug/net8.0/p4 differ diff --git a/bin/Debug/net8.0/p4.deps.json b/bin/Debug/net8.0/p4.deps.json new file mode 100644 index 0000000..10d499c --- /dev/null +++ b/bin/Debug/net8.0/p4.deps.json @@ -0,0 +1,23 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "p4/1.0.0": { + "runtime": { + "p4.dll": {} + } + } + } + }, + "libraries": { + "p4/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/bin/Debug/net8.0/p4.dll b/bin/Debug/net8.0/p4.dll new file mode 100644 index 0000000..3d6f86c Binary files /dev/null and b/bin/Debug/net8.0/p4.dll differ diff --git a/bin/Debug/net8.0/p4.pdb b/bin/Debug/net8.0/p4.pdb new file mode 100644 index 0000000..b5cf8dd Binary files /dev/null and b/bin/Debug/net8.0/p4.pdb differ diff --git a/bin/Debug/net8.0/p4.runtimeconfig.json b/bin/Debug/net8.0/p4.runtimeconfig.json new file mode 100644 index 0000000..becfaea --- /dev/null +++ b/bin/Debug/net8.0/p4.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..2217181 --- /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..c0f217f Binary files /dev/null and b/obj/Debug/net8.0/apphost differ diff --git a/obj/Debug/net8.0/p4.AssemblyInfo.cs b/obj/Debug/net8.0/p4.AssemblyInfo.cs new file mode 100644 index 0000000..d0af4b9 --- /dev/null +++ b/obj/Debug/net8.0/p4.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("p4")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] +[assembly: System.Reflection.AssemblyProductAttribute("p4")] +[assembly: System.Reflection.AssemblyTitleAttribute("p4")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/obj/Debug/net8.0/p4.AssemblyInfoInputs.cache b/obj/Debug/net8.0/p4.AssemblyInfoInputs.cache new file mode 100644 index 0000000..b9a60a6 --- /dev/null +++ b/obj/Debug/net8.0/p4.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +099e686f8384559c605ac543742bca589ca4af72f0a923dbfd812f36a5a55fe3 diff --git a/obj/Debug/net8.0/p4.GeneratedMSBuildEditorConfig.editorconfig b/obj/Debug/net8.0/p4.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..8e0de60 --- /dev/null +++ b/obj/Debug/net8.0/p4.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 = p4 +build_property.ProjectDir = /home/bwbl/dev/p4/ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/obj/Debug/net8.0/p4.GlobalUsings.g.cs b/obj/Debug/net8.0/p4.GlobalUsings.g.cs new file mode 100644 index 0000000..8578f3d --- /dev/null +++ b/obj/Debug/net8.0/p4.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/p4.assets.cache b/obj/Debug/net8.0/p4.assets.cache new file mode 100644 index 0000000..8a23cf0 Binary files /dev/null and b/obj/Debug/net8.0/p4.assets.cache differ diff --git a/obj/Debug/net8.0/p4.csproj.CoreCompileInputs.cache b/obj/Debug/net8.0/p4.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..785eff9 --- /dev/null +++ b/obj/Debug/net8.0/p4.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +e160bab6851984c3692690ecc0d3efc4d866e8c1041372f15e51c86751f15027 diff --git a/obj/Debug/net8.0/p4.csproj.FileListAbsolute.txt b/obj/Debug/net8.0/p4.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..76b1225 --- /dev/null +++ b/obj/Debug/net8.0/p4.csproj.FileListAbsolute.txt @@ -0,0 +1,14 @@ +/home/bwbl/dev/p4/bin/Debug/net8.0/p4 +/home/bwbl/dev/p4/bin/Debug/net8.0/p4.deps.json +/home/bwbl/dev/p4/bin/Debug/net8.0/p4.runtimeconfig.json +/home/bwbl/dev/p4/bin/Debug/net8.0/p4.dll +/home/bwbl/dev/p4/bin/Debug/net8.0/p4.pdb +/home/bwbl/dev/p4/obj/Debug/net8.0/p4.GeneratedMSBuildEditorConfig.editorconfig +/home/bwbl/dev/p4/obj/Debug/net8.0/p4.AssemblyInfoInputs.cache +/home/bwbl/dev/p4/obj/Debug/net8.0/p4.AssemblyInfo.cs +/home/bwbl/dev/p4/obj/Debug/net8.0/p4.csproj.CoreCompileInputs.cache +/home/bwbl/dev/p4/obj/Debug/net8.0/p4.dll +/home/bwbl/dev/p4/obj/Debug/net8.0/refint/p4.dll +/home/bwbl/dev/p4/obj/Debug/net8.0/p4.pdb +/home/bwbl/dev/p4/obj/Debug/net8.0/p4.genruntimeconfig.cache +/home/bwbl/dev/p4/obj/Debug/net8.0/ref/p4.dll diff --git a/obj/Debug/net8.0/p4.dll b/obj/Debug/net8.0/p4.dll new file mode 100644 index 0000000..3d6f86c Binary files /dev/null and b/obj/Debug/net8.0/p4.dll differ diff --git a/obj/Debug/net8.0/p4.genruntimeconfig.cache b/obj/Debug/net8.0/p4.genruntimeconfig.cache new file mode 100644 index 0000000..23c6465 --- /dev/null +++ b/obj/Debug/net8.0/p4.genruntimeconfig.cache @@ -0,0 +1 @@ +226c357127cb10a4bba360c304edbad1ef2fdd0422f2f4cd9bab6f4a09802a11 diff --git a/obj/Debug/net8.0/p4.pdb b/obj/Debug/net8.0/p4.pdb new file mode 100644 index 0000000..b5cf8dd Binary files /dev/null and b/obj/Debug/net8.0/p4.pdb differ diff --git a/obj/Debug/net8.0/ref/p4.dll b/obj/Debug/net8.0/ref/p4.dll new file mode 100644 index 0000000..50c6ca5 Binary files /dev/null and b/obj/Debug/net8.0/ref/p4.dll differ diff --git a/obj/Debug/net8.0/refint/p4.dll b/obj/Debug/net8.0/refint/p4.dll new file mode 100644 index 0000000..50c6ca5 Binary files /dev/null and b/obj/Debug/net8.0/refint/p4.dll differ diff --git a/obj/p4.csproj.nuget.dgspec.json b/obj/p4.csproj.nuget.dgspec.json new file mode 100644 index 0000000..47704bd --- /dev/null +++ b/obj/p4.csproj.nuget.dgspec.json @@ -0,0 +1,67 @@ +{ + "format": 1, + "restore": { + "/home/bwbl/dev/p4/p4.csproj": {} + }, + "projects": { + "/home/bwbl/dev/p4/p4.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/home/bwbl/dev/p4/p4.csproj", + "projectName": "p4", + "projectPath": "/home/bwbl/dev/p4/p4.csproj", + "packagesPath": "/home/bwbl/.nuget/packages/", + "outputPath": "/home/bwbl/dev/p4/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/home/bwbl/.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" + ] + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.8, 8.0.8]" + } + ], + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/share/dotnet/sdk/8.0.108/PortableRuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/obj/p4.csproj.nuget.g.props b/obj/p4.csproj.nuget.g.props new file mode 100644 index 0000000..5d93fa3 --- /dev/null +++ b/obj/p4.csproj.nuget.g.props @@ -0,0 +1,15 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + /home/bwbl/.nuget/packages/ + /home/bwbl/.nuget/packages/ + PackageReference + 6.8.1 + + + + + \ No newline at end of file diff --git a/obj/p4.csproj.nuget.g.targets b/obj/p4.csproj.nuget.g.targets new file mode 100644 index 0000000..3dc06ef --- /dev/null +++ b/obj/p4.csproj.nuget.g.targets @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/obj/project.assets.json b/obj/project.assets.json new file mode 100644 index 0000000..24cf875 --- /dev/null +++ b/obj/project.assets.json @@ -0,0 +1,72 @@ +{ + "version": 3, + "targets": { + "net8.0": {} + }, + "libraries": {}, + "projectFileDependencyGroups": { + "net8.0": [] + }, + "packageFolders": { + "/home/bwbl/.nuget/packages/": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/home/bwbl/dev/p4/p4.csproj", + "projectName": "p4", + "projectPath": "/home/bwbl/dev/p4/p4.csproj", + "packagesPath": "/home/bwbl/.nuget/packages/", + "outputPath": "/home/bwbl/dev/p4/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/home/bwbl/.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" + ] + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.8, 8.0.8]" + } + ], + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/share/dotnet/sdk/8.0.108/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..f230409 --- /dev/null +++ b/obj/project.nuget.cache @@ -0,0 +1,10 @@ +{ + "version": 2, + "dgSpecHash": "xFvuXS4zcLqNlKMp1yTcoRj9X+eAVXZo01nF0SFLPeAVHNa8IA8rwFbjwifQxatpXJwXW76OP65X1EknDsHFBA==", + "success": true, + "projectFilePath": "/home/bwbl/dev/p4/p4.csproj", + "expectedPackageFiles": [ + "/home/bwbl/.nuget/packages/microsoft.aspnetcore.app.ref/8.0.8/microsoft.aspnetcore.app.ref.8.0.8.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file diff --git a/obj/project.packagespec.json b/obj/project.packagespec.json new file mode 100644 index 0000000..af8b00e --- /dev/null +++ b/obj/project.packagespec.json @@ -0,0 +1 @@ +"restore":{"projectUniqueName":"/home/bwbl/dev/p4/p4.csproj","projectName":"p4","projectPath":"/home/bwbl/dev/p4/p4.csproj","outputPath":"/home/bwbl/dev/p4/obj/","projectStyle":"PackageReference","originalTargetFrameworks":["net8.0"],"sources":{"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net8.0":{"targetAlias":"net8.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]}}"frameworks":{"net8.0":{"targetAlias":"net8.0","imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"downloadDependencies":[{"name":"Microsoft.AspNetCore.App.Ref","version":"[8.0.8, 8.0.8]"}],"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"/usr/share/dotnet/sdk/8.0.108/PortableRuntimeIdentifierGraph.json"}} \ No newline at end of file diff --git a/obj/rider.project.model.nuget.info b/obj/rider.project.model.nuget.info new file mode 100644 index 0000000..1463f42 --- /dev/null +++ b/obj/rider.project.model.nuget.info @@ -0,0 +1 @@ +17279431593999150 \ No newline at end of file diff --git a/obj/rider.project.restore.info b/obj/rider.project.restore.info new file mode 100644 index 0000000..1463f42 --- /dev/null +++ b/obj/rider.project.restore.info @@ -0,0 +1 @@ +17279431593999150 \ No newline at end of file diff --git a/p4.csproj b/p4.csproj new file mode 100644 index 0000000..2150e37 --- /dev/null +++ b/p4.csproj @@ -0,0 +1,10 @@ + + + + Exe + net8.0 + enable + enable + + +