superstar_v2/SequenceManager.cs

63 lines
1.8 KiB
C#
Raw Normal View History

2025-04-07 16:54:10 +08:00
namespace DualScreenDemo
{
public class SequenceManager
{
private ClickSequenceState currentState = ClickSequenceState.Initial;
public void ProcessClick(string position)
{
switch (currentState)
{
case ClickSequenceState.Initial:
if (position == "中間")
{
currentState = ClickSequenceState.FirstClicked;
}
break;
case ClickSequenceState.FirstClicked:
if (position == "右上")
{
currentState = ClickSequenceState.SecondClicked;
}
else
{
ResetState();
}
break;
case ClickSequenceState.SecondClicked:
if (position == "左上")
{
currentState = ClickSequenceState.ThirdClicked;
}
else
{
ResetState();
}
break;
case ClickSequenceState.ThirdClicked:
if (position == "謝謝")
{
currentState = ClickSequenceState.Completed;
PerformShutdown();
}
else
{
ResetState();
}
break;
}
}
private void ResetState()
{
currentState = ClickSequenceState.Initial;
}
private void PerformShutdown()
{
System.Diagnostics.Process.Start("shutdown", "/s /t 0");
}
}
}