Skip to content

Instantly share code, notes, and snippets.

@zur4ik
Last active March 25, 2024 09:06
Show Gist options
  • Save zur4ik/ea9b80f79412ab70a18065797dc6523b to your computer and use it in GitHub Desktop.
Save zur4ik/ea9b80f79412ab70a18065797dc6523b to your computer and use it in GitHub Desktop.

მემო-ბარათი (თამაში)

მემო-ბარათი არის თამაში, სადაც მოცემულია ჩატრიალებული ბარათები სხვადასხვა გამოსახულებით. მოთამაშემ ბარათზე დაჭერით უნდა ამოატრიალოს და დაიმახსოვროს ბარათზე მოცემული გამოსახულება. იგივე გამოსახულების სხვა ბარათის პოვნისას ბარათები წყვილდება.

თამაშში გამარჯვებისთვის მოთამაშემ განსაზღვრულ დროში უნდა იპოვოს ბარათების ყველა წყვილი.

თამაშის აღწერა

  • მომხმარებელის ხედავს NxN ბარათების ცხრილს (სადაც N არის მთელი რიცხვი). ყველა ბარათის საწყისი მგომარეობაა დამალული (ბარათები ჩატრიალებულია)
  • თამაშის დასაწყებად მომხმარებელი აჭარეს დაწყების ღილაკს. ამ ღილაკზე დაჭერისას ჩაირთვება წამზომი და თამაში იწყება.
  • მომხმარებელს შეუძლია დააჭიროს ნებისმიერ ბარათს. დაჭერისას ბარათი ამოტრიალდება (ბარათის მდგომარეობა ხილული) და გამოჩნდება ბარათის გამოსახულება. ბარათი დარჩება ხილული სანამ მომხმარებელი არ დააჭერს მეორე ბარათს.

როცა მომხმარებელი აჭერს მეორე ბარათს:

  • თუ მეორე ბარათის გამოსახულება ემთხვევა პირველს, ეს ორი ბარათის გამოდის თამაშის დასტიდან. (იმალება ან რჩება ხილულ მდგომარეობაში რამე ვიზუალური ეფექტით, რაც გამოარჩევს სხვა ბარათებისგან, მაგალითად უჩნდება ფერადი ჩარჩო, ან ხდება ოდნავ გამჭვირვალე)
  • თუ არ მოხდა დამთხვევა, ორივე ბარათი ტრიალდება (უბრუნდება მალულ მდგომარეობას).
  • როცა ყველა წყვილი ნაპოვნია, მომხმარებელი ხედავს დიალოგურ ფანჯარას გამარჯვების შეტყობინებით, დახარჯული დროის ოდენობით და ახალი თამაშის დაწყების ღილაკით.

დამატებითი ფუნქციონალი

  • მომხმარებელს შეუძლია აირჩიოს თამაშის 3 სირთულიდან ერთერთი (მარტივი, საშუალო და რთული). სირთულის გაზრდა ნიშნავს:
    • (ან/და) განსხვავებულ გამოსახულებიანი ბარათების სიმრავლის ზრდას
    • (ან/და) NxN ცხრილის ზრდას
    • (ან/და) თამაშის დროის შემცირებას
  • მომხმარებელს თამაშის საყის გვერდზე შეუძლია სტატისტიკის ნახვა, რომელიც შეიცავს შემდეგი ტიპის ინფორმაციას:
    • მოგებული/წაგებული თამაშების რაოდენობას
    • ნაპოვნი წყვილების რაოდენობას
    • ბარათზე დაჭერების (მოქმედების) რაოდენობას

დამატებითი ინფორმაცია და რესურსები

პირობები

  • გამოიყენე React JS ფრეიმვორქი
  • თამაშის მოქმედებების და მდგომარეობის სამართავად გამოიყენე Redux
  • სტატისტიკა შეინახე ბრაუზერის Local Storage საცავში
  • მიმდინარე მდგომარეობა და დროც შეინახე Local Storage საცავში (გვერდის დარეფრეშების შემთხვევაში უნდა იყოს თამაშის გაგრძელების საშუალება)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment