Warning: The project is still in progress and will be updated in the near future
Bouncing balls!
Explore the docs »
View short tutorial
.
Feature Requests
- About the Project
- Built With
- Getting Started
- Usage
- Roadmap
- Contributing
- License
- Authors
- Acknowledgements
Our task was to create a program of balls moving on the screen in C#, using asynchronous and concurrent programming techniques. The project is that the user selects the number of balls to generate and presses the button, then the balls are generated in random places and their task is to move and bounce in a realistic way from the barriers and themselves.
Here's why:
- We wanted to learn more and test the concurrency programming ourselves.
- Using the simple idea of bouncing balls to practice programming, but in an interesting and new way for us.
- Watching the balls bounce off each other is really satisfying: try it for yourself ;-)
Despite such a simple idea, it might seem that the project will be trivial, however it turned out to be an interesting challenge
A list of commonly used resources that we find helpful are listed in the acknowledgements.
The idea was to make a program in C# using the MVVM pattern to connect the data with the view. Finally, our project is divided into 3 layers: data, logic and presentation. And the presentation layer itself is made according to the MVVM pattern and is divided into: model, viewmodel, view. The next step was to implement multi-threading. We wanted each ball to be a separate thread and move independently. We used the critical section for data and logic to avoid various problems. we implement reactive and interactive user-computer interaction. Our graphical user interface (GUI) is made using XAML. In addition also Dependency Injections and asynchronous programming is used.
This is an example of how you may give instructions on setting up your project locally. To get a local copy up and running follow these simple example steps.
This is an example of how to list things you need to use the software and how to install them.
- Clone the repo
git clone https://github.com/GoldenKacper/Concurrent-Programming.git
- Open net6.0-windows folder
Folder is in the following location. Remember this is a relative path.
Type this command in CMD in the folder where you have cloned the repo.
cd Concurrent-Programming\Presentation\bin\Debug\net6.0-windows
- Run Presentation.exe file
.\Presentation.exe
If you already have a project prepared, we refer you to the quick guide View short tutorial
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- If you have suggestions for adding or removing projects, feel free to open an issue to discuss it, or directly create a pull request after you edit the README.md file with necessary changes.
- Please make sure you check your spelling and grammar.
- Create individual PR for each suggestion.
We can implement any suggestions only after we finish the project at the university, i.e. from the summer of 2023
- Fork the Project
- Create your Feature Branch (
git checkout -b suggestions
) - Commit your Changes (
git commit -m 'Add some exampleSuggestion
) - Push to the Branch (
git push origin suggestions
) - Open a Pull Request
See LICENSE for more information.
Name Surname (initials) | GUID |
---|---|
Kacper Jagodziński | {44cde337-333b-4960-bd5c-8a18c9b5b97b} |
Adam Kruszyński | {cb2cfa5a-5396-4921-be82-b7c9f2beec61} |