constructor()
:- ინიცირდება მოთამაშეთა ფერების სია
['yellow', 'green', 'red', 'blue']
. - შემოდის ტურნირის მიმდინარე რაუნდის ნომერი, რომელიც იწყება 1-დან.
- ინიციალიზირდება ცარიელი სია
matches
, რომელიც შეინახავს ყველა მატჩის ინფორმაციას. - ინიციალიზირდება ცარიელი სია
usedColors
, რომ არ მოხდეს მოთამაშეების ერთნაირი ფერების გამოყენება. - იძახებს
setupInitialScreen
ფუნქციას საწყისი ეკრანის დასამზადებლად.
- ინიცირდება მოთამაშეთა ფერების სია
setupInitialScreen()
:- იღებს საწყისი ეკრანის დაწყების ღილაკს (
#startBtn
) და ტურნირის ელემენტების კონტეინერს. - ღილაკის დაჭერისას,:
- საწყისი ეკრანი ქრება.
- ტურნირის ელემენტები აქტიურდება.
- ინიციალიზირდება ტურნირის ფუნქცია
init()
.
- იღებს საწყისი ეკრანის დაწყების ღილაკს (
init()
:- რაუნდის ნომერი კვლავ 1-ზე დგება.
- მატჩების სია ცარიელდება.
- ფერების გამოყენების სია ცარიელდება.
- იძახებს
createMatches()
ფუნქციას მიმდინარე რაუნდის მატჩების შესაქმნელად. - მატჩების ჩვენებას ახდენს
render()
ფუნქციით. - ამატებს შემდეგი რაუნდის ღილაკის ფუნქციონალს
setupControls()
.
createMatches()
:- გამოთვლის მიმდინარე რაუნდის მატჩების რაოდენობას:
- პირველი რაუნდი: 8 მატჩი.
- მეორე რაუნდი: 4 მატჩი.
- მესამე რაუნდი: 2 მატჩი.
- ფინალი: 1 მატჩი.
- თითოეულ მატჩში ირჩევს მოთამაშეების უნიკალურ ფერებს
getUniqueColor()
ფუნქციის გამოყენებით. - მოთამაშეების ინფორმაცია ინახება
matches
სიაში.
- გამოთვლის მიმდინარე რაუნდის მატჩების რაოდენობას:
getUniqueColor()
:- ფერებს ფილტრავს ისე, რომ ისინი არ ემთხვეოდეს უკვე გამოყენებულ ფერებს და
excludeColor
პარამეტრს. - თუ ყველა ფერი უკვე გამოყენებულია, სიას განაახლებს.
- შემთხვევით ირჩევს ფერს და აბრუნებს.
- ფერებს ფილტრავს ისე, რომ ისინი არ ემთხვეოდეს უკვე გამოყენებულ ფერებს და
-
render()
:- ეკრანზე აჩვენებს მიმდინარე რაუნდის ნომერს.
- წაშლის წინა რაუნდის მატჩებს.
- მატჩებს თანაბრად ნაწილდება მარცხენა და მარჯვენა სექციებზე.
- თითოეული მატჩის ვიზუალიზაცია ხდება
createMatchElement()
ფუნქციით.
-
createMatchElement()
:- ქმნის HTML ელემენტს, რომელიც აჩვენებს მოთამაშეების ფერებს და "VS"-ს.
progressRound()
:- ამოწმებს, ფინალია თუ არა.
- თუ ფინალია, აჩვენებს გამარჯვებულს
showWinner()
. - სხვაგვარად, რაუნდის ნომერს ზრდის და ახორციელებს ახალ მატჩებს.
showWinner()
:- აჩვენებს გამარჯვებულის ფერს და "ხელახლა დაწყების" ღილაკს.
- ღილაკის დაჭერისას თამაშს თავიდან ტვირთავს
restart()
ფუნქციით.
createElement()
:- HTML ელემენტების შექმნის ფუნქცია, რომელიც საშუალებას აძლევს მარტივად შექმნას ტურნირის ვიზუალური კომპონენტები.