NASA’nın Mars platosu üzerinde rover’ları kontrol etme problemi çözümü.
Bu proje, klasik Mars Rover Coding Challenge probleminin C# / .NET ile implementasyonudur.
Amaç; Mars platosu üzerinde birden fazla rover’ı verilen komutlara göre hareket ettirmek, yönlendirmek ve son pozisyonlarını raporlamaktır.
Rover’ların koordinatları ve yönleri yönetilerek plato sınırları içinde güvenli navigasyon sağlanır.
Bir Mars platosu üzerinde rover’lar bulunmaktadır. Plato’nun sol alt köşesi (0,0) olarak kabul edilir.
Rover pozisyonu şu formatta verilir:
x y Yön
Örnek:
1 2 N
- L → 90 derece sola dön
- R → 90 derece sağa dön
- M → İleri git
5 5
1 2 N
LMLMLMLMM
3 3 E
MMRMMRMRRM
1 3 N
5 1 E
- .NET 8 / .NET 6+
- C#
- Console Application
- Object Oriented Design
- (Opsiyonel) Unit Testing (xUnit / NUnit)
Mars_Rover/
├── MarsRover.Console/ # Ana console uygulaması
├── MarsRover.Domain/ # Domain logic (Rover, Plateau, Direction vb.)
├── MarsRover.Services/ # Servis ve komut işleme katmanı
├── MarsRover.Tests/ # Unit testler (opsiyonel)
└── MarsRover.sln
- Projeyi klonlayın:
git clone https://github.com/huseyinkazim/Mars_Rover.git-
Solution’ı Visual Studio ile açın.
-
MarsRover.Consoleprojesini startup project olarak seçin. -
Uygulamayı çalıştırın (F5).
-
Konsola input girerek veya
Program.csiçinde hardcoded veri ile test edebilirsiniz.
- Rover yön yönetimi (N, E, S, W)
- Plato sınır kontrolü
- Birden fazla rover’ı sırayla çalıştırma
- Komut dizisini parse edip execute etme
Hüseyin Kazım
Coding Challenge / Kata
⭐ Her türlü katkı ve öneriye açıktır.