diff --git a/BlazorSolution/BlazorSolution.sln b/BlazorSolution/BlazorSolution.sln index 4b07c67..8b9e3a6 100644 --- a/BlazorSolution/BlazorSolution.sln +++ b/BlazorSolution/BlazorSolution.sln @@ -7,13 +7,13 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MiniGamesTests", "MiniGames EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MiniGames", "MiniGames", "{7FE5B5B5-5643-4669-9456-B3B1103F03E3}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MiniGames.Server", "MiniGames\Server\MiniGames.Server.csproj", "{048CED31-EDBF-4357-A93D-C8A64F739659}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MiniGames.Server", "MiniGames\Server\MiniGames.Server.csproj", "{048CED31-EDBF-4357-A93D-C8A64F739659}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MiniGames.Client", "MiniGames\Client\MiniGames.Client.csproj", "{E3A1A11A-C124-4687-B61F-54ABA0D76070}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MiniGames.Client", "MiniGames\Client\MiniGames.Client.csproj", "{E3A1A11A-C124-4687-B61F-54ABA0D76070}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MiniGames.Shared", "MiniGames\Shared\MiniGames.Shared.csproj", "{82559B7C-3F45-4DE7-B689-BB90FF6C0AF0}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MiniGames.Shared", "MiniGames\Shared\MiniGames.Shared.csproj", "{82559B7C-3F45-4DE7-B689-BB90FF6C0AF0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MiniGamesTests", "MiniGamesTests\MiniGamesTests.csproj", "{CE05E725-6989-4102-AE30-D813C99AD31E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MiniGamesTests", "MiniGamesTests\MiniGamesTests.csproj", "{CE05E725-6989-4102-AE30-D813C99AD31E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/BlazorSolution/MiniGames/Client/Pages/SchereSteinPapierPage.razor b/BlazorSolution/MiniGames/Client/Pages/SchereSteinPapierPage.razor new file mode 100644 index 0000000..e91e098 --- /dev/null +++ b/BlazorSolution/MiniGames/Client/Pages/SchereSteinPapierPage.razor @@ -0,0 +1,31 @@ +@page "/scheresteinpapier" + +

Willkommen bei Schere, Stein, Papier, Echse, Spock.

+ +
+
Spieleinleitung:
+ +
+ + + + + +@if (SchereSteinPapierModel.RegelModel.SpielerListe.Count() > 0) +{ +
@Ergebnis
+
Spielerpunkte: @Spielerpunktzahl
+
Computer: @CPUpunktzahl
+ + + + + + +} \ No newline at end of file diff --git a/BlazorSolution/MiniGames/Client/Pages/SchereSteinPapierPage.razor.cs b/BlazorSolution/MiniGames/Client/Pages/SchereSteinPapierPage.razor.cs new file mode 100644 index 0000000..3a13182 --- /dev/null +++ b/BlazorSolution/MiniGames/Client/Pages/SchereSteinPapierPage.razor.cs @@ -0,0 +1,25 @@ +using System.Threading.Tasks; + +namespace MiniGames.Client.Pages +{ + public partial class SchereSteinPapierPage + { + private string Username { get; set; } + private string Ergebnis { get; set; } + private int Spielerpunktzahl { get; set; } + private int CPUpunktzahl { get; set; } + + private void CreateUser(string name) + { + SchereSteinPapierModel.SpielerErstellen(name); + } + + private void Input(string input) + { + SchereSteinPapierModel.SpielerInput(input); + Ergebnis = SchereSteinPapierModel.RegelModel.ergebnisAnzeige; + Spielerpunktzahl = SchereSteinPapierModel.RegelModel.SpielerListe[0].Punkte; + CPUpunktzahl = SchereSteinPapierModel.RegelModel.SpielerListe[1].Punkte; + } + } +} diff --git a/BlazorSolution/MiniGames/Client/Pages/_imports.razor b/BlazorSolution/MiniGames/Client/Pages/_imports.razor new file mode 100644 index 0000000..a7a13a8 --- /dev/null +++ b/BlazorSolution/MiniGames/Client/Pages/_imports.razor @@ -0,0 +1,2 @@ +@using MiniGames.Client.ViewModel +@inject ISchereSteinPapierEchseSpock SchereSteinPapierModel diff --git a/BlazorSolution/MiniGames/Client/Program.cs b/BlazorSolution/MiniGames/Client/Program.cs index 7ec2a47..d709778 100644 --- a/BlazorSolution/MiniGames/Client/Program.cs +++ b/BlazorSolution/MiniGames/Client/Program.cs @@ -2,6 +2,7 @@ using Microsoft.AspNetCore.Components.WebAssembly.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; +using MiniGames.Client.ViewModel; using System; using System.Collections.Generic; using System.Net.Http; @@ -18,6 +19,7 @@ namespace MiniGames.Client builder.RootComponents.Add("#app"); builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); + builder.Services.AddScoped(); await builder.Build().RunAsync(); } diff --git a/BlazorSolution/MiniGames/Client/Shared/NavMenu.razor b/BlazorSolution/MiniGames/Client/Shared/NavMenu.razor index 28b0525..88e8027 100644 --- a/BlazorSolution/MiniGames/Client/Shared/NavMenu.razor +++ b/BlazorSolution/MiniGames/Client/Shared/NavMenu.razor @@ -22,6 +22,11 @@ Fetch data + diff --git a/BlazorSolution/MiniGames/Client/ViewModel/ISchereSteinPapierEchseSpock.cs b/BlazorSolution/MiniGames/Client/ViewModel/ISchereSteinPapierEchseSpock.cs new file mode 100644 index 0000000..6a7cf22 --- /dev/null +++ b/BlazorSolution/MiniGames/Client/ViewModel/ISchereSteinPapierEchseSpock.cs @@ -0,0 +1,18 @@ +using MiniGames.Shared.Models; + +namespace MiniGames.Client.ViewModel +{ + public interface ISchereSteinPapierEchseSpock + { + SchereSteinPapierEchseSpockModel RegelModel { get; set; } + string CPUHand(int index); + string HandAuswahl(string spielerHand); + string SpielerEchse(string spielerHand, string gegnerHand); + void SpielerErstellen(string name); + void SpielerInput(string spielerHand); + string SpielerPapier(string spielerHand, string gegnerHand); + string SpielerSchere(string spielerHand, string gegnerHand); + string SpielerSpock(string spielerHand, string gegnerHand); + string SpielerStein(string spielerHand, string gegnerHand); + } +} \ No newline at end of file diff --git a/BlazorSolution/MiniGames/Client/ViewModel/SchereSteinPapierEchseSpock.cs b/BlazorSolution/MiniGames/Client/ViewModel/SchereSteinPapierEchseSpock.cs index 7f8d52a..65f231f 100644 --- a/BlazorSolution/MiniGames/Client/ViewModel/SchereSteinPapierEchseSpock.cs +++ b/BlazorSolution/MiniGames/Client/ViewModel/SchereSteinPapierEchseSpock.cs @@ -3,9 +3,9 @@ using System; namespace MiniGames.Client.ViewModel { - public class SchereSteinPapierEchseSpock + public class SchereSteinPapierEchseSpock : ISchereSteinPapierEchseSpock { - SchereSteinPapierEchseSpockModel RegelModel = new(); + public SchereSteinPapierEchseSpockModel RegelModel { get; set; } = new(); public void SpielerErstellen(string name) { @@ -156,11 +156,14 @@ namespace MiniGames.Client.ViewModel { case "Gewonnen": spieleModel.SpielerListe[0].Punkte += 1; + spieleModel.ergebnisAnzeige = "Gewonnen!"; break; case "Verloren": spieleModel.SpielerListe[1].Punkte += 1; + spieleModel.ergebnisAnzeige = "Verloren!"; break; default: + spieleModel.ergebnisAnzeige = "Unentschieden!"; break; } diff --git a/BlazorSolution/MiniGames/Shared/Models/SchereSteinPapierEchseSpockModel.cs b/BlazorSolution/MiniGames/Shared/Models/SchereSteinPapierEchseSpockModel.cs index 2421a44..3ea72f4 100644 --- a/BlazorSolution/MiniGames/Shared/Models/SchereSteinPapierEchseSpockModel.cs +++ b/BlazorSolution/MiniGames/Shared/Models/SchereSteinPapierEchseSpockModel.cs @@ -10,6 +10,8 @@ namespace MiniGames.Shared.Models { public List SpielerListe = new(); + public string ergebnisAnzeige = ""; + public string[] hand = new[] { "Stein",