Skip to content

Repository files navigation

README.md – Lights Out Game

🟡 Lights Out Game – WPF MVVM

Build License Platform Language UI Issues PRs Last commit Repo size

🧠 Overview

LightsOutGame is a classic puzzle game developed in C# using Windows Presentation Foundation (WPF) and the MVVM (Model–View–ViewModel) design pattern.
The goal of the game is to turn off all the lights on the grid — but toggling one light also toggles its adjacent ones.

This project was created to:

  • Practice clean MVVM architecture
  • Implement custom converters and commands
  • Manage local data persistence with text files
  • Build a modern, interactive UI with WPF

🧰 Tech Stack

  • Language: C#
  • Framework: .NET / WPF
  • Architecture: MVVM
  • Data Storage: Plain text files (settings.txt, statistics.txt, users.txt)
  • Version Control: Git & GitHub

📂 Project Structure

LightsOutGameCellaLazarescu
│   LightsOutGame.sln
│   README.md
│   .gitignore
│
└───LightsOutGame
    ├── Commands
    │   └── RelayCommand.cs
    ├── Converters
    │   └── BoolToColorConverter.cs
    ├── Data
    │   ├── settings.txt
    │   ├── statistics.txt
    │   └── users.txt
    ├── Models
    │   ├── CellModel.cs
    │   └── UserModel.cs
    ├── ViewModels
    │   ├── AboutViewModel.cs
    │   ├── AuthViewModel.cs
    │   ├── LightsOutViewModel.cs
    │   ├── SettingsViewModel.cs
    │   └── StatisticsViewModel.cs
    ├── Views
    │   ├── AboutView.xaml
    │   ├── AuthView.xaml
    │   ├── LightsOutView.xaml
    │   ├── SettingsView.xaml
    │   └── StatisticsView.xaml
    └── App.xaml

🖼️ UI Preview

Below are a few screenshots showcasing the Lights Out Game in action:

Main Game Screen
Statistics Page

How to Add Your Own Screenshots

  1. Create a folder named assets in the root directory of the project.
  2. Add your .png or .jpg screenshots (e.g., screenshot1.png, screenshot2.png).
  3. Reference them in this README using Markdown syntax:
    ![Descriptive Title](assets/your-screenshot-name.png)
    
    💡 Tip: Use clear, descriptive titles for each image (e.g., “Login Page”, “Statistics Page”) to make your README more visually informative.

✨ Features

  • 🕹️ Interactive Lights Out puzzle gameplay
  • 🔐 Login / authentication system
  • 📝 Local user statistics and settings saved in text files
  • 🧭 MVVM pattern with clean separation of logic and UI
  • 🎨 Custom BoolToColorConverter for dynamic cell styling
  • ⚡ Lightweight and easy to build

🚀 Getting Started

Prerequisites

Steps to Run

git clone https://github.com/CellaIoana/LightsOutGame.git
cd LightsOutGameCellaLazarescu
  1. Open LightsOutGame.sln in Visual Studio
  2. Build the solution
  3. Run the project (F5)

🧪 Build Status

This project includes a GitHub Actions workflow to ensure the build passes successfully on every push:

.github/workflows/build.yml

📜 License

This project is licensed under the MIT License.

👩‍💻 Author

Cella Lazarescu
GitHub
📍 Passionate developer and computer science student, exploring software architecture and interactive UI design.

⭐ Contributing

Contributions are welcome!
If you'd like to improve or extend this project:

  1. Fork the repository
  2. Create a new branch
  3. Make your changes
  4. Submit a pull request 🚀

📬 Contact

If you have any questions or suggestions: 📧 Email: cella.lazarescu81@yahoo.com 🌐 GitHub: https://github.com/CellaIoana

About

LightsOutGame- a classic puzzle game- implemented in C# using WPF and MVVM. The project focuses on clean architecture, reusable components, and a modern user interface. It includes user authentication, game statistics stored locally, and customizable settings. Designed both as a learning exercise for MVVM in WPF and as a fully functional mini-game.

Topics

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages