C# Simulation Closing

  • 本文关键字:Closing Simulation c#
  • 更新时间 :
  • 英文 :


我刚刚完成了我的2人小游戏,但当我完成输入2种颜色时,它就会在按下一个键时关闭。我没有发现错误,也许有人可以帮助我?或者告诉我如何改进我的代码。我最近才开始用c#编程,非常感谢你的帮助

我的程序代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Fahrrad
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Geben sie die Farbe 'blau' oder 'gruen' ein: ");
Velo Velo1 = new Velo(Console.ReadLine());
Console.WriteLine("Geben sie die andere Farbe ein: ");
Velo Velo2 = new Velo(Console.ReadLine());
ConsoleKeyInfo input;
input = Console.ReadKey();
switch(input.Key)
{
case ConsoleKey.UpArrow:
Velo2.Gangwechsel(1);
break;
case ConsoleKey.DownArrow:
Velo2.Gangwechsel(0);
break;
case ConsoleKey.LeftArrow:
Velo2.Bremse(true);
break;
case ConsoleKey.RightArrow:
Velo2.Fortbewegung(true);
break;
case ConsoleKey.W:
Velo1.Gangwechsel(1);
break;
case ConsoleKey.S:
Velo1.Gangwechsel(0);
break;
case ConsoleKey.A:
Velo1.Bremse(true);
break;
case ConsoleKey.D:
Velo1.Fortbewegung(true);
break;
}

}
}
}

我的Class Code是:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
namespace Fahrrad
{
internal class Velo
{
private double gaenge;
private bool bremse;
private string farbe;
private double maxGang;
private bool fahrend;
// Konstruktor
public Velo(string farbe)
{
this.gaenge = 1;
this.farbe = farbe;
if(farbe == "blau")
{
maxGang = 7;
}
else if (farbe == "gruen")
{
maxGang = 3;
}
else
{
Console.WriteLine("Falsche eingabe");
Console.ReadKey();
System.Environment.Exit(1);
}
}
public void Gangwechsel(double schalten)
{
if(schalten == 0)
{
this.gaenge--;
if(this.gaenge == 0 && this.fahrend == true)
{
this.gaenge = 1;
Console.WriteLine("Sie sind bereits im tiefsten gang");
}
}
else if(schalten == 1 && this.fahrend == true)
{
this.gaenge++;
if(this.gaenge > this.maxGang)
{
this.gaenge = this.maxGang;
Console.WriteLine("Sie sind bereits im höchsten Gang");
}
}
else
{
Console.WriteLine("Sie müssen zum Gang wechseln fahren");
}
Console.WriteLine("Sie sind momentan im " + this.gaenge + " gang");
}

public void Bremse(bool bremse)
{
this.bremse = bremse;

if(fahrend == true && this.bremse == true)
{
fahrend= false;
Console.WriteLine("Sie haben die Fahrt beendet");
}
}
public void Fortbewegung(bool fahrend)
{
this.fahrend = fahrend;

if(this.bremse == true && this.fahrend == true)
{
Console.WriteLine("Sie haben die Bremse noch angezogen");
this.fahrend = false;
}
else
{ 
this.fahrend = true;
Console.WriteLine("Das " + this.farbe + "Fahrrad ist im" + this.gaenge + " Gang losgefahren");
}    
}
}
}

你需要一个可以通过按键终止的游戏循环。例如:

static void Main(string[] args)
{
Console.WriteLine("Geben sie die Farbe 'blau' oder 'gruen' ein: ");
Velo Velo1 = new Velo(Console.ReadLine());
Console.WriteLine("Geben sie die andere Farbe ein: ");
Velo Velo2 = new Velo(Console.ReadLine());
ConsoleKeyInfo input;
bool gameIsRunning = true;
while(gameIsRunning)
{
input = Console.ReadKey();
switch(input.Key)
{
// your other rules here
case ConsoleKey.Q:
gameIsRunning = false;
break;
}
}

}

最新更新