Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sprawdzanie warunków zwycięstwa magicznym kwadratem #2

Open
event15 opened this issue Oct 5, 2015 · 4 comments
Open

Sprawdzanie warunków zwycięstwa magicznym kwadratem #2

event15 opened this issue Oct 5, 2015 · 4 comments

Comments

@event15
Copy link
Member

event15 commented Oct 5, 2015

4 9 2
3 5 7
8 1 6

To tak zwany magiczny kwadrat. Warunkiem zwycięstwa jest suma równa 15 w linii.

Przykłady:

  1. Poziomo: 4+9+2 = 3+5+7 = 8+1+6 = 15
  2. Pionowo: 4+3+8 = 9+5+1 = 2+7+6 = 15
  3. Diagonal: 4+5+6 = 8+5+2 = 15

W ten sposób sprawdzono wszystkie warunki wygranej a dla każdego gracza wystarczy sumować te liczby.

Tutaj dołączam kod, który może wygenerować taki magiczny kwadrat automatycznie (oczywiście do refaktoringu): http://code.geeksforgeeks.org/QeZ3yL

@efiku
Copy link
Member

efiku commented Oct 5, 2015

Rozumiem, że to jest pomysł który ma zastąpić te kosmiczne ify w kodzie do weryfikacji czy są 3 kółka / krzyżyki w poziomie , pionie , na skos ?

@event15
Copy link
Member Author

event15 commented Oct 5, 2015

Oczywiście, że tak. Dla planszy 3x3 kod sprowadza się do sprawdzenia jednego warunku.
W przypadku, gdy plansza będzie dynamiczna i będzie mogła mieć dowolne rozmiary to jednak będzie konieczna implementacja metody generującej taki magiczny kwadrat.

Jednak przykład z linku to full-stack metoda. A w naszym programie wystarczyłoby wyliczyć tylko sumę dla każdej linii. Myślę, że sam fakt odchudzi znacznie tą metodę.

@efiku
Copy link
Member

efiku commented Oct 5, 2015

Pozostanie tylko zrobienie tego tak, aby podmiana z prostego algo na np ten, nie wprowadzała konieczności przebudowy całego sytemu ( ͡° ͜ʖ ͡°)

@event15
Copy link
Member Author

event15 commented Oct 5, 2015

I tak cały jest do przebudowy przecież. W tym momencie każde rozwiązanie jest mega dobre.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants