Browse Source

Schere Stein Papier page zur Darstellung erstellt

feature/scheresteinpapier
ADato88 3 years ago
parent
commit
a61be86a36
  1. 8
      BlazorSolution/BlazorSolution.sln
  2. 31
      BlazorSolution/MiniGames/Client/Pages/SchereSteinPapierPage.razor
  3. 25
      BlazorSolution/MiniGames/Client/Pages/SchereSteinPapierPage.razor.cs
  4. 2
      BlazorSolution/MiniGames/Client/Pages/_imports.razor
  5. 2
      BlazorSolution/MiniGames/Client/Program.cs
  6. 5
      BlazorSolution/MiniGames/Client/Shared/NavMenu.razor
  7. 18
      BlazorSolution/MiniGames/Client/ViewModel/ISchereSteinPapierEchseSpock.cs
  8. 7
      BlazorSolution/MiniGames/Client/ViewModel/SchereSteinPapierEchseSpock.cs
  9. 2
      BlazorSolution/MiniGames/Shared/Models/SchereSteinPapierEchseSpockModel.cs

8
BlazorSolution/BlazorSolution.sln

@ -7,13 +7,13 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MiniGamesTests", "MiniGames
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MiniGames", "MiniGames", "{7FE5B5B5-5643-4669-9456-B3B1103F03E3}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MiniGames", "MiniGames", "{7FE5B5B5-5643-4669-9456-B3B1103F03E3}"
EndProject 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 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 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 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 EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution

31
BlazorSolution/MiniGames/Client/Pages/SchereSteinPapierPage.razor

@ -0,0 +1,31 @@
@page "/scheresteinpapier"
<h1>Willkommen bei Schere, Stein, Papier, Echse, Spock.</h1>
<div class="card">
<div class="font-weight-bold">Spieleinleitung:</div>
<ul>
<li>Stein zerstört Schere und zerquetscht Echse</li>
<li>Schere schneidet Papier und köpft Echse</li>
<li>Papier bedeckt Stein und widerlegt Spock</li>
<li>Echse vergiftet Spock und frisst Papier</li>
<li>Spock zertrümmert Schere und verdampft Stein</li>
</ul>
</div>
<input @bind-value="Username" placeholder="Name hier Eingeben" />
<button class="btn btn-primary" @onclick="@(() => CreateUser(Username))">Spieler Erstellen</button>
@if (SchereSteinPapierModel.RegelModel.SpielerListe.Count() > 0)
{
<div>@Ergebnis</div>
<div>Spielerpunkte: @Spielerpunktzahl</div>
<div>Computer: @CPUpunktzahl</div>
<button class="btn btn-primary" @onclick="@(() => Input("Stein"))">Stein</button>
<button class="btn btn-primary" @onclick="@(() => Input("Schere"))">Schere</button>
<button class="btn btn-primary" @onclick="@(() => Input("Papier"))">Papier</button>
<button class="btn btn-primary" @onclick="@(() => Input("Papier"))">Echse</button>
<button class="btn btn-primary" @onclick="@(() => Input("Spock"))">Spock</button>
}

25
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;
}
}
}

2
BlazorSolution/MiniGames/Client/Pages/_imports.razor

@ -0,0 +1,2 @@
@using MiniGames.Client.ViewModel
@inject ISchereSteinPapierEchseSpock SchereSteinPapierModel

2
BlazorSolution/MiniGames/Client/Program.cs

@ -2,6 +2,7 @@ using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using MiniGames.Client.ViewModel;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Net.Http; using System.Net.Http;
@ -18,6 +19,7 @@ namespace MiniGames.Client
builder.RootComponents.Add<App>("#app"); builder.RootComponents.Add<App>("#app");
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
builder.Services.AddScoped<ISchereSteinPapierEchseSpock, SchereSteinPapierEchseSpock>();
await builder.Build().RunAsync(); await builder.Build().RunAsync();
} }

5
BlazorSolution/MiniGames/Client/Shared/NavMenu.razor

@ -22,6 +22,11 @@
<span class="oi oi-list-rich" aria-hidden="true"></span> Fetch data <span class="oi oi-list-rich" aria-hidden="true"></span> Fetch data
</NavLink> </NavLink>
</li> </li>
<li class="nav-item px-3">
<NavLink class="nav-link" href="scheresteinpapier">
<span class="oi oi-list-rich" aria-hidden="true"></span> Schere Stein Papier
</NavLink>
</li>
</ul> </ul>
</div> </div>

18
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);
}
}

7
BlazorSolution/MiniGames/Client/ViewModel/SchereSteinPapierEchseSpock.cs

@ -3,9 +3,9 @@ using System;
namespace MiniGames.Client.ViewModel 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) public void SpielerErstellen(string name)
{ {
@ -156,11 +156,14 @@ namespace MiniGames.Client.ViewModel
{ {
case "Gewonnen": case "Gewonnen":
spieleModel.SpielerListe[0].Punkte += 1; spieleModel.SpielerListe[0].Punkte += 1;
spieleModel.ergebnisAnzeige = "Gewonnen!";
break; break;
case "Verloren": case "Verloren":
spieleModel.SpielerListe[1].Punkte += 1; spieleModel.SpielerListe[1].Punkte += 1;
spieleModel.ergebnisAnzeige = "Verloren!";
break; break;
default: default:
spieleModel.ergebnisAnzeige = "Unentschieden!";
break; break;
} }

2
BlazorSolution/MiniGames/Shared/Models/SchereSteinPapierEchseSpockModel.cs

@ -10,6 +10,8 @@ namespace MiniGames.Shared.Models
{ {
public List<SpielerModel> SpielerListe = new(); public List<SpielerModel> SpielerListe = new();
public string ergebnisAnzeige = "";
public string[] hand = new[] public string[] hand = new[]
{ {
"Stein", "Stein",

Loading…
Cancel
Save