ich habe vollgendes Probelm,
-ich lasse mir das Fenstergröße generieren..
-dann setze ich den cursor(zufallsbedingt)
-Stern zeichen (zeichenen())
-nächste Position des Stern ausrechnen, altes zeichen löschen neue Position setzen und strern zeichen..
Ab und zu sprint mein Stern aber ausserhalb des grenzwertes..
Wieso? ich habe aber ne if-Anweisung des das abfangen soll wenn meine position x oder y den gleichen wert haben wie die maximale Breite oder Höhe des fensters
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75:
| using System.Collections.Generic; using System; using System.Threading; using System.Text; using System.Collections;
namespace ConsoleApplication1 { class Program { static void Main(string[] args) {
Random rnd = new Random( ); int x = rnd.Next(Console.WindowWidth -1); int y = rnd.Next(Console.WindowHeight -1); Position starter1 = new Position(x,y,0,1);
Console.CursorVisible = false;
while(true) { starter1.Zeichnen( ); Thread.Sleep(40); starter1.FolgeSchritt( ); } } } } public class Position { private int posX, posY, richtungX, richtungY;
public Position(int x, int y, int xd, int yd) { posX = x; posY = y;
richtungY = yd; richtungX = xd; } public void FolgeSchritt( ) { BildAusgabe(" ");
if((posX == Console.WindowWidth - 1) || (posX == 0)) { richtungX = -richtungX; } if((posY == Console.WindowHeight - 1) || (posY == 0)) { richtungY = -richtungY; } posX += richtungX; posY += richtungY; } public void Zeichnen( ) { BildAusgabe("*"); } private void BildAusgabe(string a) { Console.CursorLeft = posX; Console.CursorTop = posY; Console.Write(a); } } |
Moderiert von
UGrohne: Code- durch C#-Tags ersetzt