{"id":22008976,"url":"https://github.com/dulev23/memorygame","last_synced_at":"2025-03-23T07:26:11.172Z","repository":{"id":246404518,"uuid":"820485004","full_name":"dulev23/MemoryGame","owner":"dulev23","description":"Project in C# (Desktop Development) for Visual Programming.","archived":false,"fork":false,"pushed_at":"2024-06-28T14:00:38.000Z","size":83,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-28T14:17:25.953Z","etag":null,"topics":["csharp","visual-programming","visual-studio"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dulev23.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-26T14:59:57.000Z","updated_at":"2024-08-21T14:54:16.000Z","dependencies_parsed_at":"2024-06-27T20:53:23.977Z","dependency_job_id":null,"html_url":"https://github.com/dulev23/MemoryGame","commit_stats":null,"previous_names":["dulev23/memorygame"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dulev23%2FMemoryGame","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dulev23%2FMemoryGame/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dulev23%2FMemoryGame/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dulev23%2FMemoryGame/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dulev23","download_url":"https://codeload.github.com/dulev23/MemoryGame/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245068930,"owners_count":20555852,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","visual-programming","visual-studio"],"created_at":"2024-11-30T02:07:55.011Z","updated_at":"2025-03-23T07:26:11.147Z","avatar_url":"https://github.com/dulev23.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Memory Game\n## 1. Вовед на апликацијата\nMemory Game е класична игра на концентрација и внимание, која е популарна меѓу сите возрасни групи. Оваа игра е идеална за развивање на когнитивните способности, како што се краткорочната меморија, фокусирањето и брзината на размислување. Играта се состои од парови на картички кои се мешаат и поставуваат на маса со лицето надолу. Играчите наизменично вртат по две картички, со цел да пронајдат парови. \n\n### 1.1. Вовед на кодот\nКодот ја дефинира логиката на играта, која вклучува мешање на картичките, следење на бројот на обиди и управување со времето помеѓу обидите за пронаоѓање парови. Кога играчот ќе кликне на картичка, се проверува дали има веќе кликнати картички и се споредуваат симболите на двете картички. Доколку симболите се исти, картичките остануваат отворени; во спротивно, тие повторно се затвораат по кратко време. Играта завршува кога играчот ќе ги пронајде сите парови, при што се прикажува порака за успех и бројот на обиди потребни за постигнување на целта.\n\n## Интерфејс на почетната страна\n![HomeWindow](https://github.com/dulev23/MemoryGame/assets/117026211/3bfedc4e-9292-47a8-a4a5-1275ef2bf8f3)\n\n## 2. Објаснување на ниво\n### 2.1. EasyMode\nФормата 'EasyMode' во играта 'MemoryGame' е дизајнирана за почетници, обезбедувајќи поедноставен начин на игра со помал број на картички, без временско ограничување за вториот клик.\n\n### Интерфејс на EasyMode\n![EasyModeWindow](https://github.com/dulev23/MemoryGame/assets/117026211/a88c41ee-3709-424c-9b1c-a129bdea0ba2)\n\n#### Иницијализација и поставување на картички:\nКога се креира формата, картичките се мешаат и случајно се распределуваат во табелата преку методот  'AssignCards()'. Листата 'cards' содржи пет парови на симболи (10 картички), кои се поставуваат на лабелите во табелата 'tlpImages'.\n\n#### Играње и логика на кликнување:\nИграчите кликаат на картичките за да ги откријат симболите. Првата кликната картичка се зачувува во променливата 'firstClicked', а втората во 'secondClicked'. Доколку двете картички имаат исти симболи, тие остануваат откриени. Во спротивно, се започнува тајмер ('timer1'), кој по кратко време ги затвора картичките.\n\n#### Следење на обидите:\nБројот на обиди на играчот се следи преку променливата 'attemptsCount', кој се ажурира секогаш кога играчот ќе направи обид да пронајде пар. Овој број е прикажан на лабелата 'lblAttempts', која се ажурира секогаш кога ќе се направи нов обид.\n\n#### Услови за победа:\nМетодот WinCondition() проверува дали сите картички се откриени. Доколку се, играчот е известен за победата преку порака која го прикажува бројот на направените обиди. Пораката се прикажува во 'MessageBox', по што формата се затвора.\n\n### 2.2. MediumMode\nФормата 'MediumMode' ја има скоро истата имплементација како 'EasyMode' но содржи неколку дополнителни карактеристики и функционалности кои ја прават играта поинтерактивна и предизвикувачка.\n\n#### Интерфејс на MediumMode\n![MediumModeWindow](https://github.com/dulev23/MemoryGame/assets/117026211/4dbaaea5-36bb-46ad-b59d-3ff6ed3c5745)\n\n#### Број на картички\n'MediumMode' користи повеќе картички (16) со различни симболи.\n\n#### Временско ограничување за втор клик\n'MediumMode' има временско ограничување од 5 секунди за вториот клик. Ако играчот не го направи вториот клик во даденото време, картичките се затвораат и бројот на обиди се зголемува.\n\n#### Следење на време \nОва ниво содржи логика за следење на преостанатото време и го прикажува на лабелата 'lblTimeLimit'.\n\n### 2.3 HardMode\nФормата 'HardMode' ја има истата имплементација како 'MediumMode'. Се разликуваат само во две карактеристики: тајмерот за кликнување на втората картичка е 2 секунди наместо 5, а бројот на картички е 28 наместо 16.\n\n#### Интерфејс на HardMode\n![HardModeWindow](https://github.com/dulev23/MemoryGame/assets/117026211/8b1df4e9-ae7a-4455-85f8-8c4dbd4d0493)\n\n## 3. Пример од завршена игра\n![CompletedGameExample](https://github.com/dulev23/MemoryGame/assets/117026211/612b75fc-ea2a-4b30-bed6-cb110c406e34)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdulev23%2Fmemorygame","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdulev23%2Fmemorygame","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdulev23%2Fmemorygame/lists"}