generated from CodersCamp2020/CodersCamp2020.Project.TypeScript.Chess
-
Notifications
You must be signed in to change notification settings - Fork 3
Feedback & Code Review od Mentora Recenzenta (Szymon Pakuła) #94
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
Open
MateuszNaKodach
wants to merge
157
commits into
feedback/mentor-recenzent
Choose a base branch
from
develop
base: feedback/mentor-recenzent
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
157 commits
Select commit
Hold shift + click to select a range
e5f0867
Update README.md
MateuszNaKodach 9ae96cd
initial commit
949b9c0
more project settings
8c38735
Add project settings (ESLint, tsconfig, ts-jest, prettier)
PawelSzambelan df33b5d
Init Model-View-Presenter structure
b12f4d9
Init Model-View-Presenter structure
8b5da92
Create node.js.yml
tomaszdworniczak 98ec2e4
Merge pull request #16 from nowakprojects/github-workflow-setup
tomaszdworniczak e031aca
Merge branch 'develop' of https://github.com/nowakprojects/CodersCamp…
PawelSzambelan aacc1bb
Additional checks settings (#15)
1986243
Merge branch 'develop' of https://github.com/nowakprojects/CodersCamp…
PawelSzambelan 2943c04
Revert "Additional checks settings (#15)" (#19)
PawelSzambelan e58d121
#5 Stworzenie obrazków figur (#18)
annalamperska 1983190
Fix | Add missing export / imports in view and tests
MateuszNaKodach d31d992
Feature/#17 possible moves for rock (#20)
PawelSzambelan e6b9950
Add first test
PiotrRynio ca0b003
Add more tests and added BoardFixture.ts
PiotrRynio f552a09
Merge branch 'develop' of https://github.com/nowakprojects/CodersCamp…
PawelSzambelan 18654d8
Add chess Board fixtures and improve tests readability
MateuszNaKodach a228e4d
Add non-finished Pawn.ts
PiotrRynio 5f60ff3
Add all tests
PiotrRynio 11dcdd8
Add "possibleMoves" functions
PiotrRynio a9bb410
ESLint configuration fix and add lint & prettier to GitHub Actions wo…
MateuszNaKodach 96ee0da
Fix movesToGo
PiotrRynio 77cf28a
Fix first test "Check possible squares to go, when White Pawn is on D…
PiotrRynio a9cbe9c
Add "goAhead" function for WHITE side
PiotrRynio a455441
Add "goDoubleAhead" function for WHITE side
PiotrRynio 2e2b0e2
Add moving Pawn in diagonal ahead line for WHITE Pawns
PiotrRynio 7e7709b
CodeCov | Add test coverage reports and badge in README.md
MateuszNaKodach 30d9a33
Fix tests for BLACK side
PiotrRynio e53c1b6
Add BLACK Pawns movement
PiotrRynio 7728961
Merge branch 'develop' of https://github.com/nowakprojects/CodersCamp…
PiotrRynio 7ec2aee
GitHub Actions | Upload dist only on success
bff7851
Update after Code Review
PiotrRynio 2224d79
Merge branch 'develop' of https://github.com/nowakprojects/CodersCamp…
PiotrRynio 1a375a3
Add tests of non-limited Knight's movements by other pieces
PiotrRynio 937e67d
Fix mistake in square name and sort squares by names
PiotrRynio 4bf4e08
Finish tests
PiotrRynio af9128d
Add Knight's moves on empty Board
PiotrRynio 50a5120
Fix test - wrong expected position
PiotrRynio fab4394
Add new necessary chessboard border test
PiotrRynio 23fdd01
Fix test with BLACK Knight position
PiotrRynio 56be86b
Fix possible moves on empty chessboard. Add check function of chessbo…
PiotrRynio 0158fe7
Fix tests (color and position mistakes)
PiotrRynio 2f021ee
Add removing Impossible squares from empty board movesToGo array
PiotrRynio 60faded
Update after DeepScan feedback
PiotrRynio 1c65b04
GitHub Actions | Remove flags from code coverage
fcab320
Update tests with "GIVEN WHEN THEN method
PiotrRynio 3febb74
GitHub Actions | Flag typescript-project-chess
61cffaf
Pawn | Refactor possible moves
f4b20ad
Pawn | Refactor
4a87ca9
Pawn | Refactor
9caba88
Pawn | Refactor
27b7ed3
Pawn | Refactor
72f928b
Pawn | Refactor
08deb89
Merge branch 'develop' into pawn
MateuszNaKodach f755a95
Delete useless file
PiotrRynio aff8103
#22 Knight possible movements | Update tests names after Code Review
PiotrRynio cdb5908
#22 Knight possible movements | Update after Code Review automatic "C…
PiotrRynio 1834704
#22 Knight possible movements | Update after Code Review
PiotrRynio 1201396
Merge pull request #36 from nowakprojects/pawn
PiotrRynio 1d6c75b
Merge branch 'develop' into knight
PiotrRynio ababaa7
#22 Knight possible movements | Update after Code Review
PiotrRynio bd7b7f1
Merge remote-tracking branch 'origin/knight' into knight
PiotrRynio 8e7076b
Model/#31 piece movement (#34)
PawelSzambelan 7dda757
Merge branch 'develop' of https://github.com/nowakprojects/CodersCamp…
PiotrRynio 86ed18d
#22 Knight possible movements | Update to changed develop
PiotrRynio 330bdf4
Merge pull request #38 from nowakprojects/knight
PiotrRynio 11195ef
Merge branch 'develop' of https://github.com/nowakprojects/CodersCamp…
PawelSzambelan 01bcc99
#25 queen moves (#45)
tomaszdworniczak db13b53
Merge branch 'develop' of https://github.com/nowakprojects/CodersCamp…
PawelSzambelan f8d572f
#23 bishop movement
PawelSzambelan c47a9c2
Feature/#23 bishop (#48)
PawelSzambelan 2492d06
Merge branch 'develop' of https://github.com/nowakprojects/CodersCamp…
PawelSzambelan e04afbe
#8 UI | Szachownica (#41)
annalamperska 6698c0b
Extract universal methods (#49)
tomaszdworniczak c6ac639
Merge remote-tracking branch 'origin/develop' into develop
PawelSzambelan 4647eda
#27 MVP Architecture Component and add listening for clicks on Square…
DomiZet 7be04bd
UI button (#39)
tomaszdworniczak 7be9dbd
Fix showing CSS by parcel public url configuration (#56)
MateuszNaKodach 168e981
#57 View | MVP Architecture - ViewEventBus
MateuszNaKodach 7d4c05b
Chess engine piece was moved piece was captured (#61)
tomaszdworniczak 41ad8f6
#40 MODEL | Ruch dla KRÓLA (#66)
annalamperska 7205c84
View/#26 pieces displaying (#54)
PawelSzambelan 88c101d
Initial Commit
PiotrRynio c2a194d
#43 MODEL - ChessEngine - Checking the king's check | Add first test
PiotrRynio b82d493
#43 MODEL - ChessEngine - Checking the king's check | Fix description…
PiotrRynio 90cdd01
#43 MODEL - ChessEngine - Checking the king's check | Extract common …
PiotrRynio fb7ea30
#43 MODEL - ChessEngine - Checking the king's check | Add test that p…
PiotrRynio 16c86a1
#43 MODEL - ChessEngine - Checking the king's check | Fix test's desc…
PiotrRynio adf0cdf
#43 MODEL - ChessEngine - Checking the king's check | Add test: white…
PiotrRynio 20debbb
#43 MODEL - ChessEngine - Checking the king's check | Add more tests
PiotrRynio 04acc38
#43 MODEL - ChessEngine - Checking the king's check | Update descript…
PiotrRynio 1df0b9c
#43 MODEL - ChessEngine - Checking the king's check | Update after ES…
PiotrRynio 32c4733
#43 MODEL - ChessEngine - Checking the king's check | Update test des…
PiotrRynio 8636006
#43 MODEL - ChessEngine - Checking the king's check | Add "if" condit…
PiotrRynio 68be782
#43 MODEL - ChessEngine - Checking the king's check | Next step in bu…
PiotrRynio 4b000d3
#72 Add method changeTurn, change currentSide default value to Side.W…
tomaszdworniczak 3eb860b
Merge branch 'develop' of https://github.com/nowakprojects/CodersCamp…
PiotrRynio 08e85ae
#43 MODEL - ChessEngine - Checking the king's check | Add finding kin…
PiotrRynio 380acf2
#43 MODEL - ChessEngine - Checking the king's check | Fix test descri…
PiotrRynio a4e123d
#43 MODEL - ChessEngine - Checking the king's check | Avoid problem w…
PiotrRynio 3ce356e
#43 MODEL - ChessEngine - Checking the king's check | Fix calling err…
PiotrRynio a5fe021
#43 MODEL - ChessEngine - Checking the king's check | Fix error in on…
PiotrRynio dd3b199
#43 MODEL - ChessEngine - Checking the king's check | Only working task
PiotrRynio b0d3e0a
#43 MODEL - ChessEngine - Checking the king's check | Finish checking…
PiotrRynio 0e501fb
#43 MODEL - ChessEngine - Checking the king's check | Update after au…
PiotrRynio a743cdd
Merge remote-tracking branch 'origin/develop' into develop
PawelSzambelan afe28ee
add build on windows option in package.json
PawelSzambelan 3740459
View/#28 highlighting possible moves (#65)
tomaszdworniczak 7fe8379
Merge branch 'develop' of https://github.com/nowakprojects/CodersCamp…
PiotrRynio e50ce43
Update package-lock.json
PiotrRynio 4d41beb
Changing after CodeReview - Delete tests
PiotrRynio 7be5b7a
Changing after CodeReview | Add first test
PiotrRynio f8613af
Changing after CodeReview | Finish adding tests
PiotrRynio 4c107d5
Changing after CodeReview | Add empty removePlayerMovesThatCauseHisKi…
PiotrRynio fd4709a
Changing after CodeReview | Change function name. Add returnPlayerMov…
PiotrRynio 0f40407
Changing after CodeReview | All tests passed
PiotrRynio 538214c
Changing after CodeReview | Delete commented tests
PiotrRynio dfa3438
Changing after CodeReview | Update after automatic DeepScan Review
PiotrRynio e4401fa
Changing after CodeReview | Update possibleMoves method
PiotrRynio ded3170
Changing after CodeReview | Extract a few methods from one bigger
PiotrRynio eac5116
Changing after CodeReview | Extract isSquareChecked method
PiotrRynio 1a695c8
Changing after CodeReview | Make prettier code
PiotrRynio 01ecab1
Update after CodeReview | Fix name of function. Make better chessboar…
PiotrRynio a13863a
Update after CodeReview | Update simulatedChessboardAfterMove method
PiotrRynio ec00beb
Update after CodeReview | Update
PiotrRynio 9e317b6
Update after CodeReview | Update after CR
PiotrRynio f0499c1
Update package.json
PawelSzambelan 97eafb7
Update after CodeReview | Delete comments
PiotrRynio ea04cf0
Update after CodeReview | Update function name for pieceMovesNotCausi…
PiotrRynio 90293fc
Merge branch 'develop' into build_on_windows
MateuszNaKodach 11ef17e
Update after CodeReview | Fix last commit - Update function name for …
PiotrRynio 6576b19
Update after CodeReview | Add access modifiers
PiotrRynio b594f4e
Update after automatic Code Analysis suggestion
PiotrRynio c81c382
Fix | Add access modifiers
PiotrRynio 785a17c
Merge pull request #68 from nowakprojects/#43_Moves_a_piece_taking_in…
PiotrRynio e9e9f50
Merge branch 'develop' into build_on_windows
PiotrRynio b49b5b6
Merge pull request #75 from nowakprojects/build_on_windows
PiotrRynio 965bb07
Model/remove player (#78)
PawelSzambelan 7eede96
Imports fix (#74) (#81)
PiotrRynio 66ba8c1
#52 Model | ChessEngine (metoda movePiece) - Event PawnPromotionWasEn…
annalamperska 4f5cf93
Chess engine king was checked king was unchecked (#82)
tomaszdworniczak 61056c1
Fix describes in branch nr 42 (#86)
PiotrRynio 4360d89
View/#62 piece movement (#77)
PawelSzambelan 5a9257b
#64 & #88 - Event Checkmate Has Occurred & Stalemate Has Occurred (#87)
PiotrRynio b579a7f
#69 Model | ChessEngine - Roszada (#83)
annalamperska bb39f76
Update | Change Stalemate and fix a small bug in test (#91)
PiotrRynio 3578093
Create modal window for pawn promotion (#76)
DomiZet 8b01cd3
Update css | quick fix before deadline (#92)
PiotrRynio 728dbcd
Model | pawn_en_passant (#89)
tomaszdworniczak da8ae01
Fix imgs
PiotrRynio ccad37d
Add same row checking (#97)
annalamperska e002ab6
Fix img problems after promotion (#96)
PiotrRynio 1d981c3
Disable castling when a pawn attacks square crossed by the king (#100)
annalamperska 0d6ee0e
Update README.md (#99)
DomiZet a6451c6
Add codecov bagde to README
MateuszNaKodach File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| { | ||
| "presets": ["@babel/preset-env"] | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| module.exports = { | ||
| parser: '@typescript-eslint/parser', | ||
| parserOptions: { | ||
| project: 'tsconfig.json', | ||
| sourceType: 'module', | ||
| }, | ||
| plugins: ['@typescript-eslint/eslint-plugin'], | ||
| extends: [ | ||
| 'plugin:@typescript-eslint/eslint-recommended', | ||
| 'plugin:@typescript-eslint/recommended', | ||
| 'prettier', | ||
| 'prettier/@typescript-eslint', | ||
| ], | ||
| root: true, | ||
| env: { | ||
| node: false, | ||
| jest: true, | ||
| }, | ||
| ignorePatterns: ['.eslintrc.js'], | ||
| rules: { | ||
| '@typescript-eslint/no-empty-function': 'off', | ||
| '@typescript-eslint/no-empty-interface': 'off', | ||
| }, | ||
| }; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,55 @@ | ||
| # This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node | ||
| # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions | ||
|
|
||
| name: CodersCamp2020 | ♟️ Chess Game - TypeScript CI | ||
|
|
||
| on: | ||
| push: | ||
| paths-ignore: | ||
| - '**/*.md' | ||
|
|
||
| jobs: | ||
| build: | ||
| name: 'Build Ancient Egypt Chess application' | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v2 | ||
| - name: Use Node.js ${{ matrix.node-version }} | ||
| uses: actions/setup-node@v1 | ||
| with: | ||
| node-version: 14.x | ||
| - run: npm ci | ||
| - run: npm run lint:ci | ||
| - run: npm run format:ci | ||
| - run: npm run build --if-present | ||
| - run: npm run test:ci | ||
| - uses: actions/upload-artifact@v1 | ||
| name: Upload build as artifact | ||
| with: | ||
| name: chess-dist | ||
| path: ./dist | ||
| - name: Upload test coverage report to Codecov | ||
| uses: codecov/codecov-action@v1 | ||
| with: | ||
| flags: typescript-project-chess | ||
|
|
||
| deploy-on-github-pages: | ||
| name: 'Deploy app to GitHub Pages from develop branch source code' | ||
| if: github.ref == 'refs/heads/develop' | ||
| needs: build | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/download-artifact@v2 | ||
| with: | ||
| name: chess-dist | ||
| path: ./dist | ||
| - name: Deploy app as GitHub Pages | ||
| uses: peaceiris/actions-gh-pages@v3.7.0-6 | ||
| if: ${{ github.event_name != 'pull_request' && always() }} | ||
| with: | ||
| github_token: ${{ secrets.GITHUB_TOKEN }} | ||
| publish_dir: './dist' | ||
| user_name: 'github-actions[bot]' | ||
| user_email: 'github-actions[bot]@users.noreply.github.com' | ||
| force_orphan: true | ||
| keep_files: false |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| node_modules | ||
| .idea | ||
| dist | ||
| .cache | ||
| coverage | ||
| css | ||
| .history |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| { | ||
| "singleQuote": true, | ||
| "trailingComma": "all", | ||
| "tabWidth": 2, | ||
| "semi": true, | ||
| "printWidth": 140 | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,136 +1,59 @@ | ||
| **UWAGA! Zaczynając pracę nad projektem — nie róbcie forka. | ||
| Jedna osoba z zespołu (np. Mentor) powinna użyć przycisku `Use this template` i dodać innych członków zespołu jako Collaborators do tego repozytorium. | ||
| Mentorzy mogą dowolnie zmieniać zakres projektu lub zdecydować się na zupełnie inny temat.** | ||
|
|
||
| # CodersCamp 2020 - Projekt TypeScript | ||
| **CodersCamp (coderscamp.edu.pl) - Największy otwarty kurs programowania webowego** | ||
|
|
||
|  | ||
| Proponowany projekt — Szachy (opis poniżej). | ||
|
|
||
| ### Zasady wykonywania projektu (wspólne dla wszystkich grup i mentorów): | ||
|
|
||
| ##### W projekcie każdy z uczestników powinien zaprezentować praktyczną znajomość poniższych zagadnień związanych z TypeScript: | ||
| - typy podstawowe | ||
| - definiowanie własnych typów | ||
| - składanie typów | ||
| - typy / klasy / interfejsy | ||
| - implementacja / dziedziczenie / kompozycja / implementacja interfejsu | ||
| - modyfikatory dostępu | ||
| - typy generyczne | ||
| - testy jednostkowe i TDD | ||
|
|
||
| Do realizacji założeń projektowych nie używajcie żadnej biblioteki, która np. implementuje silnik szachów. Ten projekt ma za zadanie właśnie nauczyć jak planować takie systemy :) Wraz z mentorem spróbujcie się skupić na właściwej architekturze aplikacji i podziale odpowiedzialności. | ||
| Co więcej, coraz częściej w czasie rekrutacji programistów pojawia się etap "System Design" poleagający na dyskusji i projektowaniu rozwiązania jakiegoś prostego systemu. Częstym przykładem jest właśnie gra w szachy. | ||
| W zadaniach dodatkowych jest gra przeciwko komputerowi - oczywiście AI nie jest zakresem kursu, więc tutaj możecie użyć jakiegoś gotowca lub zaimplementować własny prosty algorytm - proponujemy np. MINIMAX :) | ||
| Powodzenia! | ||
|
|
||
| ##### W trakcie trwania projektu należy wyznaczyć w zespole następujące role | ||
| tak jak opisano w przypadku poprzedniego projektu. | ||
|
|
||
| Product Owner & Dev Manager odpowiada za ustalenie zadań dla zespołu, które umożliwią wykonanie aplikacji zgodnie z wymaganiami. | ||
| Oczywiście nie musi, a nawet nie powinien tego robić sam (nieoceniona będzie pomoc Tech Leadera i oczywiście opinia Klienta - pamiętajcie o jego cennym czasie i nie angażujcie w każdą dyskusję). | ||
| Można zorganizować spotkanie osób pełniących role w zespole, albo nawet całego zespołu. | ||
| W tym projekcie dobrze też zacząć estymować zadania wspólnie z zespołem. Jednakże mentor może zaproponować swój tryb pracy. | ||
| Skupcie się na jakości wykonania i pracy zespołowej. Niektóre wymagania mogą przypominać Wam poprzedni projekt, więc czasem może być warto wykorzystać już posiadaną wiedzę. | ||
|
|
||
| ##### Sposób oceny projektu (i wszystkich kolejnych projektów na CodersCamp) | ||
| tak jak opisano w przypadku poprzedniego projektu. | ||
|
|
||
| ## Gra w Szachy | ||
| Teraz przechodzimy do przykładowego projektu, który został przygotowany przez organizatorów kursu. | ||
| Proponowany projekt pozwala na zastosowania większości umiejętności, jakie powinniście posiąść w trakcie przerabiania działu. | ||
| Jednakże jeśli macie pomysł na projekt podobnej skali, który spełni opisane na górze wymagania i czujecie się na siłach | ||
| w zdefiniowaniu funkcjonalności, przygotowaniu ekranów i podzieleniu go na zadania — to nic nie stoi na przeszkodzie, | ||
| aby wykonać np. coś związanego z zainteresowaniami Waszej grupy :) | ||
| Przykładem może być też jakaś inna gra — np. Chińczyk. Niech nic nie stoi na przeszkodzie waszej kreatywności. | ||
| Pamiętajcie tylko, że czas jest ograniczony i musicie zdążyć z aplikacją do prezentacji. Powodzenia! | ||
|
|
||
| Czas porzucić narrację CodersCamp i wcielić się w członka zespołu projektowego... | ||
|
|
||
| ### Założenia projektowe | ||
| W trakcie projektu stajecie przed większym (lub mniejszym — jak kto woli) wyzwaniem. | ||
| Teraz nie macie niestety ani linijki już gotowego kodu. Brak też podzielonych zadań. Swoją pracę zaczynacie w tzw. projekcie greenfield, czyli totalnie od zera. | ||
| Pozwala to na większą dowolność, ale też wymaga na początku większego nakładu pracy i jest wąskim gardłem. | ||
| Jako zespół musicie podjąć odpowiednie decyzje na samym początku i postarać się jak najszybciej umożliwić pracę wielu osobom naraz. | ||
|
|
||
| Szachy są coraz bardziej popularne wśród przedsiębiorców. Odbywają się nawet Mistrzostwa Polski dla osób prowadzące własne działalności. | ||
| Niestety, obecna sytuacja z pandemią pokrzyżowała trochę plany zorganizowania kolejnych mistrzostw. | ||
| Po sukcesie waszego ostatniego projektu wiele osób z tego środowiska usłyszało o waszych usługach. | ||
| Dlatego wasz zespół został poproszony o przygotowanie mechanizmu szachów, który pomógłby w organizacji tych mistrzostw online. | ||
| Oczywiście jest to o wiele większy projekt, dlatego Wy odpowiadacie tylko za sam mechanizm szachów w przeglądarce. | ||
| Nie skupiacie się na kwestiach gry wielu graczy przez internet. Zostanie to na bazie waszego prototypu zrealizowanie później. | ||
|
|
||
| Ponieważ aplikacja ma być sygnowana przez CodersCrew, spróbujcie przygotować ją zgodnie z identyfikacją wizualną stowarzyszenia - Brand Book znajdziecie [TUTAJ](https://www.behance.net/gallery/94155751/Brand-Book-Project). | ||
| Nie jest to konieczność, ale fajna możliwość wypróbowania swojej skuteczności z takim wymaganiem (które jest częste w praktyce). | ||
|
|
||
|
|
||
| Lista funkcjonalności, jakie należy zaimplementować w silniku gry: | ||
| 1. Ruchy wszystkich bierek (wykonanie ruchu, jak i pokazywanie możliwych): | ||
| - Pionek | ||
| - Hetman | ||
| - Wieża | ||
| - Goniec | ||
| - Król. | ||
| 1. Promowanie pionka na dowolną inną figurę (oprócz króla) na końcu planszy. | ||
| 1. Roszada: https://pl.wikipedia.org/wiki/Roszada | ||
| 1. Szachowanie króla: https://pl.wikipedia.org/wiki/Szach_(szachy) | ||
| 1. Szach mat: https://pl.wikipedia.org/wiki/Mat_(szachy) | ||
| 1. Kończenie gry przez Pat: https://www.chess.com/pl/article/view/czym-jest-pat-szachowe-terminy | ||
| 1. Bicie w przelocie: https://www.chess.com/pl/article/view/bicie-w-przelocie-specjalne-ruchy-w-szachach | ||
| 1. Możliwość cofania ruchów (aż do początkowego układu). | ||
|
|
||
| Uwaga: Pamiętajcie, że na ruchy bierek, promocję pionka i możliwość roszady wpływa na szachowanie króla. Najlepiej zagrajcie kilka partii w zespole, żeby zapoznać się z tą domeną. No chyba, że macie w swoim zespole eksperta? | ||
| Dokładnie poznajcie domenę, w jakiej działa wasze oprogramowanie, czyli grę w szachy, aby nie wprowadzić jakiegoś zachowania niezgodnego z zasadami i żeby nic nie przeoczyć. | ||
| Starajcie się przewidzieć przypadki brzegowe i zaimplementujcie do nich odpowiednie testy. | ||
|
|
||
| **Jeśli macie w swoim zespole osobę chętną na przygotowanie designów, to także możecie UI zrobić kompletnie inaczej.** | ||
| A jeśli nie, to możecie się wzorować na przedstawionych [TUTAJ - Link do Figma](https://www.figma.com/file/ZllWbpJCCCCKVl7QEfNWbl/CodersCamp2020.Project.TypeScript.Chess?node-id=4461%3A3896). | ||
| Jednakże brakuje takich rzeczy jak np. wczytywanie / zapisywanie partii, wyświetlanie możliwych ruchów, podświetlanie wybranego pionka, zaznaczenie szachowanego króla czy wybór podczas promowania pionka. Co powinniście zaprojektować w ramach wykonywania aplikacji. Na projekcie z Figmy znalazło się też kilka rzeczy związanych z dodatkowymi funkcjonalnościami. Szczegóły co będziecie realizować - ustalcie z klientem. | ||
|
|
||
| Waszym zadaniem będzie zaimplementować aplikację, aby działała wg wymagań klienta, a także przygotować i wykonać | ||
| wersję responsywną aplikacji (dostosowaną do wyświetlania na Tabletach i Telefonach — możecie przygotować najpierw projekt interfejsu, lub od razu przejść do implementacji). | ||
| W celu zaprezentowania działania aplikacja musi być możliwa do odwiedzenia w internecie. | ||
| Klient nie chce ponosić za to żadnych dodatkowych kosztów, dlatego należy wykorzystać jedną z usług oferujących darmowe | ||
| uruchomienie takiej aplikacji (np. GitHub Pages lub Netlify). | ||
| Klient wymaga także, aby aplikacja nie tylko działała, ale była odpowiednio pokryta testami. | ||
| Naprawdę macie szczęście co do klienta! Wielu uważa testy za niepotrzebne i jedynie stratę pieniędzy. | ||
| A co znaczy „odpowiednio pokryta”, to już należy właśnie ustalić z samym Klientem :) | ||
|
|
||
| ## Możliwe usprawnienia i dodatkowe funkcjonalności: | ||
| Jeśli starczy czasu, dla własnego rozwoju warto rozważyć wykonanie poniższych funkcjonalności. | ||
|
|
||
| 1. Wczytywanie i zapisywanie stanu partii (szachownica, czas graczy itp.) - po wczytaniu musi być możliwe cofanie ruchów. Stan partii powinien zapisywać się automatycznie co wykonany ruch. | ||
| 1. Tworzenie nowej partii z aktualnego stanu partii. Gra nie może być zakończona. | ||
| 1. Tekstowe komentarze do gry (przykładowo): | ||
| - `Gracz Biały wykonał ruch "Koń z C1 na D3"` | ||
| - `Gracz Czarny dokonał promocji Pionka na Hetmana na polu A1. Szach białego Króla!` | ||
| - `Gracz Biały wykonał roszadę po stronie królowej.` | ||
| 1. Możliwość wyboru nieskończonego czasu gry lub szachów błyskawicznych (czas ograniczony dla każdego z graczy). | ||
| 1. Odliczanie czasu dla każdej ze stron (cofanie ruchu musi cofać czas do stanu sprzed ruchu) w przypadku szachów błyskawicznych. | ||
| 1. Dodatkowy czas doliczany do limitu czasowego gracza za każdy ruch (propocjonalny do długości całej patrii). | ||
| 1. Kończenie gry przez limit czasowy - gracz, któremu skończył się czas przegrywa. Nie rozpatrujemy przypadku remisu. | ||
| 1. Dwie wersje językowe gry — Polska i Angielska. | ||
| 1. Ładowanie stanu początkowego z np. notacji FEN (https://pl.wikipedia.org/wiki/Notacja_Forsytha-Edwardsa) i/lub tablicy emojis. | ||
| 1. Zaimplementuj różne strategie Pat opisane na Wikipedii: https://pl.wikipedia.org/wiki/Pat Np. stare zasady mówiły, że pat powodował wygraną strony, która zapatowała przeciwnika. | ||
| 1. Głosowe wykonywanie ruchów. Np. gracz mówi: "Pion na A3". | ||
|
|
||
| ## Dodatkowe zadania (wykraczające poza zakres kursu): | ||
| 1. Rozgrywka z komputerem - sztuczna inteligencja. Można wykorzystać np. algorytm minimax. Skorzystajcie z źródeł: | ||
| - https://alialaa.com/blog/tic-tac-toe-js-minimax | ||
| - https://www.youtube.com/watch?v=l-hh51ncgDI | ||
| - https://www.freecodecamp.org/news/simple-chess-ai-step-by-step-1d55a9266977/ | ||
| - https://towardsdatascience.com/create-ai-for-your-own-board-game-from-scratch-minimax-part-2-517e1c1e3362 | ||
| - https://dev.to/zeyu2001/build-a-simple-chess-ai-in-javascript-18eg | ||
| 1. Wykonanie testów E2E, przy użyciu odpowiedniego narzędzia. Proponujemy np. Cypress. | ||
|
|
||
| Wszelkie inne dodane przez Was funkcjonalności czy usprawnienia infrastrukturalne należy przedstawić w README.md projektu :) | ||
| Template znajdziecie w poprzednim projekcie. | ||
|
|
||
| ## Porady odnośnie do projektu | ||
| - Warto zapozań się z możliwościami kończenia partii szachowych (nie wszystko jest wymagane). | ||
| - [How Chess Games Can End: 8 Ways Explained](https://www.chess.com/article/view/how-chess-games-can-end-8-ways-explained) | ||
| - Jako inspirację można wykorzystać też działanie szachów zaimplementowanych przez zespół mentora Marcina Wosia na poprzednim CodersCamp (UWAGA: Wymagania mogły ulec zmianie) | ||
| - https://captainobjective.github.io/chessGame/ | ||
| - Dla testów może warto wykorzystać trochę reprezentacji wizualnej. Co powiecie na emoji :) ? Post mentora Mateusza Nowaka. | ||
| - [Emoji-Driven Development | ZycieNaKodach.pl](https://zycienakodach.pl/tdd-dsl-szachy-emojis) | ||
| # ACIENT CHESS | ||
|
|
||
|  | ||
|
|
||
| ## Overview | ||
|
|
||
| **ACIENT CHESS is another project carried out by our team as part of the CodersCamp.** | ||
|
|
||
| ## Our Crew | ||
|
|
||
| Mentor **[Mateusz Nowak](https://github.com/nowakprojects)** | ||
|
|
||
| - [Piotr Rynio](https://github.com/PiotrWR) | ||
| - [Anna Lamperska](https://github.com/lamparina) | ||
| - [Tomasz Dworniczak](https://github.com/tomdworniczak) | ||
| - [Paweł Szambelan](https://github.com/Szambelan) | ||
| - [Dominika Zwolenik](https://github.com/DomiZet) | ||
|
|
||
| ## Functionalities | ||
|
|
||
| 1. Moving all pieces (making a move, as well as showing possible ones): | ||
| 2. Promoting a pawn to another figure (except the king) at the end of the board | ||
| 3. Castling | ||
| 4. Checking king | ||
| 5. Checkmate | ||
| 6. Beating en passant | ||
| 7. Performing the whole chess game | ||
| 8. Ending the game by Pat | ||
|
|
||
| **Our game is fully covered by Unit Tests!** | ||
| [](https://codecov.io/gh/nowakprojects/CodersCamp2020.Project.TypeScript.Chess) | ||
|
|
||
|
|
||
| ## Running the project | ||
|
|
||
| Running this project locally | ||
|
|
||
| ###### Live version: | ||
|
|
||
| [live version](https://nowakprojects.github.io/CodersCamp2020.Project.TypeScript.Chess/) | ||
|
|
||
| ###### From the repo: | ||
|
|
||
| 1. Clone this project locally | ||
| 2. Run `npm install` in your bash/command line | ||
| 3. Run `npm run start:dev` in your bash/command line | ||
| 4. Host a game and invite some friends! | ||
|
|
||
| ## Dependencies | ||
|
|
||
| The following technologies were used : | ||
|
|
||
| - HTML | ||
| - CSS | ||
| - TypeScript | ||
| - [Jest](https://jestjs.io/) and [Testing Library](https://testing-library.com/docs/) | ||
|
|
||
|  | ||
|  |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| <!DOCTYPE html> | ||
| <html lang="en"> | ||
| <head> | ||
| <meta charset="UTF-8" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
| <title>....Our title</title> | ||
| <link rel="stylesheet" href="sass/style.scss" /> | ||
| </head> | ||
| <body> | ||
| <script src="src/index.ts"></script> | ||
| </body> | ||
| </html> | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
bugs_bunny_our_meme.jpg 🤣