0
-↑
↑ +4diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md
index d28f7f9101..18c9147181 100644
--- a/.github/CODE_OF_CONDUCT.md
+++ b/.github/CODE_OF_CONDUCT.md
@@ -1,128 +1,128 @@
-# Contributor Covenant Code of Conduct
-
-## Our Pledge
-
-We as members, contributors, and leaders pledge to make participation in our
-community a harassment-free experience for everyone, regardless of age, body
-size, visible or invisible disability, ethnicity, sex characteristics, gender
-identity and expression, level of experience, education, socio-economic status,
-nationality, personal appearance, race, religion, or sexual identity
-and orientation.
-
-We pledge to act and interact in ways that contribute to an open, welcoming,
-diverse, inclusive, and healthy community.
-
-## Our Standards
-
-Examples of behavior that contributes to a positive environment for our
-community include:
-
-* Demonstrating empathy and kindness toward other people
-* Being respectful of differing opinions, viewpoints, and experiences
-* Giving and gracefully accepting constructive feedback
-* Accepting responsibility and apologizing to those affected by our mistakes,
- and learning from the experience
-* Focusing on what is best not just for us as individuals, but for the
- overall community
-
-Examples of unacceptable behavior include:
-
-* The use of sexualized language or imagery, and sexual attention or
- advances of any kind
-* Trolling, insulting or derogatory comments, and personal or political attacks
-* Public or private harassment
-* Publishing others' private information, such as a physical or email
- address, without their explicit permission
-* Other conduct which could reasonably be considered inappropriate in a
- professional setting
-
-## Enforcement Responsibilities
-
-Community leaders are responsible for clarifying and enforcing our standards of
-acceptable behavior and will take appropriate and fair corrective action in
-response to any behavior that they deem inappropriate, threatening, offensive,
-or harmful.
-
-Community leaders have the right and responsibility to remove, edit, or reject
-comments, commits, code, wiki edits, issues, and other contributions that are
-not aligned to this Code of Conduct, and will communicate reasons for moderation
-decisions when appropriate.
-
-## Scope
-
-This Code of Conduct applies within all community spaces, and also applies when
-an individual is officially representing the community in public spaces.
-Examples of representing our community include using an official e-mail address,
-posting via an official social media account, or acting as an appointed
-representative at an online or offline event.
-
-## Enforcement
-
-Instances of abusive, harassing, or otherwise unacceptable behavior may be
-reported to the community leaders responsible for enforcement at
-.
-All complaints will be reviewed and investigated promptly and fairly.
-
-All community leaders are obligated to respect the privacy and security of the
-reporter of any incident.
-
-## Enforcement Guidelines
-
-Community leaders will follow these Community Impact Guidelines in determining
-the consequences for any action they deem in violation of this Code of Conduct:
-
-### 1. Correction
-
-**Community Impact**: Use of inappropriate language or other behavior deemed
-unprofessional or unwelcome in the community.
-
-**Consequence**: A private, written warning from community leaders, providing
-clarity around the nature of the violation and an explanation of why the
-behavior was inappropriate. A public apology may be requested.
-
-### 2. Warning
-
-**Community Impact**: A violation through a single incident or series
-of actions.
-
-**Consequence**: A warning with consequences for continued behavior. No
-interaction with the people involved, including unsolicited interaction with
-those enforcing the Code of Conduct, for a specified period of time. This
-includes avoiding interactions in community spaces as well as external channels
-like social media. Violating these terms may lead to a temporary or
-permanent ban.
-
-### 3. Temporary Ban
-
-**Community Impact**: A serious violation of community standards, including
-sustained inappropriate behavior.
-
-**Consequence**: A temporary ban from any sort of interaction or public
-communication with the community for a specified period of time. No public or
-private interaction with the people involved, including unsolicited interaction
-with those enforcing the Code of Conduct, is allowed during this period.
-Violating these terms may lead to a permanent ban.
-
-### 4. Permanent Ban
-
-**Community Impact**: Demonstrating a pattern of violation of community
-standards, including sustained inappropriate behavior, harassment of an
-individual, or aggression toward or disparagement of classes of individuals.
-
-**Consequence**: A permanent ban from any sort of public interaction within
-the community.
-
-## Attribution
-
-This Code of Conduct is adapted from the [Contributor Covenant][homepage],
-version 2.0, available at
-https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
-
-Community Impact Guidelines were inspired by [Mozilla's code of conduct
-enforcement ladder](https://github.com/mozilla/diversity).
-
-[homepage]: https://www.contributor-covenant.org
-
-For answers to common questions about this code of conduct, see the FAQ at
-https://www.contributor-covenant.org/faq. Translations are available at
-https://www.contributor-covenant.org/translations.
+# Contributor Covenant Code of Conduct
+
+## Our Pledge
+
+We as members, contributors, and leaders pledge to make participation in our
+community a harassment-free experience for everyone, regardless of age, body
+size, visible or invisible disability, ethnicity, sex characteristics, gender
+identity and expression, level of experience, education, socio-economic status,
+nationality, personal appearance, race, religion, or sexual identity
+and orientation.
+
+We pledge to act and interact in ways that contribute to an open, welcoming,
+diverse, inclusive, and healthy community.
+
+## Our Standards
+
+Examples of behavior that contributes to a positive environment for our
+community include:
+
+* Demonstrating empathy and kindness toward other people
+* Being respectful of differing opinions, viewpoints, and experiences
+* Giving and gracefully accepting constructive feedback
+* Accepting responsibility and apologizing to those affected by our mistakes,
+ and learning from the experience
+* Focusing on what is best not just for us as individuals, but for the
+ overall community
+
+Examples of unacceptable behavior include:
+
+* The use of sexualized language or imagery, and sexual attention or
+ advances of any kind
+* Trolling, insulting or derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or email
+ address, without their explicit permission
+* Other conduct which could reasonably be considered inappropriate in a
+ professional setting
+
+## Enforcement Responsibilities
+
+Community leaders are responsible for clarifying and enforcing our standards of
+acceptable behavior and will take appropriate and fair corrective action in
+response to any behavior that they deem inappropriate, threatening, offensive,
+or harmful.
+
+Community leaders have the right and responsibility to remove, edit, or reject
+comments, commits, code, wiki edits, issues, and other contributions that are
+not aligned to this Code of Conduct, and will communicate reasons for moderation
+decisions when appropriate.
+
+## Scope
+
+This Code of Conduct applies within all community spaces, and also applies when
+an individual is officially representing the community in public spaces.
+Examples of representing our community include using an official e-mail address,
+posting via an official social media account, or acting as an appointed
+representative at an online or offline event.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported to the community leaders responsible for enforcement at
+.
+All complaints will be reviewed and investigated promptly and fairly.
+
+All community leaders are obligated to respect the privacy and security of the
+reporter of any incident.
+
+## Enforcement Guidelines
+
+Community leaders will follow these Community Impact Guidelines in determining
+the consequences for any action they deem in violation of this Code of Conduct:
+
+### 1. Correction
+
+**Community Impact**: Use of inappropriate language or other behavior deemed
+unprofessional or unwelcome in the community.
+
+**Consequence**: A private, written warning from community leaders, providing
+clarity around the nature of the violation and an explanation of why the
+behavior was inappropriate. A public apology may be requested.
+
+### 2. Warning
+
+**Community Impact**: A violation through a single incident or series
+of actions.
+
+**Consequence**: A warning with consequences for continued behavior. No
+interaction with the people involved, including unsolicited interaction with
+those enforcing the Code of Conduct, for a specified period of time. This
+includes avoiding interactions in community spaces as well as external channels
+like social media. Violating these terms may lead to a temporary or
+permanent ban.
+
+### 3. Temporary Ban
+
+**Community Impact**: A serious violation of community standards, including
+sustained inappropriate behavior.
+
+**Consequence**: A temporary ban from any sort of interaction or public
+communication with the community for a specified period of time. No public or
+private interaction with the people involved, including unsolicited interaction
+with those enforcing the Code of Conduct, is allowed during this period.
+Violating these terms may lead to a permanent ban.
+
+### 4. Permanent Ban
+
+**Community Impact**: Demonstrating a pattern of violation of community
+standards, including sustained inappropriate behavior, harassment of an
+individual, or aggression toward or disparagement of classes of individuals.
+
+**Consequence**: A permanent ban from any sort of public interaction within
+the community.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage],
+version 2.0, available at
+https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
+
+Community Impact Guidelines were inspired by [Mozilla's code of conduct
+enforcement ladder](https://github.com/mozilla/diversity).
+
+[homepage]: https://www.contributor-covenant.org
+
+For answers to common questions about this code of conduct, see the FAQ at
+https://www.contributor-covenant.org/faq. Translations are available at
+https://www.contributor-covenant.org/translations.
diff --git a/.github/CONTRIBUTING_GUIDELINE.md b/.github/CONTRIBUTING_GUIDELINE.md
index db19b5a2b2..8e51efb9fc 100644
--- a/.github/CONTRIBUTING_GUIDELINE.md
+++ b/.github/CONTRIBUTING_GUIDELINE.md
@@ -1,67 +1,67 @@
-# **Contributing Guidelines** ๐
-
-This documentation contains a set of guidelines to help you during the contribution process.
-We are happy to welcome all the contributions from anyone willing to improve/add new scripts to this project.
-Thank you for helping out and remember, **no contribution is too small.**
- Hold down the mouse to raise Fly low to save fuel Hold down the mouse to raise Fly low to save fuel click anywhere to start GAME OVER!! your score: 0 press space to try again press 'q' to quit click anywhere to start GAME OVER!! your score: 0 press space to try again press 'q' to quit element */
-.blink {
- animation: blink 1s infinite; /* Adjust the duration as needed */
-}
-
-/* Add a class to stop the animation */
-.stop-blinking {
- animation: none;
+body {
+ background-color: #393E46;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ text-align: center;
+ font-family: 'Press Start 2P', cursive;
+ height: 97vh;
+ overflow: hidden;
+}
+
+.title{
+ position: absolute;
+ margin-bottom: 600px;
+ color: #00B7C2;
+}
+
+#board {
+ background-color: #212121;
+ width: 700px;
+ height: 700px;
+}
+
+ul{
+
+ color: white;
+ text-align: left;
+}
+
+li{
+
+ margin: 1rem;
+}
+
+.startscreen{
+ position: absolute;
+ width: 700px;
+}
+
+
+.startscreen p{
+ color: yellow;
+}
+.endscreen{
+ position: absolute;
+ display: none;
+ color: white;
+ font-size: larger;
+}
+@keyframes blink {
+ 0% { opacity: 1; }
+ 50% { opacity: 0; }
+ 100% { opacity: 1; }
+}
+
+/* Apply the animation to the element */
+.blink {
+ animation: blink 1s infinite; /* Adjust the duration as needed */
+}
+
+/* Add a class to stop the animation */
+.stop-blinking {
+ animation: none;
}
\ No newline at end of file
diff --git a/Games/Alphabet/README.md b/Games/Alphabet/README.md
index ea55afc749..ac2054a84e 100644
--- a/Games/Alphabet/README.md
+++ b/Games/Alphabet/README.md
@@ -1,26 +1,26 @@
-# **Alphabet**
-
----
-
- ↑ ↑ You are on a fishing trip! Cast and Catch !
-Please note we have a [code of conduct](CODE_OF_CONDUCT.md) please follow it in all your interactions with the project.
-
-
-
-
-
-## **Need some help regarding the basics?๐ค**
-
-
-You can refer to the following articles on basics of Git and Github and also contact the Project Mentors,
-in case you are stuck:
-
-- [Forking a Repo](https://help.github.com/en/github/getting-started-with-github/fork-a-repo)
-- [Cloning a Repo](https://help.github.com/en/desktop/contributing-to-projects/creating-an-issue-or-pull-request)
-- [How to create a Pull Request](https://opensource.com/article/19/7/create-pull-request-github)
-- [Getting started with Git and GitHub](https://towardsdatascience.com/getting-started-with-git-and-github-6fcd0f2d4ac6)
-- [Learn GitHub from Scratch](https://lab.github.com/githubtraining/introduction-to-github)
-
-
-
-## **Issue Report Process ๐**
-
-1. Go to the project's issues.
-2. Select the template that better fits your issue.
-3. Give proper description for the issues.
-4. Don't spam to get the assignment of the issue ๐.
-5. Wait for till someone is looking into it !.
-6. Start working on issue only after you got assigned that issue ๐.
-
-
-
-## **File naming conventions ๐**
-- Give unique name for your game that is not already existed
-* Folder naming convention
- - ```Game_Name``` ex. ```Tilting_Maze``` (first letter should be capital and if you need space use _ )
-* files in the folder
- - ```index.html``` , ```script.js``` , ```style.css```(not stictly to follow this but you should have separate )
- - you can have other folders if you are having assets for your game
- - ```README.md``` for your folder using template [TEMPLATE](../Games/FOLDER_README_TEMPLATE.md)
- - It is not compulsory to follow this README template only you can have your own
-* naming convention for the screenshot you will add in ```assets/images```
- - name of image should be same as your game name
- - ex. ```Tilting_Maze.jpeg``` or .jpg or .png any of the image formate
-
-
-
-## **Pull Request Process ๐**
-
-1. Ensure that you have self reviewed your code ๐
-2. Make sure you have added the proper description for the functionality of the code
-3. You have added README file in your repository .
-4. You have added the thumbnail of the project into ```assets/images``` for website preview
-5. Add your game screenshot in the assets folder by following the proper conversion specified over here
-6. You have added your game name and link in main README.md
-7. Submit your PR by giving the necesarry information in PR template and hang tight we will review it really soon ๐
-
-
-
-# **Happy Hacking ๐**
-
-
+# **Contributing Guidelines** ๐
+
+This documentation contains a set of guidelines to help you during the contribution process.
+We are happy to welcome all the contributions from anyone willing to improve/add new scripts to this project.
+Thank you for helping out and remember, **no contribution is too small.**
+
+Please note we have a [code of conduct](CODE_OF_CONDUCT.md) please follow it in all your interactions with the project.
+
+
+
+
+
+## **Need some help regarding the basics?๐ค**
+
+
+You can refer to the following articles on basics of Git and Github and also contact the Project Mentors,
+in case you are stuck:
+
+- [Forking a Repo](https://help.github.com/en/github/getting-started-with-github/fork-a-repo)
+- [Cloning a Repo](https://help.github.com/en/desktop/contributing-to-projects/creating-an-issue-or-pull-request)
+- [How to create a Pull Request](https://opensource.com/article/19/7/create-pull-request-github)
+- [Getting started with Git and GitHub](https://towardsdatascience.com/getting-started-with-git-and-github-6fcd0f2d4ac6)
+- [Learn GitHub from Scratch](https://lab.github.com/githubtraining/introduction-to-github)
+
+
+
+## **Issue Report Process ๐**
+
+1. Go to the project's issues.
+2. Select the template that better fits your issue.
+3. Give proper description for the issues.
+4. Don't spam to get the assignment of the issue ๐.
+5. Wait for till someone is looking into it !.
+6. Start working on issue only after you got assigned that issue ๐.
+
+
+
+## **File naming conventions ๐**
+- Give unique name for your game that is not already existed
+* Folder naming convention
+ - ```Game_Name``` ex. ```Tilting_Maze``` (first letter should be capital and if you need space use _ )
+* files in the folder
+ - ```index.html``` , ```script.js``` , ```style.css```(not stictly to follow this but you should have separate )
+ - you can have other folders if you are having assets for your game
+ - ```README.md``` for your folder using template [TEMPLATE](../Games/FOLDER_README_TEMPLATE.md)
+ - It is not compulsory to follow this README template only you can have your own
+* naming convention for the screenshot you will add in ```assets/images```
+ - name of image should be same as your game name
+ - ex. ```Tilting_Maze.jpeg``` or .jpg or .png any of the image formate
+
+
+
+## **Pull Request Process ๐**
+
+1. Ensure that you have self reviewed your code ๐
+2. Make sure you have added the proper description for the functionality of the code
+3. You have added README file in your repository .
+4. You have added the thumbnail of the project into ```assets/images``` for website preview
+5. Add your game screenshot in the assets folder by following the proper conversion specified over here
+6. You have added your game name and link in main README.md
+7. Submit your PR by giving the necesarry information in PR template and hang tight we will review it really soon ๐
+
+
+
+# **Happy Hacking ๐**
+
+
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index 26702a3e74..f4ffb0a06e 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -1,55 +1,55 @@
-name: Bug Report ๐ชฒ
-description: Report your bug by filling teh information given below
-title: "[Bug]: "
-
-body:
- - type: markdown
- attributes:
- value: |
- Thanks for taking the time to fill out this bug report!
- - type: textarea
- id: bug-description
- attributes:
- label: Give a brief about the bug โ๏ธ
- description: Enter a brief description about the bug report
- placeholder: Please include a summary, also include relevant motivation and context.
- value: "Description"
- validations:
- required: true
- - type: textarea
- id: behaviors
- attributes:
- label: What is the expected behavior? ๐ค
- description: Enter the expected behavior of bug
- placeholder: Please include a summary, also include relevant motivation and context.
- value: "Description"
- validations:
- required: true
- - type: textarea
- id: instructions
- attributes:
- label: Provide step by step information reproduce the bug ๐
- description: Enter the description on how you plan to find the bug's solution
- placeholder: Please include a summary, also include relevant motivation and context.
- value: "Description"
- validations:
- required: true
- - type: dropdown
- id: contribution
- attributes:
- label: Select program in which you are contributing
- multiple: true
- options:
- - GSSoC24
- - IWOC2024
- - hacktoberfest
- - GSSoC23
- - Other
- - type: checkboxes
- id: terms
- attributes:
- label: Code of Conduct
- description: By submitting this issue, you agree to follow our [CODE OF CONDUCT](https://github.com/kunjgit/GameZone/blob/main/.github/CODE_OF_CONDUCT.md)
- options:
- - label: I follow [CONTRIBUTING GUIDELINE](https://github.com/kunjgit/GameZone/blob/main/.github/CONTRIBUTING_GUIDELINE.md) of this project.
- required: true
+name: Bug Report ๐ชฒ
+description: Report your bug by filling teh information given below
+title: "[Bug]: "
+
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Thanks for taking the time to fill out this bug report!
+ - type: textarea
+ id: bug-description
+ attributes:
+ label: Give a brief about the bug โ๏ธ
+ description: Enter a brief description about the bug report
+ placeholder: Please include a summary, also include relevant motivation and context.
+ value: "Description"
+ validations:
+ required: true
+ - type: textarea
+ id: behaviors
+ attributes:
+ label: What is the expected behavior? ๐ค
+ description: Enter the expected behavior of bug
+ placeholder: Please include a summary, also include relevant motivation and context.
+ value: "Description"
+ validations:
+ required: true
+ - type: textarea
+ id: instructions
+ attributes:
+ label: Provide step by step information reproduce the bug ๐
+ description: Enter the description on how you plan to find the bug's solution
+ placeholder: Please include a summary, also include relevant motivation and context.
+ value: "Description"
+ validations:
+ required: true
+ - type: dropdown
+ id: contribution
+ attributes:
+ label: Select program in which you are contributing
+ multiple: true
+ options:
+ - GSSoC24
+ - IWOC2024
+ - hacktoberfest
+ - GSSoC23
+ - Other
+ - type: checkboxes
+ id: terms
+ attributes:
+ label: Code of Conduct
+ description: By submitting this issue, you agree to follow our [CODE OF CONDUCT](https://github.com/kunjgit/GameZone/blob/main/.github/CODE_OF_CONDUCT.md)
+ options:
+ - label: I follow [CONTRIBUTING GUIDELINE](https://github.com/kunjgit/GameZone/blob/main/.github/CONTRIBUTING_GUIDELINE.md) of this project.
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/documentation_bug.yml b/.github/ISSUE_TEMPLATE/documentation_bug.yml
index cf6b325f92..55fd2829ba 100644
--- a/.github/ISSUE_TEMPLATE/documentation_bug.yml
+++ b/.github/ISSUE_TEMPLATE/documentation_bug.yml
@@ -1,46 +1,46 @@
-name: ๐ Documentation or README.md issue report
-description: Report an issue in the project's documentation or README.md file.
-title: "[Documentation Bug]: "
-
-body:
- - type: markdown
- attributes:
- value: |
- Thanks for taking the time to fill out this documentation bug report!
- - type: textarea
- id: documentation-bug-description
- attributes:
- label: Describe the bug โ๏ธ
- description: Enter a brief description about the documentation bug report
- placeholder: Please include a summary, also include relevant motivation and context.
- value: "Describe your bug here"
- validations:
- required: true
- - type: textarea
- id: instructions
- attributes:
- label: Provide step by step information reproduce the bug ๐
- description: Enter the description on how you plan to find the bug's solution
- placeholder: Please include a summary, also include relevant motivation and context.
- value: "Description"
- validations:
- required: true
- - type: dropdown
- id: contribution
- attributes:
- label: Select program in which you are contributing
- multiple: true
- options:
- - GSSoC24
- - IWOC2024
- - hacktoberfest
- - GSSoC23
- - Other
- - type: checkboxes
- id: terms
- attributes:
- label: Code of Conduct
- description: By submitting this issue, you agree to follow our [CODE OF CONDUCT](https://github.com/kunjgit/GameZone/blob/main/.github/CODE_OF_CONDUCT.md)
- options:
- - label: I follow [CONTRIBUTING GUIDELINE](https://github.com/kunjgit/GameZone/blob/main/.github/CONTRIBUTING_GUIDELINE.md) of this project.
- required: true
+name: ๐ Documentation or README.md issue report
+description: Report an issue in the project's documentation or README.md file.
+title: "[Documentation Bug]: "
+
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Thanks for taking the time to fill out this documentation bug report!
+ - type: textarea
+ id: documentation-bug-description
+ attributes:
+ label: Describe the bug โ๏ธ
+ description: Enter a brief description about the documentation bug report
+ placeholder: Please include a summary, also include relevant motivation and context.
+ value: "Describe your bug here"
+ validations:
+ required: true
+ - type: textarea
+ id: instructions
+ attributes:
+ label: Provide step by step information reproduce the bug ๐
+ description: Enter the description on how you plan to find the bug's solution
+ placeholder: Please include a summary, also include relevant motivation and context.
+ value: "Description"
+ validations:
+ required: true
+ - type: dropdown
+ id: contribution
+ attributes:
+ label: Select program in which you are contributing
+ multiple: true
+ options:
+ - GSSoC24
+ - IWOC2024
+ - hacktoberfest
+ - GSSoC23
+ - Other
+ - type: checkboxes
+ id: terms
+ attributes:
+ label: Code of Conduct
+ description: By submitting this issue, you agree to follow our [CODE OF CONDUCT](https://github.com/kunjgit/GameZone/blob/main/.github/CODE_OF_CONDUCT.md)
+ options:
+ - label: I follow [CONTRIBUTING GUIDELINE](https://github.com/kunjgit/GameZone/blob/main/.github/CONTRIBUTING_GUIDELINE.md) of this project.
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/game_enhancement.yml b/.github/ISSUE_TEMPLATE/game_enhancement.yml
index 73bcf0fae2..208b36e703 100644
--- a/.github/ISSUE_TEMPLATE/game_enhancement.yml
+++ b/.github/ISSUE_TEMPLATE/game_enhancement.yml
@@ -1,46 +1,46 @@
-name: ๐Game Enhancement Request
-description: Suggest your enhancement for the existing game
-title: "[Enhancement]: "
-
-body:
- - type: markdown
- attributes:
- value: |
- Thanks for taking the time to fill out this enhancement request form
- - type: textarea
- id: bug-description
- attributes:
- label: Do you want to have the enhancement of existing game ? ๐ Describe yourself..
- description: Enter a brief description about the enhancement you need
- placeholder: Give all the context of your enhancement as well as the existing game
- value: "Game enhancement"
- validations:
- required: true
- - type: textarea
- id: behaviour
- attributes:
- label: Describe the solution you'd like
- description: Give steps in which you will solve it
- placeholder: Please include a summary, also include relevant motivation and context.
- value: "Solution steps"
- validations:
- required: true
- - type: dropdown
- id: contribution
- attributes:
- label: Select program in which you are contributing
- multiple: true
- options:
- - GSSoC24
- - IWOC2024
- - hacktoberfest
- - GSSoC23
- - Other
- - type: checkboxes
- id: terms
- attributes:
- label: Code of Conduct
- description: By submitting this issue, you agree to follow our [CODE OF CONDUCT](https://github.com/kunjgit/GameZone/blob/main/.github/CODE_OF_CONDUCT.md)
- options:
- - label: I follow [CONTRIBUTING GUIDELINE](https://github.com/kunjgit/GameZone/blob/main/.github/CONTRIBUTING_GUIDELINE.md) of this project.
- required: true
+name: ๐Game Enhancement Request
+description: Suggest your enhancement for the existing game
+title: "[Enhancement]: "
+
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Thanks for taking the time to fill out this enhancement request form
+ - type: textarea
+ id: bug-description
+ attributes:
+ label: Do you want to have the enhancement of existing game ? ๐ Describe yourself..
+ description: Enter a brief description about the enhancement you need
+ placeholder: Give all the context of your enhancement as well as the existing game
+ value: "Game enhancement"
+ validations:
+ required: true
+ - type: textarea
+ id: behaviour
+ attributes:
+ label: Describe the solution you'd like
+ description: Give steps in which you will solve it
+ placeholder: Please include a summary, also include relevant motivation and context.
+ value: "Solution steps"
+ validations:
+ required: true
+ - type: dropdown
+ id: contribution
+ attributes:
+ label: Select program in which you are contributing
+ multiple: true
+ options:
+ - GSSoC24
+ - IWOC2024
+ - hacktoberfest
+ - GSSoC23
+ - Other
+ - type: checkboxes
+ id: terms
+ attributes:
+ label: Code of Conduct
+ description: By submitting this issue, you agree to follow our [CODE OF CONDUCT](https://github.com/kunjgit/GameZone/blob/main/.github/CODE_OF_CONDUCT.md)
+ options:
+ - label: I follow [CONTRIBUTING GUIDELINE](https://github.com/kunjgit/GameZone/blob/main/.github/CONTRIBUTING_GUIDELINE.md) of this project.
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/new_game_request.yml b/.github/ISSUE_TEMPLATE/new_game_request.yml
index 5b4dd15ff9..12927df8d6 100644
--- a/.github/ISSUE_TEMPLATE/new_game_request.yml
+++ b/.github/ISSUE_TEMPLATE/new_game_request.yml
@@ -1,46 +1,46 @@
-name: ๐๐ฎ new game request
-description: Suggest an idea and show your creativity to add new game
-title: "[New game]: "
-
-body:
- - type: markdown
- attributes:
- value: |
- Thanks for taking the time to fill out your new game issue
- - type: textarea
- id: new-game
- attributes:
- label: ๐ฎ Game Request
- description: Describe the game logic and also give a brief about the features of the game
- placeholder: add all necessary details required for your new game
- value: "Game logic and basic description"
- validations:
- required: true
- - type: textarea
- id: features
- attributes:
- label: Point down the features
- description: think about your the feature your game will have
- placeholder: Please include a summary, also include relevant motivation and context.
- value: "Game points"
- validations:
- required: true
- - type: dropdown
- id: contribution
- attributes:
- label: Select program in which you are contributing
- multiple: true
- options:
- - IWOC2024
- - GSSoC24
- - hacktoberfest
- - GSSoC23
- - Other
- - type: checkboxes
- id: terms
- attributes:
- label: Code of Conduct
- description: By submitting this issue, you agree to follow our [CODE OF CONDUCT](https://github.com/kunjgit/GameZone/blob/main/.github/CODE_OF_CONDUCT.md)
- options:
- - label: I follow [CONTRIBUTING GUIDELINE](https://github.com/kunjgit/GameZone/blob/main/.github/CONTRIBUTING_GUIDELINE.md) of this project.
- required: true
+name: ๐๐ฎ new game request
+description: Suggest an idea and show your creativity to add new game
+title: "[New game]: "
+
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Thanks for taking the time to fill out your new game issue
+ - type: textarea
+ id: new-game
+ attributes:
+ label: ๐ฎ Game Request
+ description: Describe the game logic and also give a brief about the features of the game
+ placeholder: add all necessary details required for your new game
+ value: "Game logic and basic description"
+ validations:
+ required: true
+ - type: textarea
+ id: features
+ attributes:
+ label: Point down the features
+ description: think about your the feature your game will have
+ placeholder: Please include a summary, also include relevant motivation and context.
+ value: "Game points"
+ validations:
+ required: true
+ - type: dropdown
+ id: contribution
+ attributes:
+ label: Select program in which you are contributing
+ multiple: true
+ options:
+ - IWOC2024
+ - GSSoC24
+ - hacktoberfest
+ - GSSoC23
+ - Other
+ - type: checkboxes
+ id: terms
+ attributes:
+ label: Code of Conduct
+ description: By submitting this issue, you agree to follow our [CODE OF CONDUCT](https://github.com/kunjgit/GameZone/blob/main/.github/CODE_OF_CONDUCT.md)
+ options:
+ - label: I follow [CONTRIBUTING GUIDELINE](https://github.com/kunjgit/GameZone/blob/main/.github/CONTRIBUTING_GUIDELINE.md) of this project.
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/question_and_support.yml b/.github/ISSUE_TEMPLATE/question_and_support.yml
index 980b72a71c..ed6066d9d8 100644
--- a/.github/ISSUE_TEMPLATE/question_and_support.yml
+++ b/.github/ISSUE_TEMPLATE/question_and_support.yml
@@ -1,37 +1,37 @@
-name: โ Question or Support Request
-description: Questions and requests for support.
-title: "[Question]: "
-
-body:
- - type: markdown
- attributes:
- value: |
- Thanks for taking the time to fill out this and letting us know your question
- - type: textarea
- id: description
- attributes:
- label: Describe your question or ask for support.โ
- description: Enter a brief description about your question or support needed
- placeholder: Please include a summary, also include relevant motivation and context.
- value: "Description"
- validations:
- required: true
- - type: dropdown
- id: contribution
- attributes:
- label: Select program in which you are contributing
- multiple: true
- options:
- - GSSoC24
- - IWOC2024
- - hacktobefest
- - GSSoC23
- - Other
- - type: checkboxes
- id: terms
- attributes:
- label: Code of Conduct
- description: By submitting this issue, you agree to follow our [CODE OF CONDUCT](https://github.com/kunjgit/GameZone/blob/main/.github/CODE_OF_CONDUCT.md)
- options:
- - label: I follow [CONTRIBUTING GUIDELINE](https://github.com/kunjgit/GameZone/blob/main/.github/CONTRIBUTING_GUIDELINE.md) of this project.
- required: true
+name: โ Question or Support Request
+description: Questions and requests for support.
+title: "[Question]: "
+
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Thanks for taking the time to fill out this and letting us know your question
+ - type: textarea
+ id: description
+ attributes:
+ label: Describe your question or ask for support.โ
+ description: Enter a brief description about your question or support needed
+ placeholder: Please include a summary, also include relevant motivation and context.
+ value: "Description"
+ validations:
+ required: true
+ - type: dropdown
+ id: contribution
+ attributes:
+ label: Select program in which you are contributing
+ multiple: true
+ options:
+ - GSSoC24
+ - IWOC2024
+ - hacktobefest
+ - GSSoC23
+ - Other
+ - type: checkboxes
+ id: terms
+ attributes:
+ label: Code of Conduct
+ description: By submitting this issue, you agree to follow our [CODE OF CONDUCT](https://github.com/kunjgit/GameZone/blob/main/.github/CODE_OF_CONDUCT.md)
+ options:
+ - label: I follow [CONTRIBUTING GUIDELINE](https://github.com/kunjgit/GameZone/blob/main/.github/CONTRIBUTING_GUIDELINE.md) of this project.
+ required: true
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 3c364b3fb2..f475dbdf9b 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -1,34 +1,34 @@
-## PR Description ๐
-
-Please include summary related to the issue you have fixed and describe your PR in brief over here by specifying the issue number on which you were working below
-Fixes #
-
-## Mark the task you have completed โ
-
-
-
-- [ ] I follow [CONTRIBUTING GUIDELINE](https://github.com/kunjgit/GameZone/blob/main/.github/CONTRIBUTING_GUIDELINE.md) & [CODE OF CONDUCT](https://github.com/kunjgit/GameZone/blob/main/.github/CODE_OF_CONDUCT.md) of this project.
-- [ ] I have performed a self-review of my own code or work.
-- [ ] I have commented my code, particularly in hard-to-understand areas.
-- [ ] My changes generates no new warnings.
-- [ ] I have followed proper naming convention showed in [CONTRIBUTING GUIDELINE](https://github.com/kunjgit/GameZone/blob/main/.github/CONTRIBUTING_GUIDELINE.md)
-- [ ] I have added screenshot for website preview in assets/images
-- [ ] I have added entries for my game in main README.md
-- [ ] I have added README.md in my folder
-- [ ] I have added working video of the game in README.md (optional)
-- [ ] I have specified the respective issue number for which I have requested the new game.
-
-
-
-
-## Add your screenshots(Optional) ๐ธ
-
-
-
-
----
-
-
+## PR Description ๐
+
+Please include summary related to the issue you have fixed and describe your PR in brief over here by specifying the issue number on which you were working below
+Fixes #
+
+## Mark the task you have completed โ
+
+
+
+- [ ] I follow [CONTRIBUTING GUIDELINE](https://github.com/kunjgit/GameZone/blob/main/.github/CONTRIBUTING_GUIDELINE.md) & [CODE OF CONDUCT](https://github.com/kunjgit/GameZone/blob/main/.github/CODE_OF_CONDUCT.md) of this project.
+- [ ] I have performed a self-review of my own code or work.
+- [ ] I have commented my code, particularly in hard-to-understand areas.
+- [ ] My changes generates no new warnings.
+- [ ] I have followed proper naming convention showed in [CONTRIBUTING GUIDELINE](https://github.com/kunjgit/GameZone/blob/main/.github/CONTRIBUTING_GUIDELINE.md)
+- [ ] I have added screenshot for website preview in assets/images
+- [ ] I have added entries for my game in main README.md
+- [ ] I have added README.md in my folder
+- [ ] I have added working video of the game in README.md (optional)
+- [ ] I have specified the respective issue number for which I have requested the new game.
+
+
+
+
+## Add your screenshots(Optional) ๐ธ
+
+
+
+
+---
+
+
## Thank you soo much for contributing to our repository ๐
\ No newline at end of file
diff --git a/.github/old_workflows/assign.yml b/.github/old_workflows/assign.yml
index e5e3ad05cd..7929a324f4 100644
--- a/.github/old_workflows/assign.yml
+++ b/.github/old_workflows/assign.yml
@@ -1,72 +1,72 @@
-name: Assign on Comment
-on:
- issue_comment:
- types:
- - created
-
-jobs:
- assign:
- runs-on: ubuntu-latest
-
- steps:
- - name: Check if /assign command is present
- id: check_command
- uses: actions/github-script@v4
- with:
- github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- script: |
- const commentBody = context.payload.comment.body;
- const assignCommand = '/assign';
- const isCommandPresent = commentBody.includes(assignCommand);
- console.log(`Command present: ${isCommandPresent}`);
- console.log(`Comment: ${commentBody}`);
- console.log(`Issue Number: ${context.payload.issue.number}`);
- console.log(`Issue State: ${context.payload.issue.state}`);
- console.log(`Assignees: ${context.payload.issue.assignees.map(assignee => assignee.login)}`);
- console.log(`Issue URL: ${context.payload.issue.html_url}`);
- console.log(`Comment URL: ${context.payload.comment.html_url}`);
- console.log(`Comment Author: ${context.payload.comment.user.login}`);
- console.log(`Repository: ${context.repo.owner}/${context.repo.repo}`);
- console.log(`Repository URL: ${context.payload.repository.html_url}`);
- console.log(`Repository Full Name: ${context.payload.repository.full_name}`);
- console.log(`Repository Name: ${context.payload.repository.name}`);
- console.log(`Repository Owner: ${context.payload.repository.owner.login}`);
- console.log(`Repository Owner URL: ${context.payload.repository.owner.html_url}`);
- console.log(`Event Name: ${context.eventName}`);
-
- const commentAuthor = context.payload.comment.user.login;
- core.setOutput('comment_author', commentAuthor);
-
- const isGreetingFromOwner = commentAuthor === context.payload.repository.owner.login;
- core.setOutput('is_greeting_from_owner', isGreetingFromOwner.toString());
-
- const isAlreadyAssigned = context.payload.issue.assignees.length > 0;
- core.setOutput('is_already_assigned', isAlreadyAssigned.toString());
-
- if (isCommandPresent && isGreetingFromOwner) {
- console.log('Skipping assigning issue: Greeting from repository owner.');
- console.log(`::set-output name=assign_issue::false`);
- } else if (isCommandPresent && isAlreadyAssigned) {
- const { owner, repo, number } = context.issue;
- const assignees = context.payload.issue.assignees.map(assignee => assignee.login).join(', ');
- const commentBody = `Hey @${commentAuthor} ! , This issue is already assigned to @${assignees}. ๐ \n You can work on other issues ๐ \n If there is anything wrong you can contact us on [Discord๐น๏ธ](https://discord.gg/fgwk4XZfxG)๐`;
- await github.issues.createComment({ owner, repo, issue_number: number, body: commentBody });
- console.log(`Commented on the issue: ${commentBody}.`);
- console.log(`::set-output name=assign_issue::false`);
- } else if (isCommandPresent) {
- console.log(`::set-output name=assign_issue::true`);
- } else {
- console.log(`::set-output name=assign_issue::false`);
- }
-
- - name: Assign the issue
- if: steps.check_command.outputs.assign_issue == 'true'
- id: assign_issue
- uses: actions/github-script@v4
- with:
- github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- script: |
- const { owner, repo, number } = context.issue;
- const assignee = context.payload.comment.user.login;
- await github.issues.addAssignees({ owner, repo, issue_number: number, assignees: [assignee] });
- console.log(`Assigned the issue to ${assignee}.`);
+name: Assign on Comment
+on:
+ issue_comment:
+ types:
+ - created
+
+jobs:
+ assign:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Check if /assign command is present
+ id: check_command
+ uses: actions/github-script@v4
+ with:
+ github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ script: |
+ const commentBody = context.payload.comment.body;
+ const assignCommand = '/assign';
+ const isCommandPresent = commentBody.includes(assignCommand);
+ console.log(`Command present: ${isCommandPresent}`);
+ console.log(`Comment: ${commentBody}`);
+ console.log(`Issue Number: ${context.payload.issue.number}`);
+ console.log(`Issue State: ${context.payload.issue.state}`);
+ console.log(`Assignees: ${context.payload.issue.assignees.map(assignee => assignee.login)}`);
+ console.log(`Issue URL: ${context.payload.issue.html_url}`);
+ console.log(`Comment URL: ${context.payload.comment.html_url}`);
+ console.log(`Comment Author: ${context.payload.comment.user.login}`);
+ console.log(`Repository: ${context.repo.owner}/${context.repo.repo}`);
+ console.log(`Repository URL: ${context.payload.repository.html_url}`);
+ console.log(`Repository Full Name: ${context.payload.repository.full_name}`);
+ console.log(`Repository Name: ${context.payload.repository.name}`);
+ console.log(`Repository Owner: ${context.payload.repository.owner.login}`);
+ console.log(`Repository Owner URL: ${context.payload.repository.owner.html_url}`);
+ console.log(`Event Name: ${context.eventName}`);
+
+ const commentAuthor = context.payload.comment.user.login;
+ core.setOutput('comment_author', commentAuthor);
+
+ const isGreetingFromOwner = commentAuthor === context.payload.repository.owner.login;
+ core.setOutput('is_greeting_from_owner', isGreetingFromOwner.toString());
+
+ const isAlreadyAssigned = context.payload.issue.assignees.length > 0;
+ core.setOutput('is_already_assigned', isAlreadyAssigned.toString());
+
+ if (isCommandPresent && isGreetingFromOwner) {
+ console.log('Skipping assigning issue: Greeting from repository owner.');
+ console.log(`::set-output name=assign_issue::false`);
+ } else if (isCommandPresent && isAlreadyAssigned) {
+ const { owner, repo, number } = context.issue;
+ const assignees = context.payload.issue.assignees.map(assignee => assignee.login).join(', ');
+ const commentBody = `Hey @${commentAuthor} ! , This issue is already assigned to @${assignees}. ๐ \n You can work on other issues ๐ \n If there is anything wrong you can contact us on [Discord๐น๏ธ](https://discord.gg/fgwk4XZfxG)๐`;
+ await github.issues.createComment({ owner, repo, issue_number: number, body: commentBody });
+ console.log(`Commented on the issue: ${commentBody}.`);
+ console.log(`::set-output name=assign_issue::false`);
+ } else if (isCommandPresent) {
+ console.log(`::set-output name=assign_issue::true`);
+ } else {
+ console.log(`::set-output name=assign_issue::false`);
+ }
+
+ - name: Assign the issue
+ if: steps.check_command.outputs.assign_issue == 'true'
+ id: assign_issue
+ uses: actions/github-script@v4
+ with:
+ github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ script: |
+ const { owner, repo, number } = context.issue;
+ const assignee = context.payload.comment.user.login;
+ await github.issues.addAssignees({ owner, repo, issue_number: number, assignees: [assignee] });
+ console.log(`Assigned the issue to ${assignee}.`);
diff --git a/.github/old_workflows/greet.yml b/.github/old_workflows/greet.yml
index a1ef092ce7..fe570e59b0 100644
--- a/.github/old_workflows/greet.yml
+++ b/.github/old_workflows/greet.yml
@@ -1,53 +1,53 @@
-name: Comment and Label on Issue Opened
-on:
- issues:
- types:
- - opened
-
-jobs:
- comment_and_label:
- runs-on: ubuntu-latest
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v2
-
- - name: Add comment
- uses: actions/github-script@v4
- with:
- github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- script: |
- const commentAuthor = context.payload.issue.user.login;
- const commentBody = `Hey @${commentAuthor} ! \n Thank you for raising an issue ๐ \n You can self assign the issue by commenting /assign in comment ๐ \n Make sure you follow [CODE OF CONDUCT](https://github.com/kunjgit/GameZone/blob/main/.github/CODE_OF_CONDUCT.md) and [CONTRIBUTING GUIDELINES](https://github.com/kunjgit/GameZone/blob/main/.github/CONTRIBUTING_GUIDELINE.md) ๐ \n Donโt Forget to โญ our [GameZone๐ฎ](https://github.com/kunjgit/GameZone)\n Make sure you join our [Discord๐น๏ธ](https://discord.gg/fgwk4XZfxG) `;
- const { owner, repo, number } = context.issue;
-
- await github.issues.createComment({
- owner: owner,
- repo: repo,
- issue_number: number,
- body: commentBody
- });
-
- - name: Add label if issue body contains "GSSoC23"
- id: check_label
- run: |
- if [[ $(echo "${{ github.event.issue.body }}" | grep -q "GSSoC23"; echo $?) == 0 ]]; then
- echo "::set-output name=add_label::true"
- else
- echo "::set-output name=add_label::false"
- fi
-
- - name: Add label "GSSoC23"
- if: ${{ steps.check_label.outputs.add_label == 'true' }}
- uses: actions/github-script@v4
- with:
- github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- script: |
- const { owner, repo, number } = context.issue;
-
- await github.issues.addLabels({
- owner: owner,
- repo: repo,
- issue_number: number,
- labels: ["GSSoC23"]
- });
+name: Comment and Label on Issue Opened
+on:
+ issues:
+ types:
+ - opened
+
+jobs:
+ comment_and_label:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+
+ - name: Add comment
+ uses: actions/github-script@v4
+ with:
+ github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ script: |
+ const commentAuthor = context.payload.issue.user.login;
+ const commentBody = `Hey @${commentAuthor} ! \n Thank you for raising an issue ๐ \n You can self assign the issue by commenting /assign in comment ๐ \n Make sure you follow [CODE OF CONDUCT](https://github.com/kunjgit/GameZone/blob/main/.github/CODE_OF_CONDUCT.md) and [CONTRIBUTING GUIDELINES](https://github.com/kunjgit/GameZone/blob/main/.github/CONTRIBUTING_GUIDELINE.md) ๐ \n Donโt Forget to โญ our [GameZone๐ฎ](https://github.com/kunjgit/GameZone)\n Make sure you join our [Discord๐น๏ธ](https://discord.gg/fgwk4XZfxG) `;
+ const { owner, repo, number } = context.issue;
+
+ await github.issues.createComment({
+ owner: owner,
+ repo: repo,
+ issue_number: number,
+ body: commentBody
+ });
+
+ - name: Add label if issue body contains "GSSoC23"
+ id: check_label
+ run: |
+ if [[ $(echo "${{ github.event.issue.body }}" | grep -q "GSSoC23"; echo $?) == 0 ]]; then
+ echo "::set-output name=add_label::true"
+ else
+ echo "::set-output name=add_label::false"
+ fi
+
+ - name: Add label "GSSoC23"
+ if: ${{ steps.check_label.outputs.add_label == 'true' }}
+ uses: actions/github-script@v4
+ with:
+ github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ script: |
+ const { owner, repo, number } = context.issue;
+
+ await github.issues.addLabels({
+ owner: owner,
+ repo: repo,
+ issue_number: number,
+ labels: ["GSSoC23"]
+ });
diff --git a/.github/old_workflows/issue_close_greet.yml b/.github/old_workflows/issue_close_greet.yml
index 9489218ef4..8e091174ac 100644
--- a/.github/old_workflows/issue_close_greet.yml
+++ b/.github/old_workflows/issue_close_greet.yml
@@ -1,22 +1,22 @@
-name: Comment on Issue Closure
-on:
- issues:
- types:
- - closed
-
-jobs:
- comment:
- runs-on: ubuntu-latest
-
- steps:
- - name: Comment on Issue Closure
- uses: actions/github-script@v4
- with:
- github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- script: |
- const { owner, repo, number } = context.issue;
- const author = context.payload.issue.user.login;
- const commentBody = `Hey @${author} ! Thank you so much for your raising the issue๐ \n Itโs all yours, you can come anytime again and make some contributions! ๐ \n Alone, we can do little, but together we can do so much! ๐
- `;
- await github.issues.createComment({ owner, repo, issue_number: number, body: commentBody });
- console.log(`Commented on the issue: ${commentBody}.`);
+name: Comment on Issue Closure
+on:
+ issues:
+ types:
+ - closed
+
+jobs:
+ comment:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Comment on Issue Closure
+ uses: actions/github-script@v4
+ with:
+ github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ script: |
+ const { owner, repo, number } = context.issue;
+ const author = context.payload.issue.user.login;
+ const commentBody = `Hey @${author} ! Thank you so much for your raising the issue๐ \n Itโs all yours, you can come anytime again and make some contributions! ๐ \n Alone, we can do little, but together we can do so much! ๐
+ `;
+ await github.issues.createComment({ owner, repo, issue_number: number, body: commentBody });
+ console.log(`Commented on the issue: ${commentBody}.`);
diff --git a/.github/old_workflows/pr_close_greet.yml b/.github/old_workflows/pr_close_greet.yml
index 814e727cf7..5e0c5347c9 100644
--- a/.github/old_workflows/pr_close_greet.yml
+++ b/.github/old_workflows/pr_close_greet.yml
@@ -1,22 +1,22 @@
-name: Comment on PR Closure
-on:
- pull_request_target:
- types:
- - closed
-
-jobs:
- comment:
- runs-on: ubuntu-latest
-
- steps:
- - name: Comment on PR Closure
- uses: actions/github-script@v4
- with:
- github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- script: |
- const { owner, repo, number } = context.issue;
- const commentAuthor = context.payload.pull_request.user.login;
- const commentBody = `Thank you @${commentAuthor} , for your valuable time and contribution in our GameZone ๐. \n Itโs our GameZone, so Letโs build this GameZone altogether !!๐ค\n Hoping to see you soon with another PR again ๐ \n Wishing you all the best for your journey into Open Source๐
- `;
- await github.issues.createComment({ owner, repo, issue_number: number, body: commentBody });
- console.log(`Commented on the closed PR: ${commentBody}.`);
+name: Comment on PR Closure
+on:
+ pull_request_target:
+ types:
+ - closed
+
+jobs:
+ comment:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Comment on PR Closure
+ uses: actions/github-script@v4
+ with:
+ github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ script: |
+ const { owner, repo, number } = context.issue;
+ const commentAuthor = context.payload.pull_request.user.login;
+ const commentBody = `Thank you @${commentAuthor} , for your valuable time and contribution in our GameZone ๐. \n Itโs our GameZone, so Letโs build this GameZone altogether !!๐ค\n Hoping to see you soon with another PR again ๐ \n Wishing you all the best for your journey into Open Source๐
+ `;
+ await github.issues.createComment({ owner, repo, issue_number: number, body: commentBody });
+ console.log(`Commented on the closed PR: ${commentBody}.`);
diff --git a/.github/old_workflows/pr_greet.yml b/.github/old_workflows/pr_greet.yml
index eda9dc1a9d..4ebc068efa 100644
--- a/.github/old_workflows/pr_greet.yml
+++ b/.github/old_workflows/pr_greet.yml
@@ -1,22 +1,22 @@
-name: Comment on PR Creation
-on:
- pull_request_target:
- types:
- - opened
-
-jobs:
- comment:
- runs-on: ubuntu-latest
-
- steps:
- - name: Comment on PR
- uses: actions/github-script@v4
- with:
- github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- script: |
- const { owner, repo, number } = context.issue;
- const commentAuthor = context.payload.sender.login;
- const commentBody = `Thank you @${commentAuthor} ,for creating the PR and contributing to our GameZone ๐ \n Review team will review the PR and will reach out to you soon! ๐ \n Make sure that you have marked all the tasks that you are done with โ
. \n Thank you for your patience! ๐
- `;
- await github.issues.createComment({ owner, repo, issue_number: number, body: commentBody });
- console.log(`Commented on the PR: ${commentBody}.`);
+name: Comment on PR Creation
+on:
+ pull_request_target:
+ types:
+ - opened
+
+jobs:
+ comment:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Comment on PR
+ uses: actions/github-script@v4
+ with:
+ github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ script: |
+ const { owner, repo, number } = context.issue;
+ const commentAuthor = context.payload.sender.login;
+ const commentBody = `Thank you @${commentAuthor} ,for creating the PR and contributing to our GameZone ๐ \n Review team will review the PR and will reach out to you soon! ๐ \n Make sure that you have marked all the tasks that you are done with โ
. \n Thank you for your patience! ๐
+ `;
+ await github.issues.createComment({ owner, repo, issue_number: number, body: commentBody });
+ console.log(`Commented on the PR: ${commentBody}.`);
diff --git a/.github/workflows/annoucement.yml b/.github/workflows/annoucement.yml
index a41367f5ed..0cb78858fe 100644
--- a/.github/workflows/annoucement.yml
+++ b/.github/workflows/annoucement.yml
@@ -1,49 +1,49 @@
-name: Issue Announcement
-on:
- workflow_dispatch:
-
-jobs:
- issue-announcement:
- runs-on: ubuntu-latest
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v2
-
- - name: Set up Node.js
- uses: actions/setup-node@v2
- with:
- node-version: '14'
-
- - name: Comment on opened issues
- uses: actions/github-script@v4
- with:
- github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- script: |
- const hackwithus = `\n @${context.payload.sender.login} here, \n Hope you are enjoying this hacktober ๐ \n We are excited to share that we are opening issue from our side where you will be going to add games on our website ๐ \n Work on this [issue](https://github.com/kunjgit/GameZone/issues/2944) ๐ฅ \n and help us building GameZone ๐ \n if you still haven't joined us join us on โ [Discord](https://discord.gg/fgwk4XZfxG) \n See you soon ๐`;
- const commentBody = `\n @${context.payload.sender.login} here, \n We have this annoucement to make ๐ข!! \n ๐ฅ Special Announcement: \nIt's the **Call to all the designers** ๐ฅ ๐จ \nAs you all know that GameZone has crossed 100 games ๐ , it's time that we all come up together and make the UI even better!!\nWe are redesigning the thumbnails, make sure you come up with the aesthetic and cool ideas ๐ !\nYou are supposed to share the 4 different templates that can be used. Make sure that the size is: **1280 px X 720 px.** \nThe frame should be such that there is only a single image of the game that's taking up the major portion of the frame. Any kind of text should not be there. \n **The design should be catchy and aesthetic!** ๐ฅ \n\n **Note:** You are not supposed to create any issue right now for the same. \nYou have to share different designs right now in โ [Discord](https://discord.gg/fgwk4XZfxG) and Project Admin would be selecting one design and would be assigning the issue. After that only, you have to start working on it.`;
- const hacktoberfest = `\n @${context.payload.sender.login} here, \n Hope you are doing extremely well ๐ \n It's confirmed ๐ฅณ, GameZone is taking part in hacktoberfest and ready to have another ๐ฅ \n Ready to have some amazing contributions once again also thank you for you support in GSSoC23 you have took us on top 5 โค๏ธโ๐ฅ \n if you still haven't joined us join us on โ [Discord](https://discord.gg/fgwk4XZfxG) \n See you soon ๐`;
-
- // Get the list of opened issues excluding pull requests
- const { data: issues } = await github.issues.listForRepo({
- owner: context.repo.owner,
- repo: context.repo.repo,
- state: 'open',
- per_page: 100, // Adjust the per_page value as per your requirements
- issue_type: 'issue'
- });
-
- // Comment on each opened issue (excluding pull requests)
- for (const issue of issues) {
- if (!issue.pull_request) {
- const opener = issue.user.login;
- await github.issues.createComment({
- owner: context.repo.owner,
- repo: context.repo.repo,
- issue_number: issue.number,
- body: `Hey @${opener} ๐!\n ${hackwithus}\n\n`
- });
-
- console.log(`Commented on issue #${issue.number}.`);
- }
- }
+name: Issue Announcement
+on:
+ workflow_dispatch:
+
+jobs:
+ issue-announcement:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+
+ - name: Set up Node.js
+ uses: actions/setup-node@v2
+ with:
+ node-version: '14'
+
+ - name: Comment on opened issues
+ uses: actions/github-script@v4
+ with:
+ github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ script: |
+ const hackwithus = `\n @${context.payload.sender.login} here, \n Hope you are enjoying this hacktober ๐ \n We are excited to share that we are opening issue from our side where you will be going to add games on our website ๐ \n Work on this [issue](https://github.com/kunjgit/GameZone/issues/2944) ๐ฅ \n and help us building GameZone ๐ \n if you still haven't joined us join us on โ [Discord](https://discord.gg/fgwk4XZfxG) \n See you soon ๐`;
+ const commentBody = `\n @${context.payload.sender.login} here, \n We have this annoucement to make ๐ข!! \n ๐ฅ Special Announcement: \nIt's the **Call to all the designers** ๐ฅ ๐จ \nAs you all know that GameZone has crossed 100 games ๐ , it's time that we all come up together and make the UI even better!!\nWe are redesigning the thumbnails, make sure you come up with the aesthetic and cool ideas ๐ !\nYou are supposed to share the 4 different templates that can be used. Make sure that the size is: **1280 px X 720 px.** \nThe frame should be such that there is only a single image of the game that's taking up the major portion of the frame. Any kind of text should not be there. \n **The design should be catchy and aesthetic!** ๐ฅ \n\n **Note:** You are not supposed to create any issue right now for the same. \nYou have to share different designs right now in โ [Discord](https://discord.gg/fgwk4XZfxG) and Project Admin would be selecting one design and would be assigning the issue. After that only, you have to start working on it.`;
+ const hacktoberfest = `\n @${context.payload.sender.login} here, \n Hope you are doing extremely well ๐ \n It's confirmed ๐ฅณ, GameZone is taking part in hacktoberfest and ready to have another ๐ฅ \n Ready to have some amazing contributions once again also thank you for you support in GSSoC23 you have took us on top 5 โค๏ธโ๐ฅ \n if you still haven't joined us join us on โ [Discord](https://discord.gg/fgwk4XZfxG) \n See you soon ๐`;
+
+ // Get the list of opened issues excluding pull requests
+ const { data: issues } = await github.issues.listForRepo({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ state: 'open',
+ per_page: 100, // Adjust the per_page value as per your requirements
+ issue_type: 'issue'
+ });
+
+ // Comment on each opened issue (excluding pull requests)
+ for (const issue of issues) {
+ if (!issue.pull_request) {
+ const opener = issue.user.login;
+ await github.issues.createComment({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ issue_number: issue.number,
+ body: `Hey @${opener} ๐!\n ${hackwithus}\n\n`
+ });
+
+ console.log(`Commented on issue #${issue.number}.`);
+ }
+ }
diff --git a/.github/workflows/assign.yml b/.github/workflows/assign.yml
index e5e3ad05cd..7929a324f4 100644
--- a/.github/workflows/assign.yml
+++ b/.github/workflows/assign.yml
@@ -1,72 +1,72 @@
-name: Assign on Comment
-on:
- issue_comment:
- types:
- - created
-
-jobs:
- assign:
- runs-on: ubuntu-latest
-
- steps:
- - name: Check if /assign command is present
- id: check_command
- uses: actions/github-script@v4
- with:
- github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- script: |
- const commentBody = context.payload.comment.body;
- const assignCommand = '/assign';
- const isCommandPresent = commentBody.includes(assignCommand);
- console.log(`Command present: ${isCommandPresent}`);
- console.log(`Comment: ${commentBody}`);
- console.log(`Issue Number: ${context.payload.issue.number}`);
- console.log(`Issue State: ${context.payload.issue.state}`);
- console.log(`Assignees: ${context.payload.issue.assignees.map(assignee => assignee.login)}`);
- console.log(`Issue URL: ${context.payload.issue.html_url}`);
- console.log(`Comment URL: ${context.payload.comment.html_url}`);
- console.log(`Comment Author: ${context.payload.comment.user.login}`);
- console.log(`Repository: ${context.repo.owner}/${context.repo.repo}`);
- console.log(`Repository URL: ${context.payload.repository.html_url}`);
- console.log(`Repository Full Name: ${context.payload.repository.full_name}`);
- console.log(`Repository Name: ${context.payload.repository.name}`);
- console.log(`Repository Owner: ${context.payload.repository.owner.login}`);
- console.log(`Repository Owner URL: ${context.payload.repository.owner.html_url}`);
- console.log(`Event Name: ${context.eventName}`);
-
- const commentAuthor = context.payload.comment.user.login;
- core.setOutput('comment_author', commentAuthor);
-
- const isGreetingFromOwner = commentAuthor === context.payload.repository.owner.login;
- core.setOutput('is_greeting_from_owner', isGreetingFromOwner.toString());
-
- const isAlreadyAssigned = context.payload.issue.assignees.length > 0;
- core.setOutput('is_already_assigned', isAlreadyAssigned.toString());
-
- if (isCommandPresent && isGreetingFromOwner) {
- console.log('Skipping assigning issue: Greeting from repository owner.');
- console.log(`::set-output name=assign_issue::false`);
- } else if (isCommandPresent && isAlreadyAssigned) {
- const { owner, repo, number } = context.issue;
- const assignees = context.payload.issue.assignees.map(assignee => assignee.login).join(', ');
- const commentBody = `Hey @${commentAuthor} ! , This issue is already assigned to @${assignees}. ๐ \n You can work on other issues ๐ \n If there is anything wrong you can contact us on [Discord๐น๏ธ](https://discord.gg/fgwk4XZfxG)๐`;
- await github.issues.createComment({ owner, repo, issue_number: number, body: commentBody });
- console.log(`Commented on the issue: ${commentBody}.`);
- console.log(`::set-output name=assign_issue::false`);
- } else if (isCommandPresent) {
- console.log(`::set-output name=assign_issue::true`);
- } else {
- console.log(`::set-output name=assign_issue::false`);
- }
-
- - name: Assign the issue
- if: steps.check_command.outputs.assign_issue == 'true'
- id: assign_issue
- uses: actions/github-script@v4
- with:
- github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- script: |
- const { owner, repo, number } = context.issue;
- const assignee = context.payload.comment.user.login;
- await github.issues.addAssignees({ owner, repo, issue_number: number, assignees: [assignee] });
- console.log(`Assigned the issue to ${assignee}.`);
+name: Assign on Comment
+on:
+ issue_comment:
+ types:
+ - created
+
+jobs:
+ assign:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Check if /assign command is present
+ id: check_command
+ uses: actions/github-script@v4
+ with:
+ github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ script: |
+ const commentBody = context.payload.comment.body;
+ const assignCommand = '/assign';
+ const isCommandPresent = commentBody.includes(assignCommand);
+ console.log(`Command present: ${isCommandPresent}`);
+ console.log(`Comment: ${commentBody}`);
+ console.log(`Issue Number: ${context.payload.issue.number}`);
+ console.log(`Issue State: ${context.payload.issue.state}`);
+ console.log(`Assignees: ${context.payload.issue.assignees.map(assignee => assignee.login)}`);
+ console.log(`Issue URL: ${context.payload.issue.html_url}`);
+ console.log(`Comment URL: ${context.payload.comment.html_url}`);
+ console.log(`Comment Author: ${context.payload.comment.user.login}`);
+ console.log(`Repository: ${context.repo.owner}/${context.repo.repo}`);
+ console.log(`Repository URL: ${context.payload.repository.html_url}`);
+ console.log(`Repository Full Name: ${context.payload.repository.full_name}`);
+ console.log(`Repository Name: ${context.payload.repository.name}`);
+ console.log(`Repository Owner: ${context.payload.repository.owner.login}`);
+ console.log(`Repository Owner URL: ${context.payload.repository.owner.html_url}`);
+ console.log(`Event Name: ${context.eventName}`);
+
+ const commentAuthor = context.payload.comment.user.login;
+ core.setOutput('comment_author', commentAuthor);
+
+ const isGreetingFromOwner = commentAuthor === context.payload.repository.owner.login;
+ core.setOutput('is_greeting_from_owner', isGreetingFromOwner.toString());
+
+ const isAlreadyAssigned = context.payload.issue.assignees.length > 0;
+ core.setOutput('is_already_assigned', isAlreadyAssigned.toString());
+
+ if (isCommandPresent && isGreetingFromOwner) {
+ console.log('Skipping assigning issue: Greeting from repository owner.');
+ console.log(`::set-output name=assign_issue::false`);
+ } else if (isCommandPresent && isAlreadyAssigned) {
+ const { owner, repo, number } = context.issue;
+ const assignees = context.payload.issue.assignees.map(assignee => assignee.login).join(', ');
+ const commentBody = `Hey @${commentAuthor} ! , This issue is already assigned to @${assignees}. ๐ \n You can work on other issues ๐ \n If there is anything wrong you can contact us on [Discord๐น๏ธ](https://discord.gg/fgwk4XZfxG)๐`;
+ await github.issues.createComment({ owner, repo, issue_number: number, body: commentBody });
+ console.log(`Commented on the issue: ${commentBody}.`);
+ console.log(`::set-output name=assign_issue::false`);
+ } else if (isCommandPresent) {
+ console.log(`::set-output name=assign_issue::true`);
+ } else {
+ console.log(`::set-output name=assign_issue::false`);
+ }
+
+ - name: Assign the issue
+ if: steps.check_command.outputs.assign_issue == 'true'
+ id: assign_issue
+ uses: actions/github-script@v4
+ with:
+ github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ script: |
+ const { owner, repo, number } = context.issue;
+ const assignee = context.payload.comment.user.login;
+ await github.issues.addAssignees({ owner, repo, issue_number: number, assignees: [assignee] });
+ console.log(`Assigned the issue to ${assignee}.`);
diff --git a/.github/workflows/close_invalid_issue.yml b/.github/workflows/close_invalid_issue.yml
index 4d7f8162c6..9687f07851 100644
--- a/.github/workflows/close_invalid_issue.yml
+++ b/.github/workflows/close_invalid_issue.yml
@@ -1,59 +1,59 @@
-name: Close Issues Without Keywords
-on:
- issues:
- types:
- - opened
-
-jobs:
- close-issue:
- runs-on: ubuntu-latest
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v2
-
- - name: Set up Node.js
- uses: actions/setup-node@v2
- with:
- node-version: '14'
-
- - name: Close issue without keywords
- uses: actions/github-script@v4
- with:
- github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- script: |
- const keywords = ['Documentation Bug', 'New game', 'Enhancement', 'Bug', 'Question'];
- const issueTitle = context.payload.issue.title ? context.payload.issue.title.toLowerCase() : '';
- const openerUsername = context.payload.issue.user.login;
-
- let containsKeyword = false;
- for (const keyword of keywords) {
- if (issueTitle.includes(keyword.toLowerCase())) {
- containsKeyword = true;
- break;
- }
- }
-
- if (!containsKeyword) {
- const commentBody = `Hey @${openerUsername}! ๐ \n It seems like you are not following proper guidelines !! ๐ \n Read documentation properly !!๐ \n If you have any queries reach out to us on [Discord๐น๏ธ](https://discord.gg/fgwk4XZfxG) .`;
-
- // Close the issue
- await github.issues.update({
- owner: context.repo.owner,
- repo: context.repo.repo,
- issue_number: context.issue.number,
- state: 'closed'
- });
-
- // Add comment to the issue
- await github.issues.createComment({
- owner: context.repo.owner,
- repo: context.repo.repo,
- issue_number: context.issue.number,
- body: commentBody
- });
-
- console.log('Closed the issue and added a comment.');
- } else {
- console.log('Issue contains one of the keywords. Skipping...');
- }
+name: Close Issues Without Keywords
+on:
+ issues:
+ types:
+ - opened
+
+jobs:
+ close-issue:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+
+ - name: Set up Node.js
+ uses: actions/setup-node@v2
+ with:
+ node-version: '14'
+
+ - name: Close issue without keywords
+ uses: actions/github-script@v4
+ with:
+ github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ script: |
+ const keywords = ['Documentation Bug', 'New game', 'Enhancement', 'Bug', 'Question'];
+ const issueTitle = context.payload.issue.title ? context.payload.issue.title.toLowerCase() : '';
+ const openerUsername = context.payload.issue.user.login;
+
+ let containsKeyword = false;
+ for (const keyword of keywords) {
+ if (issueTitle.includes(keyword.toLowerCase())) {
+ containsKeyword = true;
+ break;
+ }
+ }
+
+ if (!containsKeyword) {
+ const commentBody = `Hey @${openerUsername}! ๐ \n It seems like you are not following proper guidelines !! ๐ \n Read documentation properly !!๐ \n If you have any queries reach out to us on [Discord๐น๏ธ](https://discord.gg/fgwk4XZfxG) .`;
+
+ // Close the issue
+ await github.issues.update({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ issue_number: context.issue.number,
+ state: 'closed'
+ });
+
+ // Add comment to the issue
+ await github.issues.createComment({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ issue_number: context.issue.number,
+ body: commentBody
+ });
+
+ console.log('Closed the issue and added a comment.');
+ } else {
+ console.log('Issue contains one of the keywords. Skipping...');
+ }
diff --git a/.github/workflows/greet.yml b/.github/workflows/greet.yml
index 74a7f0ceda..e456a18c4d 100644
--- a/.github/workflows/greet.yml
+++ b/.github/workflows/greet.yml
@@ -1,125 +1,125 @@
-name: Comment and Label on Issue Opened
-on:
- issues:
- types:
- - opened
-
-jobs:
- comment_and_label:
- runs-on: ubuntu-latest
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v2
-
- - name: Add comment
- uses: actions/github-script@v4
- with:
- github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- script: |
- const commentAuthor = context.payload.issue.user.login;
- const commentBody = `Hey @${commentAuthor} ! \n Thank you for raising an issue ๐ \n You can self assign the issue by commenting /assign in comment ๐ \n Make sure you follow [CODE OF CONDUCT](https://github.com/kunjgit/GameZone/blob/main/.github/CODE_OF_CONDUCT.md) and [CONTRIBUTING GUIDELINES](https://github.com/kunjgit/GameZone/blob/main/.github/CONTRIBUTING_GUIDELINE.md) ๐ \n Donโt Forget to โญ our [GameZone๐ฎ](https://github.com/kunjgit/GameZone)\n Make sure you join our [Discord๐น๏ธ](https://discord.gg/fgwk4XZfxG) `;
- const { owner, repo, number } = context.issue;
-
- await github.issues.createComment({
- owner: owner,
- repo: repo,
- issue_number: number,
- body: commentBody
- });
-
- - name: Add label if issue body contains "GSSoC24"
- id: check_label_gs_soc24
- run: |
- if grep -qE "GSSoC24" <<< "${{ github.event.issue.body }}"; then
- echo "::set-output name=add_label_gs_soc24::true"
- else
- echo "::set-output name=add_label_gs_soc24::false"
- fi
-
- - name: Add label "GSSoC24"
- if: ${{ steps.check_label_gs_soc24.outputs.add_label_gs_soc24 == 'true' }}
- uses: actions/github-script@v4
- with:
- github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- script: |
- const { owner, repo, number } = context.issue;
-
- await github.issues.addLabels({
- owner: owner,
- repo: repo,
- issue_number: number,
- labels: ["gssoc"]
- });
-
- - name: Add label if issue body contains "GSSoC23"
- id: check_label_gs_soc23
- run: |
- if grep -qE "GSSoC23" <<< "${{ github.event.issue.body }}"; then
- echo "::set-output name=add_label_gs_soc23::true"
- else
- echo "::set-output name=add_label_gs_soc23::false"
- fi
-
- - name: Add label "GSSoC23"
- if: ${{ steps.check_label_gs_soc23.outputs.add_label_gs_soc23 == 'true' }}
- uses: actions/github-script@v4
- with:
- github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- script: |
- const { owner, repo, number } = context.issue;
-
- await github.issues.addLabels({
- owner: owner,
- repo: repo,
- issue_number: number,
- labels: ["GSSoC23"]
- });
-
- - name: Add label if issue body contains "hacktoberfest"
- id: check_label_hacktoberfest
- run: |
- if grep -qE "hacktoberfest" <<< "${{ github.event.issue.body }}"; then
- echo "::set-output name=add_label_hacktoberfest::true"
- else
- echo "::set-output name=add_label_hacktoberfest::false"
- fi
-
- - name: Add label "hacktoberfest"
- if: ${{ steps.check_label_hacktoberfest.outputs.add_label_hacktoberfest == 'true' }}
- uses: actions/github-script@v4
- with:
- github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- script: |
- const { owner, repo, number } = context.issue;
-
- await github.issues.addLabels({
- owner: owner,
- repo: repo,
- issue_number: number,
- labels: ["hacktoberfest"]
- });
-
- - name: Add label if issue body contains "IWOC2024"
- id: check_label_iwoc
- run: |
- if grep -qE "IWOC2024" <<< "${{ github.event.issue.body }}"; then
- echo "::set-output name=add_label_iwoc::true"
- else
- echo "::set-output name=add_label_iwoc::false"
- fi
-
- - name: Add label "IWOC2024"
- if: ${{ steps.check_label_iwoc.outputs.add_label_iwoc == 'true' }}
- uses: actions/github-script@v4
- with:
- github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- script: |
- const { owner, repo, number } = context.issue;
-
- await github.issues.addLabels({
- owner: owner,
- repo: repo,
- issue_number: number,
- labels: ["IWOC2024"]
- });
+name: Comment and Label on Issue Opened
+on:
+ issues:
+ types:
+ - opened
+
+jobs:
+ comment_and_label:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+
+ - name: Add comment
+ uses: actions/github-script@v4
+ with:
+ github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ script: |
+ const commentAuthor = context.payload.issue.user.login;
+ const commentBody = `Hey @${commentAuthor} ! \n Thank you for raising an issue ๐ \n You can self assign the issue by commenting /assign in comment ๐ \n Make sure you follow [CODE OF CONDUCT](https://github.com/kunjgit/GameZone/blob/main/.github/CODE_OF_CONDUCT.md) and [CONTRIBUTING GUIDELINES](https://github.com/kunjgit/GameZone/blob/main/.github/CONTRIBUTING_GUIDELINE.md) ๐ \n Donโt Forget to โญ our [GameZone๐ฎ](https://github.com/kunjgit/GameZone)\n Make sure you join our [Discord๐น๏ธ](https://discord.gg/fgwk4XZfxG) `;
+ const { owner, repo, number } = context.issue;
+
+ await github.issues.createComment({
+ owner: owner,
+ repo: repo,
+ issue_number: number,
+ body: commentBody
+ });
+
+ - name: Add label if issue body contains "GSSoC24"
+ id: check_label_gs_soc24
+ run: |
+ if grep -qE "GSSoC24" <<< "${{ github.event.issue.body }}"; then
+ echo "::set-output name=add_label_gs_soc24::true"
+ else
+ echo "::set-output name=add_label_gs_soc24::false"
+ fi
+
+ - name: Add label "GSSoC24"
+ if: ${{ steps.check_label_gs_soc24.outputs.add_label_gs_soc24 == 'true' }}
+ uses: actions/github-script@v4
+ with:
+ github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ script: |
+ const { owner, repo, number } = context.issue;
+
+ await github.issues.addLabels({
+ owner: owner,
+ repo: repo,
+ issue_number: number,
+ labels: ["gssoc"]
+ });
+
+ - name: Add label if issue body contains "GSSoC23"
+ id: check_label_gs_soc23
+ run: |
+ if grep -qE "GSSoC23" <<< "${{ github.event.issue.body }}"; then
+ echo "::set-output name=add_label_gs_soc23::true"
+ else
+ echo "::set-output name=add_label_gs_soc23::false"
+ fi
+
+ - name: Add label "GSSoC23"
+ if: ${{ steps.check_label_gs_soc23.outputs.add_label_gs_soc23 == 'true' }}
+ uses: actions/github-script@v4
+ with:
+ github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ script: |
+ const { owner, repo, number } = context.issue;
+
+ await github.issues.addLabels({
+ owner: owner,
+ repo: repo,
+ issue_number: number,
+ labels: ["GSSoC23"]
+ });
+
+ - name: Add label if issue body contains "hacktoberfest"
+ id: check_label_hacktoberfest
+ run: |
+ if grep -qE "hacktoberfest" <<< "${{ github.event.issue.body }}"; then
+ echo "::set-output name=add_label_hacktoberfest::true"
+ else
+ echo "::set-output name=add_label_hacktoberfest::false"
+ fi
+
+ - name: Add label "hacktoberfest"
+ if: ${{ steps.check_label_hacktoberfest.outputs.add_label_hacktoberfest == 'true' }}
+ uses: actions/github-script@v4
+ with:
+ github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ script: |
+ const { owner, repo, number } = context.issue;
+
+ await github.issues.addLabels({
+ owner: owner,
+ repo: repo,
+ issue_number: number,
+ labels: ["hacktoberfest"]
+ });
+
+ - name: Add label if issue body contains "IWOC2024"
+ id: check_label_iwoc
+ run: |
+ if grep -qE "IWOC2024" <<< "${{ github.event.issue.body }}"; then
+ echo "::set-output name=add_label_iwoc::true"
+ else
+ echo "::set-output name=add_label_iwoc::false"
+ fi
+
+ - name: Add label "IWOC2024"
+ if: ${{ steps.check_label_iwoc.outputs.add_label_iwoc == 'true' }}
+ uses: actions/github-script@v4
+ with:
+ github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ script: |
+ const { owner, repo, number } = context.issue;
+
+ await github.issues.addLabels({
+ owner: owner,
+ repo: repo,
+ issue_number: number,
+ labels: ["IWOC2024"]
+ });
diff --git a/.github/workflows/issue_close_greet.yml b/.github/workflows/issue_close_greet.yml
index 9489218ef4..8e091174ac 100644
--- a/.github/workflows/issue_close_greet.yml
+++ b/.github/workflows/issue_close_greet.yml
@@ -1,22 +1,22 @@
-name: Comment on Issue Closure
-on:
- issues:
- types:
- - closed
-
-jobs:
- comment:
- runs-on: ubuntu-latest
-
- steps:
- - name: Comment on Issue Closure
- uses: actions/github-script@v4
- with:
- github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- script: |
- const { owner, repo, number } = context.issue;
- const author = context.payload.issue.user.login;
- const commentBody = `Hey @${author} ! Thank you so much for your raising the issue๐ \n Itโs all yours, you can come anytime again and make some contributions! ๐ \n Alone, we can do little, but together we can do so much! ๐
- `;
- await github.issues.createComment({ owner, repo, issue_number: number, body: commentBody });
- console.log(`Commented on the issue: ${commentBody}.`);
+name: Comment on Issue Closure
+on:
+ issues:
+ types:
+ - closed
+
+jobs:
+ comment:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Comment on Issue Closure
+ uses: actions/github-script@v4
+ with:
+ github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ script: |
+ const { owner, repo, number } = context.issue;
+ const author = context.payload.issue.user.login;
+ const commentBody = `Hey @${author} ! Thank you so much for your raising the issue๐ \n Itโs all yours, you can come anytime again and make some contributions! ๐ \n Alone, we can do little, but together we can do so much! ๐
+ `;
+ await github.issues.createComment({ owner, repo, issue_number: number, body: commentBody });
+ console.log(`Commented on the issue: ${commentBody}.`);
diff --git a/.github/workflows/level_tags.yml b/.github/workflows/level_tags.yml
index 95ed1971ba..185e6101fb 100644
--- a/.github/workflows/level_tags.yml
+++ b/.github/workflows/level_tags.yml
@@ -1,55 +1,55 @@
-name: Add Tags to Issues
-on:
- issues:
- types:
- - opened
-
-jobs:
- add-tags:
- runs-on: ubuntu-latest
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v2
-
- - name: Set up Node.js
- uses: actions/setup-node@v2
- with:
- node-version: '14'
-
- - name: Add tags to issues
- uses: actions/github-script@v4
- with:
- github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- script: |
- const { issue } = context.payload;
- const { owner, repo } = context.repo;
- const { title, body } = issue;
-
- let tagsToAdd = [];
-
- // Check if issue text contains "Documentation Bug"
- if (title && title.toLowerCase().includes('documentation bug')) {
- tagsToAdd.push('Documentation Bug ๐');
- tagsToAdd.push('level1');
- }
-
- // Check if issue title contains "Enhancement"
- if (title && title.toLowerCase().includes('enhancement')) {
- tagsToAdd.push('Enhancement โก๏ธ');
- tagsToAdd.push('level2');
- }
-
- if (tagsToAdd.length > 0) {
- // Add tags to the issue
- await github.issues.addLabels({
- owner: owner,
- repo: repo,
- issue_number: issue.number,
- labels: tagsToAdd
- });
-
- console.log(`Added tags ${tagsToAdd.join(', ')} to issue #${issue.number}.`);
- } else {
- console.log('No tags to add.');
- }
+name: Add Tags to Issues
+on:
+ issues:
+ types:
+ - opened
+
+jobs:
+ add-tags:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+
+ - name: Set up Node.js
+ uses: actions/setup-node@v2
+ with:
+ node-version: '14'
+
+ - name: Add tags to issues
+ uses: actions/github-script@v4
+ with:
+ github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ script: |
+ const { issue } = context.payload;
+ const { owner, repo } = context.repo;
+ const { title, body } = issue;
+
+ let tagsToAdd = [];
+
+ // Check if issue text contains "Documentation Bug"
+ if (title && title.toLowerCase().includes('documentation bug')) {
+ tagsToAdd.push('Documentation Bug ๐');
+ tagsToAdd.push('level1');
+ }
+
+ // Check if issue title contains "Enhancement"
+ if (title && title.toLowerCase().includes('enhancement')) {
+ tagsToAdd.push('Enhancement โก๏ธ');
+ tagsToAdd.push('level2');
+ }
+
+ if (tagsToAdd.length > 0) {
+ // Add tags to the issue
+ await github.issues.addLabels({
+ owner: owner,
+ repo: repo,
+ issue_number: issue.number,
+ labels: tagsToAdd
+ });
+
+ console.log(`Added tags ${tagsToAdd.join(', ')} to issue #${issue.number}.`);
+ } else {
+ console.log('No tags to add.');
+ }
diff --git a/.github/workflows/new_game.yml b/.github/workflows/new_game.yml
index 8a95d1b4ed..4ebe16a757 100644
--- a/.github/workflows/new_game.yml
+++ b/.github/workflows/new_game.yml
@@ -1,45 +1,45 @@
-name: Add New Game Label
-on:
- issues:
- types:
- - opened
-
-jobs:
- label:
- runs-on: ubuntu-latest
-
- steps:
- - name: Check if issue title contains "New Game"
- id: check_title
- uses: actions/github-script@v4
- with:
- github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- script: |
- const issueTitle = context.payload.issue.title;
- const isNewGame = issueTitle.includes('New game');
- console.log(`Issue title: ${issueTitle}`);
- console.log(`Is New Game: ${isNewGame}`);
- console.log(`Issue Number: ${context.payload.issue.number}`);
- console.log(`Issue State: ${context.payload.issue.state}`);
- console.log(`Issue URL: ${context.payload.issue.html_url}`);
- console.log(`Repository: ${context.repo.owner}/${context.repo.repo}`);
- console.log(`Repository URL: ${context.payload.repository.html_url}`);
- console.log(`Repository Full Name: ${context.payload.repository.full_name}`);
- console.log(`Repository Name: ${context.payload.repository.name}`);
- console.log(`Repository Owner: ${context.payload.repository.owner.login}`);
- console.log(`Repository Owner URL: ${context.payload.repository.owner.html_url}`);
- console.log(`Event Name: ${context.eventName}`);
-
- core.setOutput('is_new_game', isNewGame.toString());
-
- - name: Add "New Game" label
- if: steps.check_title.outputs.is_new_game == 'true'
- uses: actions/github-script@v4
- with:
- github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- script: |
- const { owner, repo, number } = context.issue;
- const label = 'New Game ๐ฎ';
- const level_label='level3';
- await github.issues.addLabels({ owner, repo, issue_number: number, labels: [label,level_label] });
- console.log(`Added label "${label}" to the issue.`);
+name: Add New Game Label
+on:
+ issues:
+ types:
+ - opened
+
+jobs:
+ label:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Check if issue title contains "New Game"
+ id: check_title
+ uses: actions/github-script@v4
+ with:
+ github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ script: |
+ const issueTitle = context.payload.issue.title;
+ const isNewGame = issueTitle.includes('New game');
+ console.log(`Issue title: ${issueTitle}`);
+ console.log(`Is New Game: ${isNewGame}`);
+ console.log(`Issue Number: ${context.payload.issue.number}`);
+ console.log(`Issue State: ${context.payload.issue.state}`);
+ console.log(`Issue URL: ${context.payload.issue.html_url}`);
+ console.log(`Repository: ${context.repo.owner}/${context.repo.repo}`);
+ console.log(`Repository URL: ${context.payload.repository.html_url}`);
+ console.log(`Repository Full Name: ${context.payload.repository.full_name}`);
+ console.log(`Repository Name: ${context.payload.repository.name}`);
+ console.log(`Repository Owner: ${context.payload.repository.owner.login}`);
+ console.log(`Repository Owner URL: ${context.payload.repository.owner.html_url}`);
+ console.log(`Event Name: ${context.eventName}`);
+
+ core.setOutput('is_new_game', isNewGame.toString());
+
+ - name: Add "New Game" label
+ if: steps.check_title.outputs.is_new_game == 'true'
+ uses: actions/github-script@v4
+ with:
+ github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ script: |
+ const { owner, repo, number } = context.issue;
+ const label = 'New Game ๐ฎ';
+ const level_label='level3';
+ await github.issues.addLabels({ owner, repo, issue_number: number, labels: [label,level_label] });
+ console.log(`Added label "${label}" to the issue.`);
diff --git a/.github/workflows/pr_close_greet.yml b/.github/workflows/pr_close_greet.yml
index 814e727cf7..5e0c5347c9 100644
--- a/.github/workflows/pr_close_greet.yml
+++ b/.github/workflows/pr_close_greet.yml
@@ -1,22 +1,22 @@
-name: Comment on PR Closure
-on:
- pull_request_target:
- types:
- - closed
-
-jobs:
- comment:
- runs-on: ubuntu-latest
-
- steps:
- - name: Comment on PR Closure
- uses: actions/github-script@v4
- with:
- github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- script: |
- const { owner, repo, number } = context.issue;
- const commentAuthor = context.payload.pull_request.user.login;
- const commentBody = `Thank you @${commentAuthor} , for your valuable time and contribution in our GameZone ๐. \n Itโs our GameZone, so Letโs build this GameZone altogether !!๐ค\n Hoping to see you soon with another PR again ๐ \n Wishing you all the best for your journey into Open Source๐
- `;
- await github.issues.createComment({ owner, repo, issue_number: number, body: commentBody });
- console.log(`Commented on the closed PR: ${commentBody}.`);
+name: Comment on PR Closure
+on:
+ pull_request_target:
+ types:
+ - closed
+
+jobs:
+ comment:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Comment on PR Closure
+ uses: actions/github-script@v4
+ with:
+ github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ script: |
+ const { owner, repo, number } = context.issue;
+ const commentAuthor = context.payload.pull_request.user.login;
+ const commentBody = `Thank you @${commentAuthor} , for your valuable time and contribution in our GameZone ๐. \n Itโs our GameZone, so Letโs build this GameZone altogether !!๐ค\n Hoping to see you soon with another PR again ๐ \n Wishing you all the best for your journey into Open Source๐
+ `;
+ await github.issues.createComment({ owner, repo, issue_number: number, body: commentBody });
+ console.log(`Commented on the closed PR: ${commentBody}.`);
diff --git a/.github/workflows/pr_greet.yml b/.github/workflows/pr_greet.yml
index eda9dc1a9d..4ebc068efa 100644
--- a/.github/workflows/pr_greet.yml
+++ b/.github/workflows/pr_greet.yml
@@ -1,22 +1,22 @@
-name: Comment on PR Creation
-on:
- pull_request_target:
- types:
- - opened
-
-jobs:
- comment:
- runs-on: ubuntu-latest
-
- steps:
- - name: Comment on PR
- uses: actions/github-script@v4
- with:
- github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- script: |
- const { owner, repo, number } = context.issue;
- const commentAuthor = context.payload.sender.login;
- const commentBody = `Thank you @${commentAuthor} ,for creating the PR and contributing to our GameZone ๐ \n Review team will review the PR and will reach out to you soon! ๐ \n Make sure that you have marked all the tasks that you are done with โ
. \n Thank you for your patience! ๐
- `;
- await github.issues.createComment({ owner, repo, issue_number: number, body: commentBody });
- console.log(`Commented on the PR: ${commentBody}.`);
+name: Comment on PR Creation
+on:
+ pull_request_target:
+ types:
+ - opened
+
+jobs:
+ comment:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Comment on PR
+ uses: actions/github-script@v4
+ with:
+ github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ script: |
+ const { owner, repo, number } = context.issue;
+ const commentAuthor = context.payload.sender.login;
+ const commentBody = `Thank you @${commentAuthor} ,for creating the PR and contributing to our GameZone ๐ \n Review team will review the PR and will reach out to you soon! ๐ \n Make sure that you have marked all the tasks that you are done with โ
. \n Thank you for your patience! ๐
+ `;
+ await github.issues.createComment({ owner, repo, issue_number: number, body: commentBody });
+ console.log(`Commented on the PR: ${commentBody}.`);
diff --git a/.github/workflows/remove_duplicate.yml b/.github/workflows/remove_duplicate.yml
index a0947dfb39..8ec6ce4ff0 100644
--- a/.github/workflows/remove_duplicate.yml
+++ b/.github/workflows/remove_duplicate.yml
@@ -1,117 +1,117 @@
-name: Prevent Duplicate Issues
-on:
- issues:
- types:
- - opened
-
-jobs:
- prevent-duplicate-issues:
- runs-on: ubuntu-latest
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v2
-
- - name: Set up Node.js
- uses: actions/setup-node@v2
- with:
- node-version: '14'
-
- - name: Install dependencies
- run: npm install --prefix .github string-similarity
-
- - name: Check for duplicate issue
- id: check_duplicate
- uses: actions/github-script@v4
- with:
- github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- script: |
- const newIssueTitle = context.payload.issue.title ? context.payload.issue.title.toLowerCase() : '';
- const newIssueWords = newIssueTitle.split(' ');
-
- const { data: issues } = await github.issues.listForRepo({
- owner: context.repo.owner,
- repo: context.repo.repo,
- state: 'open',
- per_page: 100 // Adjust the per_page value as per your requirements
- });
-
- const stringSimilarity = require('.github/node_modules/string-similarity');
- let isDuplicate = false;
- let duplicateIssueNumber = null;
- let similarIssueNumber = null;
-
- for (const issue of issues) {
- if (issue.number === context.issue.number) {
- continue; // Skip the current issue being checked
- }
-
- const existingIssueTitle = issue.title ? issue.title.toLowerCase() : '';
- const existingIssueWords = existingIssueTitle.split(' ');
-
- let matchedWordCount = 0;
- for (const word of newIssueWords) {
- let maxSimilarity = 0;
- for (const existingWord of existingIssueWords) {
- const similarity = stringSimilarity.compareTwoStrings(word, existingWord);
- if (similarity >= 0.75 && similarity > maxSimilarity) {
- maxSimilarity = similarity;
- }
- }
- if (maxSimilarity >= 0.75) {
- matchedWordCount++;
- }
- }
-
- const similarityPercentage = (matchedWordCount / newIssueWords.length) * 100;
- if (similarityPercentage >= 80) {
- // Check if both current and similar issues have '[New Game]:' in the title
- const hasNewGameTitle = newIssueTitle.includes('[new game]:');
- const hasSimilarNewGameTitle = existingIssueTitle.includes('[new game]:');
-
- if (hasNewGameTitle && hasSimilarNewGameTitle) {
- isDuplicate = true;
- duplicateIssueNumber = issue.number;
- similarIssueNumber = issue.number;
- break;
- }
- }
- }
-
- core.setOutput('is_duplicate', isDuplicate.toString());
- core.setOutput('duplicate_issue_number', duplicateIssueNumber ? duplicateIssueNumber.toString() : '');
- core.setOutput('similar_issue_number', similarIssueNumber ? similarIssueNumber.toString() : '');
-
- - name: Close duplicate issue and comment
- if: steps.check_duplicate.outputs.is_duplicate == 'true'
- uses: actions/github-script@v4
- with:
- github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- script: |
- const duplicateIssueNumber = parseInt('${{ steps.check_duplicate.outputs.duplicate_issue_number }}');
- const { owner, repo } = context.repo;
-
- // Close the newly created duplicate issue
- await github.issues.update({
- owner: owner,
- repo: repo,
- issue_number: context.issue.number,
- state: 'closed'
- });
-
- // Get the issue opener's username
- const openerUsername = context.payload.issue.user.login;
-
- // Comment on the newly created duplicate issue
- await github.issues.createComment({
- owner: owner,
- repo: repo,
- issue_number: context.issue.number,
- body: `Hey @${openerUsername}! \nWe are already having a similar game request in #${duplicateIssueNumber} ๐ \nMake sure you come up with a cool unique idea ๐ \n Waiting for your new game idea ๐.`
- });
-
- console.log(`Closed the duplicate issue #${duplicateIssueNumber}.`);
-
- - name: Skip if not a duplicate issue
- if: steps.check_duplicate.outputs.is_duplicate != 'true'
- run: echo "Not a duplicate issue. Skipping..."
+name: Prevent Duplicate Issues
+on:
+ issues:
+ types:
+ - opened
+
+jobs:
+ prevent-duplicate-issues:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+
+ - name: Set up Node.js
+ uses: actions/setup-node@v2
+ with:
+ node-version: '14'
+
+ - name: Install dependencies
+ run: npm install --prefix .github string-similarity
+
+ - name: Check for duplicate issue
+ id: check_duplicate
+ uses: actions/github-script@v4
+ with:
+ github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ script: |
+ const newIssueTitle = context.payload.issue.title ? context.payload.issue.title.toLowerCase() : '';
+ const newIssueWords = newIssueTitle.split(' ');
+
+ const { data: issues } = await github.issues.listForRepo({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ state: 'open',
+ per_page: 100 // Adjust the per_page value as per your requirements
+ });
+
+ const stringSimilarity = require('.github/node_modules/string-similarity');
+ let isDuplicate = false;
+ let duplicateIssueNumber = null;
+ let similarIssueNumber = null;
+
+ for (const issue of issues) {
+ if (issue.number === context.issue.number) {
+ continue; // Skip the current issue being checked
+ }
+
+ const existingIssueTitle = issue.title ? issue.title.toLowerCase() : '';
+ const existingIssueWords = existingIssueTitle.split(' ');
+
+ let matchedWordCount = 0;
+ for (const word of newIssueWords) {
+ let maxSimilarity = 0;
+ for (const existingWord of existingIssueWords) {
+ const similarity = stringSimilarity.compareTwoStrings(word, existingWord);
+ if (similarity >= 0.75 && similarity > maxSimilarity) {
+ maxSimilarity = similarity;
+ }
+ }
+ if (maxSimilarity >= 0.75) {
+ matchedWordCount++;
+ }
+ }
+
+ const similarityPercentage = (matchedWordCount / newIssueWords.length) * 100;
+ if (similarityPercentage >= 80) {
+ // Check if both current and similar issues have '[New Game]:' in the title
+ const hasNewGameTitle = newIssueTitle.includes('[new game]:');
+ const hasSimilarNewGameTitle = existingIssueTitle.includes('[new game]:');
+
+ if (hasNewGameTitle && hasSimilarNewGameTitle) {
+ isDuplicate = true;
+ duplicateIssueNumber = issue.number;
+ similarIssueNumber = issue.number;
+ break;
+ }
+ }
+ }
+
+ core.setOutput('is_duplicate', isDuplicate.toString());
+ core.setOutput('duplicate_issue_number', duplicateIssueNumber ? duplicateIssueNumber.toString() : '');
+ core.setOutput('similar_issue_number', similarIssueNumber ? similarIssueNumber.toString() : '');
+
+ - name: Close duplicate issue and comment
+ if: steps.check_duplicate.outputs.is_duplicate == 'true'
+ uses: actions/github-script@v4
+ with:
+ github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ script: |
+ const duplicateIssueNumber = parseInt('${{ steps.check_duplicate.outputs.duplicate_issue_number }}');
+ const { owner, repo } = context.repo;
+
+ // Close the newly created duplicate issue
+ await github.issues.update({
+ owner: owner,
+ repo: repo,
+ issue_number: context.issue.number,
+ state: 'closed'
+ });
+
+ // Get the issue opener's username
+ const openerUsername = context.payload.issue.user.login;
+
+ // Comment on the newly created duplicate issue
+ await github.issues.createComment({
+ owner: owner,
+ repo: repo,
+ issue_number: context.issue.number,
+ body: `Hey @${openerUsername}! \nWe are already having a similar game request in #${duplicateIssueNumber} ๐ \nMake sure you come up with a cool unique idea ๐ \n Waiting for your new game idea ๐.`
+ });
+
+ console.log(`Closed the duplicate issue #${duplicateIssueNumber}.`);
+
+ - name: Skip if not a duplicate issue
+ if: steps.check_duplicate.outputs.is_duplicate != 'true'
+ run: echo "Not a duplicate issue. Skipping..."
diff --git a/Games/3D_Car_Racing_Game/README.md b/Games/3D_Car_Racing_Game/README.md
index 442b95967a..c34c4e7c2c 100644
--- a/Games/3D_Car_Racing_Game/README.md
+++ b/Games/3D_Car_Racing_Game/README.md
@@ -1,15 +1,15 @@
-# 3D-Car-Racing
-
-- Developed and designed a 3D Car Racing Game with the thrill of high-speed racing in stunning 3D environments, where one can weave through intense tracks and challenge competitors from around the globe. Get ready to unleash the adrenaline rush asone take the wheel of powerful cars in this immersive 3D Car Racing Game.
-
-# Link -
-
-- https://64c27929a6123c06b91f12a9--shiny-otter-46d119.netlify.app/
-
-# Built with
-
-- HTML5
-- CSS3
- -Javscript
-
-![image](./car04.png)
+# 3D-Car-Racing
+
+- Developed and designed a 3D Car Racing Game with the thrill of high-speed racing in stunning 3D environments, where one can weave through intense tracks and challenge competitors from around the globe. Get ready to unleash the adrenaline rush asone take the wheel of powerful cars in this immersive 3D Car Racing Game.
+
+# Link -
+
+- https://64c27929a6123c06b91f12a9--shiny-otter-46d119.netlify.app/
+
+# Built with
+
+- HTML5
+- CSS3
+ -Javscript
+
+![image](./car04.png)
diff --git a/Games/3d_Snake/README.md b/Games/3d_Snake/README.md
index 20846c4c4f..dc59ed2059 100644
--- a/Games/3d_Snake/README.md
+++ b/Games/3d_Snake/README.md
@@ -1,32 +1,32 @@
-# **Game_Name**
-
-3D Snake Game
-
-## **Description ๐**
-Frontend game developed using HTML, CSS, JavaScript. Points will be gained by maximum number of eating.
-
-## **functionalities ๐ฎ**
-- There will be snake in the game area
-- Player can move the snake by using the arrow keys
-- Once the snake eats the eating object points will be gained
-- The more the snake eats more points will be gained accordingly
-
-## **How to play? ๐น๏ธ**
-- Player can move the snake by using arrow keys
-- Once the snake eats the food the player will get points
-
-## **Screenshots ๐ธ**
-
-![3d_Snake](https://github.com/kunjgit/GameZone/blob/main/assets/images/3d_Snake.png)
-
-
-## **Working video ๐น**
-
-
-
-https://github.com/sujanrupu/GameZone/assets/103595490/1729301b-e85c-4fe7-848d-437da9a8a3b5
-
-
-
-
-
+# **Game_Name**
+
+3D Snake Game
+
+## **Description ๐**
+Frontend game developed using HTML, CSS, JavaScript. Points will be gained by maximum number of eating.
+
+## **functionalities ๐ฎ**
+- There will be snake in the game area
+- Player can move the snake by using the arrow keys
+- Once the snake eats the eating object points will be gained
+- The more the snake eats more points will be gained accordingly
+
+## **How to play? ๐น๏ธ**
+- Player can move the snake by using arrow keys
+- Once the snake eats the food the player will get points
+
+## **Screenshots ๐ธ**
+
+![3d_Snake](https://github.com/kunjgit/GameZone/blob/main/assets/images/3d_Snake.png)
+
+
+## **Working video ๐น**
+
+
+
+https://github.com/sujanrupu/GameZone/assets/103595490/1729301b-e85c-4fe7-848d-437da9a8a3b5
+
+
+
+
+
diff --git a/Games/Adventure_Game/README.md b/Games/Adventure_Game/README.md
index 25ac3d4bf4..4f069fabba 100644
--- a/Games/Adventure_Game/README.md
+++ b/Games/Adventure_Game/README.md
@@ -1,37 +1,37 @@
-# **Adventure_Game**
-
----
-
-
-
-## **Description ๐**
-
-- A no-JS adventure game created using only CSS. The game is a simple text adventure, where the player can move around a grid of squares and interact with objects. The game is controlled using the keyboard, and the player can move up, down, left, and right. The player can also interact with objects by clicking on them.
-
-## **functionalities ๐ฎ**
-
-- **Grid of squares**: The game is made up of a grid of squares, and the player can move around the grid using the keyboard.
-- **Interacting with objects**: The game contains a few different objects, and the player can interact with objects by clicking on them.
-- **Simple Interface**: The game has a simple text-based interface, but it is still a fun and challenging experience.
-
-
-## **How to play? ๐น๏ธ**
-
-- Click on the "Run" button to start the game.
-- Use the keyboard to move around the grid of squares.
-- Click on objects to interact with them.
-- Follow the dialogue to complete the game.
-
-
-
-## **Screenshots ๐ธ**
-
-
-
-
-![image](https://github.com/Bindusree1515/GameZone/assets/91887086/8cdc9db1-2215-41e3-8593-3a0dcd22e3b4)
-
-
-
-## **Working video ๐น**
-
+# **Adventure_Game**
+
+---
+
+
+
+## **Description ๐**
+
+- A no-JS adventure game created using only CSS. The game is a simple text adventure, where the player can move around a grid of squares and interact with objects. The game is controlled using the keyboard, and the player can move up, down, left, and right. The player can also interact with objects by clicking on them.
+
+## **functionalities ๐ฎ**
+
+- **Grid of squares**: The game is made up of a grid of squares, and the player can move around the grid using the keyboard.
+- **Interacting with objects**: The game contains a few different objects, and the player can interact with objects by clicking on them.
+- **Simple Interface**: The game has a simple text-based interface, but it is still a fun and challenging experience.
+
+
+## **How to play? ๐น๏ธ**
+
+- Click on the "Run" button to start the game.
+- Use the keyboard to move around the grid of squares.
+- Click on objects to interact with them.
+- Follow the dialogue to complete the game.
+
+
+
+## **Screenshots ๐ธ**
+
+
+
+
+![image](https://github.com/Bindusree1515/GameZone/assets/91887086/8cdc9db1-2215-41e3-8593-3a0dcd22e3b4)
+
+
+
+## **Working video ๐น**
+
diff --git a/Games/Aim_Training/README.md b/Games/Aim_Training/README.md
index 22a4b2a28c..3a316777bc 100644
--- a/Games/Aim_Training/README.md
+++ b/Games/Aim_Training/README.md
@@ -1,44 +1,44 @@
-# **Game_Name**
-
-Aim Training
----
-
-
-## **Description ๐**
-
-- Aim training game is a simple and addictive game where the player's objective is to pop as many bubbles as possible within a limited time. Colorful bubbles randomly appear on the screen, and the player must quickly click on them to pop them. Each popped bubble earns the player a point, and the score is displayed in real-time. The game lasts for 30 seconds.
-
-- The player starts the game by clicking the "Start" button.
-
-- Bubbles start appearing on the screen at regular intervals.
-
-- The player's goal is to click on the bubbles to pop them.
-
-- Overall, the game aims to test the player's agility, reflexes, and hand-eye coordination.
-
-## **functionalities ๐ฎ**
-
-- Colorful bubbles appear randomly on the screen at regular intervals.
-- The player can click on the bubbles to pop them and earn points.
-- The player's score is displayed in real-time, showing the number of bubbles popped.
-- The highest score achieved is tracked and displayed as the high score.
-
-
-## **How to play? ๐น๏ธ**
-
-- just hit start and there you go.
-
-
-
-## **Screenshots ๐ธ**
-
-
-
-
-
-![Game image](https://github.com/kunjgit/GameZone/blob/main/assets/images/Aim_Training.png)
-
-
-
-
-
+# **Game_Name**
+
+Aim Training
+---
+
+
+## **Description ๐**
+
+- Aim training game is a simple and addictive game where the player's objective is to pop as many bubbles as possible within a limited time. Colorful bubbles randomly appear on the screen, and the player must quickly click on them to pop them. Each popped bubble earns the player a point, and the score is displayed in real-time. The game lasts for 30 seconds.
+
+- The player starts the game by clicking the "Start" button.
+
+- Bubbles start appearing on the screen at regular intervals.
+
+- The player's goal is to click on the bubbles to pop them.
+
+- Overall, the game aims to test the player's agility, reflexes, and hand-eye coordination.
+
+## **functionalities ๐ฎ**
+
+- Colorful bubbles appear randomly on the screen at regular intervals.
+- The player can click on the bubbles to pop them and earn points.
+- The player's score is displayed in real-time, showing the number of bubbles popped.
+- The highest score achieved is tracked and displayed as the high score.
+
+
+## **How to play? ๐น๏ธ**
+
+- just hit start and there you go.
+
+
+
+## **Screenshots ๐ธ**
+
+
+
+
+
+![Game image](https://github.com/kunjgit/GameZone/blob/main/assets/images/Aim_Training.png)
+
+
+
+
+
diff --git a/Games/Aim_Training/index.html b/Games/Aim_Training/index.html
index fe562d49dc..4f26a87fe7 100644
--- a/Games/Aim_Training/index.html
+++ b/Games/Aim_Training/index.html
@@ -1,28 +1,28 @@
-
-
-
-
-
-
- Aim training
- Aim training
+
-
-## **Description ๐**
-- A retro styled game testing your reflexes and precision on the keyboard. Your main aim is to shoot as many aliens as you can using the shooter given to you.
-
-
-## **functionalities ๐ฎ**
-- Easy to play
-- Scoring system so that you can compare points with your friends.
-- Responsive design for most of the monitors.
-
-
-## **How to play? ๐น๏ธ**
-- Your aim is to shoot as many aliens as possible.
-- The more you shoot the more they become and faster they approach.
-- But shooting 1 aliens gets you 100 points. When you shoot a certain set of aliens, you get bonus points for the same; that is 100 times the number of aliens you just shot.
-
-
-## **Screenshots ๐ธ**
-
-
-
-![Game image](../../assets/images/Alien_Shooter.png)
-
-
-
-## **Working video ๐น**
-
-
-
-https://github.com/singh-anushka/GameZone/assets/93376863/f75000d6-a34a-41b3-8c51-ac817022d576
-
+# **ALIEN_SHOOTERS**
+
+---
+
+
+
+## **Description ๐**
+- A retro styled game testing your reflexes and precision on the keyboard. Your main aim is to shoot as many aliens as you can using the shooter given to you.
+
+
+## **functionalities ๐ฎ**
+- Easy to play
+- Scoring system so that you can compare points with your friends.
+- Responsive design for most of the monitors.
+
+
+## **How to play? ๐น๏ธ**
+- Your aim is to shoot as many aliens as possible.
+- The more you shoot the more they become and faster they approach.
+- But shooting 1 aliens gets you 100 points. When you shoot a certain set of aliens, you get bonus points for the same; that is 100 times the number of aliens you just shot.
+
+
+## **Screenshots ๐ธ**
+
+
+
+![Game image](../../assets/images/Alien_Shooter.png)
+
+
+
+## **Working video ๐น**
+
+
+
+https://github.com/singh-anushka/GameZone/assets/93376863/f75000d6-a34a-41b3-8c51-ac817022d576
+
diff --git a/Games/Alien_Shooters/index.html b/Games/Alien_Shooters/index.html
index f0d19cd3cc..508b4b8a3f 100644
--- a/Games/Alien_Shooters/index.html
+++ b/Games/Alien_Shooters/index.html
@@ -1,42 +1,42 @@
-
-
-
-
-
- Alien Shooter
-
-
-
- Alien Shooter
+
+
+
+
-
-## **Description ๐**
-The project is designed to help children learn the alphabet in an interactive and engaging way.
-
--
-
-## **functionalities ๐ฎ**
-The project features a user interface that displays all the alphabets from A to Z, accompanied by corresponding images. When a child clicks on a specific alphabet or types a single alphabet, a corresponding sound is played. For example, if the child clicks on the letter 'A', a sound saying "A for apple" will be played.
-
-The purpose of this project is to provide a fun and educational tool for children to learn and familiarize themselves with the alphabet. By associating each letter with a visual representation and an auditory cue, it aims to enhance their understanding and retention of the alphabet.
--
-
-
-
-## **Screenshots ๐ธ**
-
-
-![image](https://github.com/Bindusree1515/GameZone/assets/91887086/986d713a-b1a0-41f1-9af4-193bca37397e)
-
-
-
+# **Alphabet**
+
+---
+
+
+
+## **Description ๐**
+The project is designed to help children learn the alphabet in an interactive and engaging way.
+
+-
+
+## **functionalities ๐ฎ**
+The project features a user interface that displays all the alphabets from A to Z, accompanied by corresponding images. When a child clicks on a specific alphabet or types a single alphabet, a corresponding sound is played. For example, if the child clicks on the letter 'A', a sound saying "A for apple" will be played.
+
+The purpose of this project is to provide a fun and educational tool for children to learn and familiarize themselves with the alphabet. By associating each letter with a visual representation and an auditory cue, it aims to enhance their understanding and retention of the alphabet.
+-
+
+
+
+## **Screenshots ๐ธ**
+
+
+![image](https://github.com/Bindusree1515/GameZone/assets/91887086/986d713a-b1a0-41f1-9af4-193bca37397e)
+
+
+
diff --git a/Games/Alphabet/index.html b/Games/Alphabet/index.html
index 9a2d92ec90..73e27071a7 100644
--- a/Games/Alphabet/index.html
+++ b/Games/Alphabet/index.html
@@ -1,52 +1,52 @@
-
-
- ALPHABET
- ALPHABET
+
-
-## **Description ๐**
-This game is like classical among us game.Player needs to find the imposter.
--
-
-
-
+# **Among Us Game**
+
+---
+
+
+
+## **Description ๐**
+This game is like classical among us game.Player needs to find the imposter.
+-
+
+
+
diff --git a/Games/Anime_Clicker/README.md b/Games/Anime_Clicker/README.md
index fe12363aea..f5e35c77c2 100644
--- a/Games/Anime_Clicker/README.md
+++ b/Games/Anime_Clicker/README.md
@@ -1,33 +1,33 @@
-# **Game_Name**
-
-Anime Clicker
-
-## **Description ๐**
-Frontend game developed using HTML, CSS, JavaScript. Player has to kill all the mosquitoes in a specific time
-
-## **functionalities ๐ฎ**
-- Player has to kill all the mosquitoes using the net provided.
-
-## **How to play? ๐น๏ธ**
-- There will different difficulty levels for playing the game
-- Player will be given a mosquito net
-- Player has to kill all the mosquitoes appearing on the screen consecutive order in specific time.
-
-## **Screenshots ๐ธ**
-
-![image](https://github.com/Bindusree1515/GameZone/assets/91887086/2bb6594c-d171-4a83-95f2-6e6f749d3aec)
-
-
-
-
-## **Working video ๐น**
-
-
-
-https://github.com/sujanrupu/GameZone/assets/103595490/97bf7cec-a269-4042-a19f-311fa76f53f6
-
-
-
-
-
-
+# **Game_Name**
+
+Anime Clicker
+
+## **Description ๐**
+Frontend game developed using HTML, CSS, JavaScript. Player has to kill all the mosquitoes in a specific time
+
+## **functionalities ๐ฎ**
+- Player has to kill all the mosquitoes using the net provided.
+
+## **How to play? ๐น๏ธ**
+- There will different difficulty levels for playing the game
+- Player will be given a mosquito net
+- Player has to kill all the mosquitoes appearing on the screen consecutive order in specific time.
+
+## **Screenshots ๐ธ**
+
+![image](https://github.com/Bindusree1515/GameZone/assets/91887086/2bb6594c-d171-4a83-95f2-6e6f749d3aec)
+
+
+
+
+## **Working video ๐น**
+
+
+
+https://github.com/sujanrupu/GameZone/assets/103595490/97bf7cec-a269-4042-a19f-311fa76f53f6
+
+
+
+
+
+
diff --git a/Games/Arcade_Game/README.md b/Games/Arcade_Game/README.md
index 0f3ca13de3..f328a76c76 100644
--- a/Games/Arcade_Game/README.md
+++ b/Games/Arcade_Game/README.md
@@ -1,36 +1,36 @@
-# **Arcade_Room**
-
----
-
-
-
-## **Description ๐**
-
-- A pure CSS game where the user controls a stack of blocks by clicking and dragging the mouse.
-
-## **functionalities ๐ฎ**
-
-- **Pure CSS game**: The game is entirely built using CSS, with no JavaScript required. This makes the game very lightweight and easy to load.
-- **Simple and easy to play**: The game is very simple to play, and it is easy to get started. The user just needs to click and drag the mouse to move the stack of blocks.
-- **Challenging**: The game can be challenging to play, and it can be difficult to stack the blocks as high as possible. This makes the game more rewarding to play.
-
-
-## **How to play? ๐น๏ธ**
-
-- Use the mouse to move the stack of blocks slowly and carefully.
-- Try to stack the blocks in a way that they support each other.
-- Avoid stacking the blocks too high, or they will fall off the screen.
-- If you see that the stack of blocks is about to fall, try to move it to a more stable position.
-
-
-
-## **Screenshots ๐ธ**
-
-
-
-![Image](Arcade_Game.png)
-
-
-
-## **Working video ๐น**
-
+# **Arcade_Room**
+
+---
+
+
+
+## **Description ๐**
+
+- A pure CSS game where the user controls a stack of blocks by clicking and dragging the mouse.
+
+## **functionalities ๐ฎ**
+
+- **Pure CSS game**: The game is entirely built using CSS, with no JavaScript required. This makes the game very lightweight and easy to load.
+- **Simple and easy to play**: The game is very simple to play, and it is easy to get started. The user just needs to click and drag the mouse to move the stack of blocks.
+- **Challenging**: The game can be challenging to play, and it can be difficult to stack the blocks as high as possible. This makes the game more rewarding to play.
+
+
+## **How to play? ๐น๏ธ**
+
+- Use the mouse to move the stack of blocks slowly and carefully.
+- Try to stack the blocks in a way that they support each other.
+- Avoid stacking the blocks too high, or they will fall off the screen.
+- If you see that the stack of blocks is about to fall, try to move it to a more stable position.
+
+
+
+## **Screenshots ๐ธ**
+
+
+
+![Image](Arcade_Game.png)
+
+
+
+## **Working video ๐น**
+
diff --git a/Games/Atari_breakout/README.md b/Games/Atari_breakout/README.md
index 48b3036c99..a2a1e1b2ff 100644
--- a/Games/Atari_breakout/README.md
+++ b/Games/Atari_breakout/README.md
@@ -1,31 +1,31 @@
-# **Atari Breakout**
----
-
-## **Description ๐**
-- This a fun game clone of a very popular game called as atari breakout. Not only being great recreational source, it also acts as a great way of increasing responsiveness and estimation capacity of the player.
-
-## **functionalities ๐ฎ**
-- to be played on desktop.
-
-
-## **How to play? ๐น๏ธ**
-- The game will start with ball at the center, and a total 3 game lives.
-- Your role is to use the paddle at the bottom and hit the ball, so that the ball hits and smashed the bricks on the top.
-- Try not to let the ball touch the ground; if happens so, then a one of the game lives will be reduced.
-- If all the game lives are exhausted, then you lose ๐.
-- If all the bricks are smashed the you Win!
-
-
-## **Screenshots ๐ธ**
-
-
-
-![image](../../assets/images/Atari_breakout.png)
-
-
-
-## **Working video ๐น**
-
-
-https://github.com/singh-anushka/GameZone/assets/93376863/cf2523db-0d97-4e17-93e5-cc465dc63847
-
+# **Atari Breakout**
+---
+
+## **Description ๐**
+- This a fun game clone of a very popular game called as atari breakout. Not only being great recreational source, it also acts as a great way of increasing responsiveness and estimation capacity of the player.
+
+## **functionalities ๐ฎ**
+- to be played on desktop.
+
+
+## **How to play? ๐น๏ธ**
+- The game will start with ball at the center, and a total 3 game lives.
+- Your role is to use the paddle at the bottom and hit the ball, so that the ball hits and smashed the bricks on the top.
+- Try not to let the ball touch the ground; if happens so, then a one of the game lives will be reduced.
+- If all the game lives are exhausted, then you lose ๐.
+- If all the bricks are smashed the you Win!
+
+
+## **Screenshots ๐ธ**
+
+
+
+![image](../../assets/images/Atari_breakout.png)
+
+
+
+## **Working video ๐น**
+
+
+https://github.com/singh-anushka/GameZone/assets/93376863/cf2523db-0d97-4e17-93e5-cc465dc63847
+
diff --git a/Games/Atari_breakout/index.html b/Games/Atari_breakout/index.html
index 760a807c08..eea09df2cb 100644
--- a/Games/Atari_breakout/index.html
+++ b/Games/Atari_breakout/index.html
@@ -1,21 +1,21 @@
-
-
-
-
-
-
- Atari Breakout
-
-
+
+
+
+
+
+
+ Atari Breakout
+
+
\ No newline at end of file
diff --git a/Games/Atari_breakout/script.js b/Games/Atari_breakout/script.js
index 0328d2c128..8030123ec8 100644
--- a/Games/Atari_breakout/script.js
+++ b/Games/Atari_breakout/script.js
@@ -1,256 +1,256 @@
-// height and width of the board
-let board;
-let boardHeight = 500;
-let boardWidth = 500;
-let context;
-
-//player
-let playerWidth = 80;
-let playerHeight = 10;
-let playerVelocityX = 20;
-
-let player = {
- x : (boardWidth - playerWidth)/2,
- y : (boardHeight - playerHeight) - 5,
- width : playerWidth,
- height : playerHeight,
- velocityX : playerVelocityX
-}
-
-//ball
-let ballWidth = 10;
-let ballHeight = 10;
-let ballVelocityX = 3;
-let ballVelocityY = 2;
-
-let ball = {
- x : boardWidth/2,
- y : boardHeight/2,
- width : ballWidth,
- height : ballHeight,
- velocityX : ballVelocityX,
- velocityY : ballVelocityY
-}
-
-//blocks
-let blockArray = [];
-let blockWidth = 50;
-let blockHeight = 10;
-let blockColumns = 8;
-let blockRows = 5;
-let blockCount = 0;
-
-let blockX = 15;
-let blockY = 45;
-
-let score = 0;
-let gameOver = false;
-
-//lives
-let livesImg = new Image();
-livesImg.src = "./assets/lives.png";
-let lives = 3;
-
-window.onload = function() {
- board = document.getElementById("board");
- board.height = boardHeight;
- board.width = boardWidth;
- context = board.getContext("2d"); //used for drawing on the board
-
- // draw the initial player
- context.fillStyle = "#FFED00";
- context.fillRect(player.x, player.y, player.width, player.height);
-
- requestAnimationFrame(update);
- document.addEventListener("keydown", movePlayer);
-
- createBlocks();
-}
-
-function update(){
- requestAnimationFrame(update);
- if(gameOver) return;
- context.clearRect(0, 0, board.width, board.height);
-
- //player
- context.fillStyle = "#FFED00";
- context.fillRect(player.x, player.y, player.width, player.height);
-
- //ball
- context.fillStyle = "#FF5F9E";
- ball.x += ball.velocityX;
- ball.y += ball.velocityY;
- context.fillRect(ball.x, ball.y, ball.width, ball.height);
-
-
- //bouncing ball
- // over wall
- if(ball.y <= 0 ){
- // if ball touches top
- ball.velocityY *= -1;
- }
- else if(ball.x <= 0 || ((ball.x + ball.width) >= boardWidth)){
- //if ball touches the sides
- ball.velocityX *= -1;
- }
- else if((ball.y + ball.height) >= boardHeight){
- context.font = "20px 'Play' ";
- lives--;
- if(lives == 0){
- context.fillStyle = "#39B5E0";
- context.fillText("Game Over: Press 'Space' to Restart", 85, 280);
- gameOver = true;
- }
- else{
- ball = {
- x : boardWidth/2,
- y : boardHeight/2,
- width : ballWidth,
- height : ballHeight,
- velocityX : ballVelocityX,
- velocityY : ballVelocityY
- }
- }
- }
-
- // over paddle
- if(topCollision(ball, player) || bottomCollision(ball, player)){
- ball.velocityY *= -1;
- }
- else if(leftCollision(ball, player) || rightCollision(ball, player)){
- ballVelocityX *= -1;
- }
-
- //blocks
- context.fillStyle = "#B3005E";
- for(let i=0; i< blockArray.length; i++){
- let block = blockArray[i];
- if(!block.break){
- if(topCollision(ball, block) || bottomCollision(ball, block)){
- block.break = true;
- ball.velocityY *= -1;
- blockCount -= 1;
- score += 100;
- }
- else if(leftCollision(ball, block) || rightCollision(ball, block)){
- block.break = true;
- ball.velocityX *= -1;
- blockCount -= 1;
- score += 100;
- }
- context.fillRect(block.x, block.y, block.width, block.height);
- }
- }
-
- //winning condition
- if(blockCount == 0){
- context.font = "20px 'Play' ";
- context.fillStyle = "#39B5E0";
- context.fillText("You Win!", 200, 200);
- context.fillText("Your final score is: ", 140, 230);
- context.fillText(score, 310, 230);
- context.fillText("Press 'Space' to Restart", 140, 260);
- gameOver = true;
- }
-
- //score
- context.font = "20px 'Play' ";
- context.fillStyle = "#39B5E0";
- context.fillText("Score: ", 10, 25);
- context.fillText(score, 75, 25);
-
- context.drawImage(livesImg, 430, 7, 35, 25);
- context.fillText(": ", 458, 24);
- context.fillText(lives, 468, 25);
-}
-
-function outOfBounds(xPosition){
- return ((xPosition < 0) || (xPosition + playerWidth > boardWidth));
-}
-
-function movePlayer(e){
- if(gameOver){
- if(e.code == "Space"){
- resetGame();
- }
- return;
- }
- if(e.code == "ArrowLeft"){
- // player.x -= player.velocityX;
- let nextPlayerX = player.x - player.velocityX;
- if(!outOfBounds(nextPlayerX)) player.x = nextPlayerX;
-
- }
- else if(e.code == "ArrowRight"){
- let nextPlayerX = player.x + player.velocityX;
- if(!outOfBounds(nextPlayerX)) player.x = nextPlayerX;
- }
-
-}
-
-function detectCollision(a, b){
- return a.x < b.x + b.width && //a's top left corner doesn't reach b's top right corner
- a.x + a.width > b.x && //a's top right corner passes b's top left corner
- a.y < b.y + b.height && //a's top left corner doesn't reach b's bottom left corner
- a.y + a.height > b.y; //a's bottom left corner passes b's top left corner
-}
-
-function topCollision(ball, block){ // a = ball and b = block
- return detectCollision(ball, block) && ((ball.y + ball.height) >= block.y);
-}
-
-function bottomCollision(ball, block){
- return detectCollision(ball, block) &&((block.y + block.height) >= ball.y);
-}
-
-function leftCollision(ball, block){
- return detectCollision(ball, block) && ((ball.x + ball.width) >= block.x);
-}
-
-function rightCollision(ball, block){
- return detectCollision(ball, block) && ((block.x + block.width) >= ball.x);
-}
-
-function createBlocks(){
- blockArray = [];
- for(let c = 0; c < blockColumns; c++){
- for(let r = 0; r < blockRows; r++){
- let block = {
- x : blockX + c*blockWidth + c*10,
- y : blockY + r*blockHeight + r*10,
- width : blockWidth,
- height : blockHeight,
- break : false
- }
- blockArray.push(block);
- }
- }
- blockCount = blockArray.length;
-
-}
-
-function resetGame(){
- gameOver = false;
- player = {
- x : (boardWidth - playerWidth)/2,
- y : (boardHeight - playerHeight) - 5,
- width : playerWidth,
- height : playerHeight,
- velocityX : playerVelocityX
- }
-
- ball = {
- x : boardWidth/2,
- y : boardHeight/2,
- width : ballWidth,
- height : ballHeight,
- velocityX : ballVelocityX,
- velocityY : ballVelocityY
- }
-
- blockArray = [];
- blockRows = 5;
- score = 0;
- lives = 3;
- createBlocks();
+// height and width of the board
+let board;
+let boardHeight = 500;
+let boardWidth = 500;
+let context;
+
+//player
+let playerWidth = 80;
+let playerHeight = 10;
+let playerVelocityX = 20;
+
+let player = {
+ x : (boardWidth - playerWidth)/2,
+ y : (boardHeight - playerHeight) - 5,
+ width : playerWidth,
+ height : playerHeight,
+ velocityX : playerVelocityX
+}
+
+//ball
+let ballWidth = 10;
+let ballHeight = 10;
+let ballVelocityX = 3;
+let ballVelocityY = 2;
+
+let ball = {
+ x : boardWidth/2,
+ y : boardHeight/2,
+ width : ballWidth,
+ height : ballHeight,
+ velocityX : ballVelocityX,
+ velocityY : ballVelocityY
+}
+
+//blocks
+let blockArray = [];
+let blockWidth = 50;
+let blockHeight = 10;
+let blockColumns = 8;
+let blockRows = 5;
+let blockCount = 0;
+
+let blockX = 15;
+let blockY = 45;
+
+let score = 0;
+let gameOver = false;
+
+//lives
+let livesImg = new Image();
+livesImg.src = "./assets/lives.png";
+let lives = 3;
+
+window.onload = function() {
+ board = document.getElementById("board");
+ board.height = boardHeight;
+ board.width = boardWidth;
+ context = board.getContext("2d"); //used for drawing on the board
+
+ // draw the initial player
+ context.fillStyle = "#FFED00";
+ context.fillRect(player.x, player.y, player.width, player.height);
+
+ requestAnimationFrame(update);
+ document.addEventListener("keydown", movePlayer);
+
+ createBlocks();
+}
+
+function update(){
+ requestAnimationFrame(update);
+ if(gameOver) return;
+ context.clearRect(0, 0, board.width, board.height);
+
+ //player
+ context.fillStyle = "#FFED00";
+ context.fillRect(player.x, player.y, player.width, player.height);
+
+ //ball
+ context.fillStyle = "#FF5F9E";
+ ball.x += ball.velocityX;
+ ball.y += ball.velocityY;
+ context.fillRect(ball.x, ball.y, ball.width, ball.height);
+
+
+ //bouncing ball
+ // over wall
+ if(ball.y <= 0 ){
+ // if ball touches top
+ ball.velocityY *= -1;
+ }
+ else if(ball.x <= 0 || ((ball.x + ball.width) >= boardWidth)){
+ //if ball touches the sides
+ ball.velocityX *= -1;
+ }
+ else if((ball.y + ball.height) >= boardHeight){
+ context.font = "20px 'Play' ";
+ lives--;
+ if(lives == 0){
+ context.fillStyle = "#39B5E0";
+ context.fillText("Game Over: Press 'Space' to Restart", 85, 280);
+ gameOver = true;
+ }
+ else{
+ ball = {
+ x : boardWidth/2,
+ y : boardHeight/2,
+ width : ballWidth,
+ height : ballHeight,
+ velocityX : ballVelocityX,
+ velocityY : ballVelocityY
+ }
+ }
+ }
+
+ // over paddle
+ if(topCollision(ball, player) || bottomCollision(ball, player)){
+ ball.velocityY *= -1;
+ }
+ else if(leftCollision(ball, player) || rightCollision(ball, player)){
+ ballVelocityX *= -1;
+ }
+
+ //blocks
+ context.fillStyle = "#B3005E";
+ for(let i=0; i< blockArray.length; i++){
+ let block = blockArray[i];
+ if(!block.break){
+ if(topCollision(ball, block) || bottomCollision(ball, block)){
+ block.break = true;
+ ball.velocityY *= -1;
+ blockCount -= 1;
+ score += 100;
+ }
+ else if(leftCollision(ball, block) || rightCollision(ball, block)){
+ block.break = true;
+ ball.velocityX *= -1;
+ blockCount -= 1;
+ score += 100;
+ }
+ context.fillRect(block.x, block.y, block.width, block.height);
+ }
+ }
+
+ //winning condition
+ if(blockCount == 0){
+ context.font = "20px 'Play' ";
+ context.fillStyle = "#39B5E0";
+ context.fillText("You Win!", 200, 200);
+ context.fillText("Your final score is: ", 140, 230);
+ context.fillText(score, 310, 230);
+ context.fillText("Press 'Space' to Restart", 140, 260);
+ gameOver = true;
+ }
+
+ //score
+ context.font = "20px 'Play' ";
+ context.fillStyle = "#39B5E0";
+ context.fillText("Score: ", 10, 25);
+ context.fillText(score, 75, 25);
+
+ context.drawImage(livesImg, 430, 7, 35, 25);
+ context.fillText(": ", 458, 24);
+ context.fillText(lives, 468, 25);
+}
+
+function outOfBounds(xPosition){
+ return ((xPosition < 0) || (xPosition + playerWidth > boardWidth));
+}
+
+function movePlayer(e){
+ if(gameOver){
+ if(e.code == "Space"){
+ resetGame();
+ }
+ return;
+ }
+ if(e.code == "ArrowLeft"){
+ // player.x -= player.velocityX;
+ let nextPlayerX = player.x - player.velocityX;
+ if(!outOfBounds(nextPlayerX)) player.x = nextPlayerX;
+
+ }
+ else if(e.code == "ArrowRight"){
+ let nextPlayerX = player.x + player.velocityX;
+ if(!outOfBounds(nextPlayerX)) player.x = nextPlayerX;
+ }
+
+}
+
+function detectCollision(a, b){
+ return a.x < b.x + b.width && //a's top left corner doesn't reach b's top right corner
+ a.x + a.width > b.x && //a's top right corner passes b's top left corner
+ a.y < b.y + b.height && //a's top left corner doesn't reach b's bottom left corner
+ a.y + a.height > b.y; //a's bottom left corner passes b's top left corner
+}
+
+function topCollision(ball, block){ // a = ball and b = block
+ return detectCollision(ball, block) && ((ball.y + ball.height) >= block.y);
+}
+
+function bottomCollision(ball, block){
+ return detectCollision(ball, block) &&((block.y + block.height) >= ball.y);
+}
+
+function leftCollision(ball, block){
+ return detectCollision(ball, block) && ((ball.x + ball.width) >= block.x);
+}
+
+function rightCollision(ball, block){
+ return detectCollision(ball, block) && ((block.x + block.width) >= ball.x);
+}
+
+function createBlocks(){
+ blockArray = [];
+ for(let c = 0; c < blockColumns; c++){
+ for(let r = 0; r < blockRows; r++){
+ let block = {
+ x : blockX + c*blockWidth + c*10,
+ y : blockY + r*blockHeight + r*10,
+ width : blockWidth,
+ height : blockHeight,
+ break : false
+ }
+ blockArray.push(block);
+ }
+ }
+ blockCount = blockArray.length;
+
+}
+
+function resetGame(){
+ gameOver = false;
+ player = {
+ x : (boardWidth - playerWidth)/2,
+ y : (boardHeight - playerHeight) - 5,
+ width : playerWidth,
+ height : playerHeight,
+ velocityX : playerVelocityX
+ }
+
+ ball = {
+ x : boardWidth/2,
+ y : boardHeight/2,
+ width : ballWidth,
+ height : ballHeight,
+ velocityX : ballVelocityX,
+ velocityY : ballVelocityY
+ }
+
+ blockArray = [];
+ blockRows = 5;
+ score = 0;
+ lives = 3;
+ createBlocks();
}
\ No newline at end of file
diff --git a/Games/Atari_breakout/styles.css b/Games/Atari_breakout/styles.css
index c8948e6a95..acdb5f14ae 100644
--- a/Games/Atari_breakout/styles.css
+++ b/Games/Atari_breakout/styles.css
@@ -1,22 +1,22 @@
-body{
- text-align: center;
- background-color: #191825;
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: space-around;
- height: 100vh;
- overflow: hidden;
-}
-h1{
- font-family: 'Press Start 2P', cursive;
- color: #865DFF;
- font-size: 45pt;
-}
-#board{
- background-color: black;
- border: 5px solid #0F6292;
- border-bottom: 0px;
- height: 600px;
- width: 600px;
+body{
+ text-align: center;
+ background-color: #191825;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: space-around;
+ height: 100vh;
+ overflow: hidden;
+}
+h1{
+ font-family: 'Press Start 2P', cursive;
+ color: #865DFF;
+ font-size: 45pt;
+}
+#board{
+ background-color: black;
+ border: 5px solid #0F6292;
+ border-bottom: 0px;
+ height: 600px;
+ width: 600px;
}
\ No newline at end of file
diff --git a/Games/Back_To_Space/index.html b/Games/Back_To_Space/index.html
index 054772191a..6de959d63b 100644
--- a/Games/Back_To_Space/index.html
+++ b/Games/Back_To_Space/index.html
@@ -1,62166 +1,62166 @@
-
-
-
-
-
-
-
-
-
-## **Description ๐**
-
-- The game is made using html and css only and is a simple shooting game.
-
-## **How to play? ๐น๏ธ**
-
-- We simply need to aim the cursor on the flying bird and click in order to shoot.
- The number of birds you aimed at reflects your score.
-
-
-## **Screenshots ๐ธ**
-
-
-
-![image](https://github.com/Bindusree1515/GameZone/assets/91887086/3c2ab8b5-5701-413a-9bf4-a0d4050a6e8c)
-
-
+# **Game_Name**
+Bird_game
+---
+
+
+## **Description ๐**
+
+- The game is made using html and css only and is a simple shooting game.
+
+## **How to play? ๐น๏ธ**
+
+- We simply need to aim the cursor on the flying bird and click in order to shoot.
+ The number of birds you aimed at reflects your score.
+
+
+## **Screenshots ๐ธ**
+
+
+
+![image](https://github.com/Bindusree1515/GameZone/assets/91887086/3c2ab8b5-5701-413a-9bf4-a0d4050a6e8c)
+
+
diff --git a/Games/Bird_game/index.css b/Games/Bird_game/index.css
index c6a2cede13..306582f089 100644
--- a/Games/Bird_game/index.css
+++ b/Games/Bird_game/index.css
@@ -1,244 +1,244 @@
-body{
- counter-reset:birds;
- -webkit-touch-callout: none;
--webkit-user-select: none;
--khtml-user-select: none;
--moz-user-select: none;
--ms-user-select: none;
-user-select: none;
- overflow:hidden;
-}
-/*hide checkbox*/
-input{position:fixed; left:-10px; top:-10px;}
-
-h1{margin:0; text-align:center;}
-h2{position:fixed; right:20px; bottom:0; font-size:18px; color:red;}
-
-/*play area*/
-.wrapper{
- height:100%;
- background: -webkit-linear-gradient(top, rgb(89, 53, 221) 0%,rgb(143, 224, 245) 100%);
- position:relative;
- cursor:crosshair;
-}
-/*count dead birds*/
-.input-circle:checked{
- counter-increment:birds;
-}
-
-.sum{position:fixed; left:45%; top:60px; font-size:24px; font-weight:bold;}
-
-/*print to screen dead birds*/
-.sum:after{
- content: counter(birds);
-}
-
-.input-circle ~ .pajaro{
- opacity:0;
- transition:0.3s cubic-bezier(0,.43,1,0);
- animation: move 8s infinite alternate;
-}
-.input-circle1:not(:checked) ~ .pajaro1,
-.input-circle2:not(:checked) ~ .pajaro2,
-.input-circle3:not(:checked) ~ .pajaro3,
-.input-circle4:not(:checked) ~ .pajaro4,
-.input-circle5:not(:checked) ~ .pajaro5,
-.input-circle6:not(:checked) ~ .pajaro6
-{
- opacity:1;
-}
-
-
-.input-circle1:checked ~ .pajaro1 span,
-.input-circle2:checked ~ .pajaro2 span,
-.input-circle3:checked ~ .pajaro3 span,
-.input-circle4:checked ~ .pajaro4 span,
-.input-circle5:checked ~ .pajaro5 span,
-.input-circle6:checked ~ .pajaro6 span
-{
- display:block;
-
-}
-
-.pajaro{
- position:absolute;
- left:0;
- cursor:crosshair;
-}
-.pajaro>span{
- display:none;position:absolute; z-index:2; left:-250%;bottom:-50%;
- background-color:rgb(143, 224, 245) ; border:solid 2px #000; width:80px; height:30px; padding:10px; border-radius:50%;
-}
-.pajaro>span:before{
- content:"I'm Dead!"; color:rgb(15, 15, 15); font-weight:bold;
-}
-
-.pajaro1{top:50px;
- animation-delay: -2s!important;
- transform:scale(0.9);
-}
-.pajaro2{
- top:100px;
- animation-delay: -1s!important;
- transform:scale(0.8);
-}
-.pajaro3{
- top:200px;
- animation-delay: -3s!important;
- transform:scale(1.4);
-}
-
-.pajaro4{top:50px;
- animation-delay: -12s!important;
- transform:scale(0.9);
-}
-.pajaro5{
- top:100px;
- animation-delay: -16s!important;
- transform:scale(0.5);
-}
-.pajaro6{
- top:200px;
- animation-delay: -20s!important;
- transform:scale(1.4);
-}
-
-@keyframes move{
-0%{left:0%;}
-20%{left:20%;top:50%; }
-40%{top:30%; left:60%;}
-60%{top:80%;left:80%;}
-80%{top:10%; left:20%;}
-100%{top:30%; left:20%; }
-}
-
-
-.timer{
- background-color:#333; width:300px;height:50px;
- position:fixed;
-}
-
-
-.timer span{
- display:block;
- background:repeating-linear-gradient(-45deg, #000, rgba(0, 0, 0, 0) 25px, #FFF 25px, #FFF 50px);
- width:300px; height:50px;
- animation:timer 20s linear;
-}
-
-.timer span:before{
- content:"TIME LEFT";
- display:block;
- position:absolute; z-index:3;
- left:0;
- right:0;
- top:0;
- bottom:0;
- text-align:center;
- line-height:50px;
- font-size:25px;
- color:rgb(8, 8, 8);
-}
-@keyframes timer{
-0%{width:10px;}
-100%{width:300px; display:block;}
-}
-
-
-.gameover{
- position:fixed; z-index:100000; left:0; top:0; bottom:0; right:0; background-color:rgba(0,0,0,0.8);
- animation:gameover 20s linear forwards;
- font-size:80px; color:rgb(240, 235, 235); font-weight:bold; text-align:center;
- text-indent:0;
- line-height:500px;
-}
-
-@keyframes gameover{
-0%{left:-5000px;bottom:100%;}
-97%{left:-5000px;bottom:100%;}
-100%{ left:0px;}
-}
-
-footer{position:fixed; left:0; bottom:0; padding:10px 20px;}
-footer svg{vertical-align:middle;}
-footer a{text-decoration:none; font-size:20px; color:rgb(92, 172, 221); vertical-align:middle;}
-
-
-
-
-/*------------------------------------------------------ body of the bird
-*/
-
-.pajaro{
- background:black;
- border-radius: 50% 50% 20% 20%;
- color:white;
- line-height:20px;
- letter-spacing: 2px;
- font-size:0.8em;
- text-align:center;
- position:absolute;
-
- margin-top:-20px; margin-left:-10px;
- width:15px; height:15px;
- animation:planeo 0.8s linear infinite;
- z-index:999;
-}
-
-.pajaro:after,
-.pajaro:before{
- content:"";
- position:absolute;
- top:50%; left:50%;
-}
-
-/*------------------------------------------------------ bird wings
-*/
-
-.pajaro:after{
- border-radius: 100% 100% 0 0;
- box-shadow: inset 0px 5px 0 black;
- width:100px; height:100px;
- margin-top:-7px; margin-left:-50px;
- transform-origin: 100% 0%;
- animation:alas 3s linear infinite;
-}
-
-/*------------------------------------------------------ bird beak
-*/
-
-.pajaro:before{
- background:#2edb62;
- border-radius: 100% 0% 20% 0%;
- margin-top:3px; margin-left:-4px;
- width:6px; height:6px;
- transform:rotateZ(45deg);
-}
-
-/*------------------------------------------------------ wings animation
-*/
-
-@keyframes alas {
- 50%{
- transform:rotateX(-1440deg);
- }
-}
-
-/*------------------------------------------------------ bird animation
-*/
-
-@keyframes planeo {
- 40%{
- transform:rotateZ(2deg) translateX(2px) translateY(10px) translateZ(0);
- line-height:16px;
- font-size:0.6em;
- }
- 80%{
- transform:rotateZ(-2deg) translateX(5px) translateY(8px) translateZ(0);
- }
-}
-
-
-
-
-
+body{
+ counter-reset:birds;
+ -webkit-touch-callout: none;
+-webkit-user-select: none;
+-khtml-user-select: none;
+-moz-user-select: none;
+-ms-user-select: none;
+user-select: none;
+ overflow:hidden;
+}
+/*hide checkbox*/
+input{position:fixed; left:-10px; top:-10px;}
+
+h1{margin:0; text-align:center;}
+h2{position:fixed; right:20px; bottom:0; font-size:18px; color:red;}
+
+/*play area*/
+.wrapper{
+ height:100%;
+ background: -webkit-linear-gradient(top, rgb(89, 53, 221) 0%,rgb(143, 224, 245) 100%);
+ position:relative;
+ cursor:crosshair;
+}
+/*count dead birds*/
+.input-circle:checked{
+ counter-increment:birds;
+}
+
+.sum{position:fixed; left:45%; top:60px; font-size:24px; font-weight:bold;}
+
+/*print to screen dead birds*/
+.sum:after{
+ content: counter(birds);
+}
+
+.input-circle ~ .pajaro{
+ opacity:0;
+ transition:0.3s cubic-bezier(0,.43,1,0);
+ animation: move 8s infinite alternate;
+}
+.input-circle1:not(:checked) ~ .pajaro1,
+.input-circle2:not(:checked) ~ .pajaro2,
+.input-circle3:not(:checked) ~ .pajaro3,
+.input-circle4:not(:checked) ~ .pajaro4,
+.input-circle5:not(:checked) ~ .pajaro5,
+.input-circle6:not(:checked) ~ .pajaro6
+{
+ opacity:1;
+}
+
+
+.input-circle1:checked ~ .pajaro1 span,
+.input-circle2:checked ~ .pajaro2 span,
+.input-circle3:checked ~ .pajaro3 span,
+.input-circle4:checked ~ .pajaro4 span,
+.input-circle5:checked ~ .pajaro5 span,
+.input-circle6:checked ~ .pajaro6 span
+{
+ display:block;
+
+}
+
+.pajaro{
+ position:absolute;
+ left:0;
+ cursor:crosshair;
+}
+.pajaro>span{
+ display:none;position:absolute; z-index:2; left:-250%;bottom:-50%;
+ background-color:rgb(143, 224, 245) ; border:solid 2px #000; width:80px; height:30px; padding:10px; border-radius:50%;
+}
+.pajaro>span:before{
+ content:"I'm Dead!"; color:rgb(15, 15, 15); font-weight:bold;
+}
+
+.pajaro1{top:50px;
+ animation-delay: -2s!important;
+ transform:scale(0.9);
+}
+.pajaro2{
+ top:100px;
+ animation-delay: -1s!important;
+ transform:scale(0.8);
+}
+.pajaro3{
+ top:200px;
+ animation-delay: -3s!important;
+ transform:scale(1.4);
+}
+
+.pajaro4{top:50px;
+ animation-delay: -12s!important;
+ transform:scale(0.9);
+}
+.pajaro5{
+ top:100px;
+ animation-delay: -16s!important;
+ transform:scale(0.5);
+}
+.pajaro6{
+ top:200px;
+ animation-delay: -20s!important;
+ transform:scale(1.4);
+}
+
+@keyframes move{
+0%{left:0%;}
+20%{left:20%;top:50%; }
+40%{top:30%; left:60%;}
+60%{top:80%;left:80%;}
+80%{top:10%; left:20%;}
+100%{top:30%; left:20%; }
+}
+
+
+.timer{
+ background-color:#333; width:300px;height:50px;
+ position:fixed;
+}
+
+
+.timer span{
+ display:block;
+ background:repeating-linear-gradient(-45deg, #000, rgba(0, 0, 0, 0) 25px, #FFF 25px, #FFF 50px);
+ width:300px; height:50px;
+ animation:timer 20s linear;
+}
+
+.timer span:before{
+ content:"TIME LEFT";
+ display:block;
+ position:absolute; z-index:3;
+ left:0;
+ right:0;
+ top:0;
+ bottom:0;
+ text-align:center;
+ line-height:50px;
+ font-size:25px;
+ color:rgb(8, 8, 8);
+}
+@keyframes timer{
+0%{width:10px;}
+100%{width:300px; display:block;}
+}
+
+
+.gameover{
+ position:fixed; z-index:100000; left:0; top:0; bottom:0; right:0; background-color:rgba(0,0,0,0.8);
+ animation:gameover 20s linear forwards;
+ font-size:80px; color:rgb(240, 235, 235); font-weight:bold; text-align:center;
+ text-indent:0;
+ line-height:500px;
+}
+
+@keyframes gameover{
+0%{left:-5000px;bottom:100%;}
+97%{left:-5000px;bottom:100%;}
+100%{ left:0px;}
+}
+
+footer{position:fixed; left:0; bottom:0; padding:10px 20px;}
+footer svg{vertical-align:middle;}
+footer a{text-decoration:none; font-size:20px; color:rgb(92, 172, 221); vertical-align:middle;}
+
+
+
+
+/*------------------------------------------------------ body of the bird
+*/
+
+.pajaro{
+ background:black;
+ border-radius: 50% 50% 20% 20%;
+ color:white;
+ line-height:20px;
+ letter-spacing: 2px;
+ font-size:0.8em;
+ text-align:center;
+ position:absolute;
+
+ margin-top:-20px; margin-left:-10px;
+ width:15px; height:15px;
+ animation:planeo 0.8s linear infinite;
+ z-index:999;
+}
+
+.pajaro:after,
+.pajaro:before{
+ content:"";
+ position:absolute;
+ top:50%; left:50%;
+}
+
+/*------------------------------------------------------ bird wings
+*/
+
+.pajaro:after{
+ border-radius: 100% 100% 0 0;
+ box-shadow: inset 0px 5px 0 black;
+ width:100px; height:100px;
+ margin-top:-7px; margin-left:-50px;
+ transform-origin: 100% 0%;
+ animation:alas 3s linear infinite;
+}
+
+/*------------------------------------------------------ bird beak
+*/
+
+.pajaro:before{
+ background:#2edb62;
+ border-radius: 100% 0% 20% 0%;
+ margin-top:3px; margin-left:-4px;
+ width:6px; height:6px;
+ transform:rotateZ(45deg);
+}
+
+/*------------------------------------------------------ wings animation
+*/
+
+@keyframes alas {
+ 50%{
+ transform:rotateX(-1440deg);
+ }
+}
+
+/*------------------------------------------------------ bird animation
+*/
+
+@keyframes planeo {
+ 40%{
+ transform:rotateZ(2deg) translateX(2px) translateY(10px) translateZ(0);
+ line-height:16px;
+ font-size:0.6em;
+ }
+ 80%{
+ transform:rotateZ(-2deg) translateX(5px) translateY(8px) translateZ(0);
+ }
+}
+
+
+
+
+
diff --git a/Games/Bit_Maze_Platformer_Maze/README.md b/Games/Bit_Maze_Platformer_Maze/README.md
index 7d695358c9..053177adc7 100644
--- a/Games/Bit_Maze_Platformer_Maze/README.md
+++ b/Games/Bit_Maze_Platformer_Maze/README.md
@@ -1,39 +1,39 @@
-# **Bit Maze - Platformer Maze**
-
----
-
-
-
-## **Description ๐**
-
-- "Bit Maze - Platformer Maze" is a game that combines elements of a platformer and a maze. The goal of the game is to navigate a character through a series of mazes and reach the exit point while avoiding obstacles and collecting coins along the way.
-
-## **functionalities ๐ฎ**
-
-- **Platformer gameplay**: The game incorporates the mechanics of a platformer, requiring the player to control a character's movements and jumps.
-- **Arrow key controls**: The character can be moved left and right using the arrow keys on the keyboard, providing a simple and intuitive control scheme.
-- **Jumping ability**: The character can jump to overcome gaps and avoid obstacles, adding an extra dimension to the gameplay.
-- **Obstacles and hazards**: The mazes contain hazards such as spikes and moving platforms that must be avoided to progress safely.
-
-
-## **How to play? ๐น๏ธ**
-
-- The character can move left, right, and jump using the arrow keys on your keyboard.
-- Use the arrow keys to guide the character through the maze, avoiding obstacles such as spikes and moving platforms.
-- The objective is to reach the exit point, which is usually indicated by a door or another distinctive object.
-- Be careful not to fall into pits or touch dangerous objects, as it will result in losing a life.
-
-
-
-## **Screenshots ๐ธ**
-
-
-
-
-![image](https://github.com/Bindusree1515/GameZone/assets/91887086/2c507b12-d208-4784-9253-c9a2c57e1104)
-
-
-
-
-## **Working video ๐น**
-
+# **Bit Maze - Platformer Maze**
+
+---
+
+
+
+## **Description ๐**
+
+- "Bit Maze - Platformer Maze" is a game that combines elements of a platformer and a maze. The goal of the game is to navigate a character through a series of mazes and reach the exit point while avoiding obstacles and collecting coins along the way.
+
+## **functionalities ๐ฎ**
+
+- **Platformer gameplay**: The game incorporates the mechanics of a platformer, requiring the player to control a character's movements and jumps.
+- **Arrow key controls**: The character can be moved left and right using the arrow keys on the keyboard, providing a simple and intuitive control scheme.
+- **Jumping ability**: The character can jump to overcome gaps and avoid obstacles, adding an extra dimension to the gameplay.
+- **Obstacles and hazards**: The mazes contain hazards such as spikes and moving platforms that must be avoided to progress safely.
+
+
+## **How to play? ๐น๏ธ**
+
+- The character can move left, right, and jump using the arrow keys on your keyboard.
+- Use the arrow keys to guide the character through the maze, avoiding obstacles such as spikes and moving platforms.
+- The objective is to reach the exit point, which is usually indicated by a door or another distinctive object.
+- Be careful not to fall into pits or touch dangerous objects, as it will result in losing a life.
+
+
+
+## **Screenshots ๐ธ**
+
+
+
+
+![image](https://github.com/Bindusree1515/GameZone/assets/91887086/2c507b12-d208-4784-9253-c9a2c57e1104)
+
+
+
+
+## **Working video ๐น**
+
diff --git a/Games/Black_Jack/README.md b/Games/Black_Jack/README.md
index bc85d4d4f4..dc27cf6df7 100644
--- a/Games/Black_Jack/README.md
+++ b/Games/Black_Jack/README.md
@@ -1,15 +1,15 @@
-# BlackJackJs
-Black jack game made in Javascript with CreateJs
-
-# Screenshot
-
-![Game](
-
-## **Screenshots ๐ธ**
-![Block_Buster](https://github.com/sujanrupu/GameZone/assets/103595490/77b14d70-3225-4249-a3a5-1e2b8b480eec)
-
-
-
-## **Working video ๐น**
-
-
-https://github.com/sujanrupu/GameZone/assets/103595490/65589784-129f-4064-a5b7-be39d021d47c
-
-
-
-
-
-
-
+# **Game_Name**
+
+Block Buster
+
+## **Description ๐**
+
+Block buster game is a frontend game developed using HTML, CSS, JavaScript.
+The player will get points according to the number of successful hits in a specific time.
+## **functionalities ๐ฎ**
+The player will get points acccording to the number of successful hits, to make tghe successful hits the player has to move the reflector.
+
+## **How to play? ๐น๏ธ**
+- There will be a throwable object and some targets
+- The player has to throw the object to the targets
+- The player will get points according to the number of successful hits
+
+
+
+## **Screenshots ๐ธ**
+![Block_Buster](https://github.com/sujanrupu/GameZone/assets/103595490/77b14d70-3225-4249-a3a5-1e2b8b480eec)
+
+
+
+## **Working video ๐น**
+
+
+https://github.com/sujanrupu/GameZone/assets/103595490/65589784-129f-4064-a5b7-be39d021d47c
+
+
+
+
+
+
+
diff --git a/Games/Bow_And_Arrow/README.md b/Games/Bow_And_Arrow/README.md
index 02d8e5e02c..49d6728a9a 100644
--- a/Games/Bow_And_Arrow/README.md
+++ b/Games/Bow_And_Arrow/README.md
@@ -1,11 +1,11 @@
-# Bow And Arrow Game
-This is a Bow And Arrow Game made using HTML, CSS and Javascript
-
-# How To Play?
-- Click Start to play.
-- Mouse Click or press any key to fire the arrow!
-- Goal: Hit the Target as many times as you can for the highest score.
-
-# Preview
-![arrow](https://github.com/5h0ov/GameZone/assets/83227649/f158b505-5ab9-4615-8452-1a6f1307aaae)
-
+# Bow And Arrow Game
+This is a Bow And Arrow Game made using HTML, CSS and Javascript
+
+# How To Play?
+- Click Start to play.
+- Mouse Click or press any key to fire the arrow!
+- Goal: Hit the Target as many times as you can for the highest score.
+
+# Preview
+![arrow](https://github.com/5h0ov/GameZone/assets/83227649/f158b505-5ab9-4615-8452-1a6f1307aaae)
+
diff --git a/Games/Bow_And_Arrow/index.html b/Games/Bow_And_Arrow/index.html
index b5c1a7d86b..5bcc0609ce 100644
--- a/Games/Bow_And_Arrow/index.html
+++ b/Games/Bow_And_Arrow/index.html
@@ -1,25 +1,25 @@
-
-
-
- 0
- BOW
-
-
AND
ARROW0
-
Best0
+ BOW
+
+
AND
ARROW0
+
Best
"+totalScore;
- if(bestScore < totalScore){
- bestScore = totalScore;
- try{
- highScoreSound.play().catch(function(e){});
- }catch(err){
- }
- }
- document.getElementById("score").innerHTML = 0;
- document.getElementById("best").innerHTML = bestScore;
- }
-
- }
- else {
- this.x += this.dx;
- }
- }
- else {
- this.x += this.dx;
- }
- }
- }
- }
- else {
- ctx.fillRect(rope.x,arc.y-3,10,6);
- ctx.fillRect(rope.x,arc.y-1,this.w,2);
- ctx.beginPath();
- ctx.moveTo(rope.x+this.w,arc.y-4);
- ctx.lineTo(rope.x+this.w+12,arc.y);
- ctx.lineTo(rope.x+this.w,arc.y+4);
- ctx.fill();
- }
- }
- }
-
- // Arrow Move With Board
-
- Arrow.prototype.moveArrowWithBoard = function(dir) {
- if(this == arrow1){
- arrow1.fy += board.dy*dir;
- }
- else {
- arrow2.fy += board.dy*dir;
- }
- }
-
-
-
-
- var arrow1 = new Arrow();
- var arrow2 = new Arrow();
-
- var arrows = 0;
- var moveArrowCheck = false;
- var score = 0;
-
- // Drawing functions...
-
- function drawArc() {
- ctx.beginPath();
- ctx.arc(arc.x,arc.y,arc.r,arc.start,arc.end);
- ctx.strokeStyle = arc.color;
- ctx.lineWidth = arc.lw;
- ctx.stroke();
- ctx.closePath();
- }
-
- function drawRope() {
- ctx.beginPath();
- ctx.moveTo(arc.x,arc.y-arc.r);
- if(arrow1.vis && arrow2.vis){
- ctx.lineTo(rope.x,arc.y);
- }
- ctx.lineTo(arc.x,arc.y+arc.r);
- ctx.lineWidth = rope.lw;
- ctx.strokeStyle = rope.color;
- ctx.stroke();
- ctx.closePath();
- }
-
- // Moving function...
-
- function move () {
- ctx.clearRect(0,0,w,h);
- if(arc.y>h-50 || arc.y<50){
- arc.dy*=-1;
- }
- arc.y+=arc.dy;
- }
-
- function shoot(){
- if(arrow1.vis && arrow2.vis && arrows != -1){
- moveArrowCheck = true;
- if(arrows%2===0){
- arrow1.status = true;
- arrow1.fy = arc.y;
- arrow2.status = false;
- arrow2.x = rope.x;
- arrow2.vis = false;
- }
- else{
- arrow1.status = false;
- arrow2.fy = arc.y;
- arrow2.status = true;
- arrow1.x = rope.x;
- arrow1.vis = false;
- }
- totalArr--;
- try{
- shootSound.play().catch(function(e){});
- }catch(err){}
- }
- arrows++;
- }
-
- document.getElementById("animCanvas").addEventListener("click",shoot);
- document.body.addEventListener("keydown",shoot);
-
- var intv = setInterval(function(){
- move();
- drawArc();
- drawRope();
- arrow1.drawArrow();
- arrow2.drawArrow();
- drawBoard();
- },15)
- }
- }
-
+window.onload = function(){
+ String.prototype.repeat = String.prototype.repeat ||
+ function(c){
+ var r= '';
+ for(var i=0; i
"+totalScore;
+ if(bestScore < totalScore){
+ bestScore = totalScore;
+ try{
+ highScoreSound.play().catch(function(e){});
+ }catch(err){
+ }
+ }
+ document.getElementById("score").innerHTML = 0;
+ document.getElementById("best").innerHTML = bestScore;
+ }
+
+ }
+ else {
+ this.x += this.dx;
+ }
+ }
+ else {
+ this.x += this.dx;
+ }
+ }
+ }
+ }
+ else {
+ ctx.fillRect(rope.x,arc.y-3,10,6);
+ ctx.fillRect(rope.x,arc.y-1,this.w,2);
+ ctx.beginPath();
+ ctx.moveTo(rope.x+this.w,arc.y-4);
+ ctx.lineTo(rope.x+this.w+12,arc.y);
+ ctx.lineTo(rope.x+this.w,arc.y+4);
+ ctx.fill();
+ }
+ }
+ }
+
+ // Arrow Move With Board
+
+ Arrow.prototype.moveArrowWithBoard = function(dir) {
+ if(this == arrow1){
+ arrow1.fy += board.dy*dir;
+ }
+ else {
+ arrow2.fy += board.dy*dir;
+ }
+ }
+
+
+
+
+ var arrow1 = new Arrow();
+ var arrow2 = new Arrow();
+
+ var arrows = 0;
+ var moveArrowCheck = false;
+ var score = 0;
+
+ // Drawing functions...
+
+ function drawArc() {
+ ctx.beginPath();
+ ctx.arc(arc.x,arc.y,arc.r,arc.start,arc.end);
+ ctx.strokeStyle = arc.color;
+ ctx.lineWidth = arc.lw;
+ ctx.stroke();
+ ctx.closePath();
+ }
+
+ function drawRope() {
+ ctx.beginPath();
+ ctx.moveTo(arc.x,arc.y-arc.r);
+ if(arrow1.vis && arrow2.vis){
+ ctx.lineTo(rope.x,arc.y);
+ }
+ ctx.lineTo(arc.x,arc.y+arc.r);
+ ctx.lineWidth = rope.lw;
+ ctx.strokeStyle = rope.color;
+ ctx.stroke();
+ ctx.closePath();
+ }
+
+ // Moving function...
+
+ function move () {
+ ctx.clearRect(0,0,w,h);
+ if(arc.y>h-50 || arc.y<50){
+ arc.dy*=-1;
+ }
+ arc.y+=arc.dy;
+ }
+
+ function shoot(){
+ if(arrow1.vis && arrow2.vis && arrows != -1){
+ moveArrowCheck = true;
+ if(arrows%2===0){
+ arrow1.status = true;
+ arrow1.fy = arc.y;
+ arrow2.status = false;
+ arrow2.x = rope.x;
+ arrow2.vis = false;
+ }
+ else{
+ arrow1.status = false;
+ arrow2.fy = arc.y;
+ arrow2.status = true;
+ arrow1.x = rope.x;
+ arrow1.vis = false;
+ }
+ totalArr--;
+ try{
+ shootSound.play().catch(function(e){});
+ }catch(err){}
+ }
+ arrows++;
+ }
+
+ document.getElementById("animCanvas").addEventListener("click",shoot);
+ document.body.addEventListener("keydown",shoot);
+
+ var intv = setInterval(function(){
+ move();
+ drawArc();
+ drawRope();
+ arrow1.drawArrow();
+ arrow2.drawArrow();
+ drawBoard();
+ },15)
+ }
+ }
+
\ No newline at end of file
diff --git a/Games/Bow_And_Arrow/styles.css b/Games/Bow_And_Arrow/styles.css
index 4ba6b93432..0f1a4422a4 100644
--- a/Games/Bow_And_Arrow/styles.css
+++ b/Games/Bow_And_Arrow/styles.css
@@ -1,96 +1,96 @@
-body {
- margin: 0;
- font-family: monospace;
- text-align: center;
- height: 100vh;
- width: 100vw;
- background-image: url("https://www.freepik.com/free-vector/detailed-abstract-white-background_16139729.htm");
- background-size: cover;
- }
-
- #mainContainer {
- transform-origin: 0% 0%;
- position: absolute;
- width: 100%;
- top: 0;
- left: 0;
- }
-
- #score {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- text-align: center;
- font-size: 60px;
- font-weight: 900;
- color: #00000099;
- }
-
- #showPoint {
- position: absolute;
- top: 0;
- left: 0;
- background: transparent;
- margin: 0;
- }
-
- #showPoint .u {
- position: absolute;
- display: inline-block;
- top: 50%;
- left: 70%;
- font-size: 30px;
- font-family: arial;
- opacity: 0;
- transition: top 0.1s linear, left 0.1s linear;
- }
-
- #animCanvas {
- position: absolute;
- top: 0;
- left: 0;
- z-index: 100;
- border-bottom: 1px solid blue;
- }
-
- #arrs {
- font-size: 30px;
- text-align: left;
- position: absolute;
- margin: 0;
- top: 0;
- padding-left: 10px;
- }
-
- #startMenu {
- position: absolute;
- top: 0;
- left: 0;
- background: #fff;
- z-index: 1000;
- width: 100%;
- height: 100%;
- }
-
- #startMenu h1 {
- font-size: 50px;
- text-shadow: 2px 3px #aaa;
- font-weight: 900;
- }
-
- #startMenu button {
- font-size: 22px;
- background: none;
- border: none;
- border-top: 3px solid #000;
- border-bottom: 3px solid #000;
- padding: 10px 30px 5px;
- line-height: 20px;
- outline: none;
- }
-
- #startMenu h2 {
- font-size: 25px;
- }
+body {
+ margin: 0;
+ font-family: monospace;
+ text-align: center;
+ height: 100vh;
+ width: 100vw;
+ background-image: url("https://www.freepik.com/free-vector/detailed-abstract-white-background_16139729.htm");
+ background-size: cover;
+ }
+
+ #mainContainer {
+ transform-origin: 0% 0%;
+ position: absolute;
+ width: 100%;
+ top: 0;
+ left: 0;
+ }
+
+ #score {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ text-align: center;
+ font-size: 60px;
+ font-weight: 900;
+ color: #00000099;
+ }
+
+ #showPoint {
+ position: absolute;
+ top: 0;
+ left: 0;
+ background: transparent;
+ margin: 0;
+ }
+
+ #showPoint .u {
+ position: absolute;
+ display: inline-block;
+ top: 50%;
+ left: 70%;
+ font-size: 30px;
+ font-family: arial;
+ opacity: 0;
+ transition: top 0.1s linear, left 0.1s linear;
+ }
+
+ #animCanvas {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 100;
+ border-bottom: 1px solid blue;
+ }
+
+ #arrs {
+ font-size: 30px;
+ text-align: left;
+ position: absolute;
+ margin: 0;
+ top: 0;
+ padding-left: 10px;
+ }
+
+ #startMenu {
+ position: absolute;
+ top: 0;
+ left: 0;
+ background: #fff;
+ z-index: 1000;
+ width: 100%;
+ height: 100%;
+ }
+
+ #startMenu h1 {
+ font-size: 50px;
+ text-shadow: 2px 3px #aaa;
+ font-weight: 900;
+ }
+
+ #startMenu button {
+ font-size: 22px;
+ background: none;
+ border: none;
+ border-top: 3px solid #000;
+ border-bottom: 3px solid #000;
+ padding: 10px 30px 5px;
+ line-height: 20px;
+ outline: none;
+ }
+
+ #startMenu h2 {
+ font-size: 25px;
+ }
\ No newline at end of file
diff --git a/Games/Bow_Arrow/README.md b/Games/Bow_Arrow/README.md
index a89df59364..5410144d7d 100644
--- a/Games/Bow_Arrow/README.md
+++ b/Games/Bow_Arrow/README.md
@@ -1,37 +1,37 @@
-# **Game_Name**
-
- Bow_And_Arrow Game
-
-
-
-## **Description ๐**
-
-- Objective is to Shoot monsters and save birds.
-
-## **functionalities ๐ฎ**
-
-- Bow_And_Arrow is a game implemented using HTML, CSS, and JavaScript. The game is to shoot monsters and save birds.
-
-
-## **How to play? ๐น๏ธ**
-
-- Start the game
-- Move the man with Arrow Keys
-- Shoot arrow with Space Bar
-- +1 for hitting monsters
-- -5 if monsters reaches birds
-- Game Over if score<0
-- Monsters speed increases each level.
-
-
-
-## **Screenshots ๐ธ**
-
-
-
-
-
-
-
-
-
+# **Game_Name**
+
+ Bow_And_Arrow Game
+
+
+
+## **Description ๐**
+
+- Objective is to Shoot monsters and save birds.
+
+## **functionalities ๐ฎ**
+
+- Bow_And_Arrow is a game implemented using HTML, CSS, and JavaScript. The game is to shoot monsters and save birds.
+
+
+## **How to play? ๐น๏ธ**
+
+- Start the game
+- Move the man with Arrow Keys
+- Shoot arrow with Space Bar
+- +1 for hitting monsters
+- -5 if monsters reaches birds
+- Game Over if score<0
+- Monsters speed increases each level.
+
+
+
+## **Screenshots ๐ธ**
+
+
+
+
+
+
+
+
+
diff --git a/Games/Bow_Arrow/game.html b/Games/Bow_Arrow/game.html
index 6705748b2a..eb33a2c37c 100644
--- a/Games/Bow_Arrow/game.html
+++ b/Games/Bow_Arrow/game.html
@@ -1,40 +1,40 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Games/Bow_Arrow/index.html b/Games/Bow_Arrow/index.html
index 7f9a2f015e..11601f9949 100644
--- a/Games/Bow_Arrow/index.html
+++ b/Games/Bow_Arrow/index.html
@@ -1,54 +1,54 @@
-
-
-
-
-
-
-
-
-## **Description ๐**
-- This is a classic Brick Breaking Game made using HTML & CSS only that we all know and love!
-
-## **functionalities ๐ฎ**
-- Features of a classic Brick Breaking Game
-- Shows Remaining number of bricks on the top
-
-
-## **How to play? ๐น๏ธ**
-- Simply moving the mouse moves the paddle with which u can bounce the ball and destroy the bricks.
-
-
-
-## **Scores:**
-- +1 for each brick broken till number of bricks is greater than or equal to 60.
-- +2 for each brick broken till number of bricks is less than 60 and greater than or equal to 50.
-- +5 for each brick broken if number of bricks is less than 50;
-## **Screenshots ๐ธ**
-
-
-
-
-
-
-
-## **Working video ๐น**
-
+# **Brick_Breaker**
+
+---
+
+
+
+## **Description ๐**
+- This is a classic Brick Breaking Game made using HTML & CSS only that we all know and love!
+
+## **functionalities ๐ฎ**
+- Features of a classic Brick Breaking Game
+- Shows Remaining number of bricks on the top
+
+
+## **How to play? ๐น๏ธ**
+- Simply moving the mouse moves the paddle with which u can bounce the ball and destroy the bricks.
+
+
+
+## **Scores:**
+- +1 for each brick broken till number of bricks is greater than or equal to 60.
+- +2 for each brick broken till number of bricks is less than 60 and greater than or equal to 50.
+- +5 for each brick broken if number of bricks is less than 50;
+## **Screenshots ๐ธ**
+
+
+
+
+
+
+
+## **Working video ๐น**
+
diff --git a/Games/Brick_Breaker/index.html b/Games/Brick_Breaker/index.html
index 7a8bfbed97..144f47f676 100644
--- a/Games/Brick_Breaker/index.html
+++ b/Games/Brick_Breaker/index.html
@@ -1,34 +1,34 @@
-
-
-
-
-
-
- Brick Breaker
- Brick Breaker
+
-
-## **Description ๐**
-Indulge in the ultimate word challenge with our "CSS Crossword Game" . Decode clever hints, fill the grid, and expand your vocabulary. Perfect for solo brainstorming or friendly competitions. Stimulate your mind and immerse yourself in the classic crossword experience.
--
-
-## **functionalities ๐ฎ**
-
- Utilize CSS Grid to construct the crossword grid, ensuring consistent cell sizing and alignment for a structured layout. Design a CSS-based display for clues, ensuring clarity and aesthetics, with hover effects for interactive clue selection.Implement responsive CSS techniques to ensure the crossword adapts smoothly to various screen sizes, optimizing the user experience on different devices.
-
--
-
-
-## **How to play? ๐น๏ธ**
-
-In CSS Crossword enter letters into the grid cells based on the chosen clue. Each letter must intersect with existing letters to form valid words.Utilize adjacent filled cells and existing letters to decipher and complete words. Pay attention to letter patterns and word lengths.
-
-
--
-
-
-
-## **Screenshots ๐ธ**
-
-
-
+# **Know Your Country**
+
+---
+
+
+
+## **Description ๐**
+Indulge in the ultimate word challenge with our "CSS Crossword Game" . Decode clever hints, fill the grid, and expand your vocabulary. Perfect for solo brainstorming or friendly competitions. Stimulate your mind and immerse yourself in the classic crossword experience.
+-
+
+## **functionalities ๐ฎ**
+
+ Utilize CSS Grid to construct the crossword grid, ensuring consistent cell sizing and alignment for a structured layout. Design a CSS-based display for clues, ensuring clarity and aesthetics, with hover effects for interactive clue selection.Implement responsive CSS techniques to ensure the crossword adapts smoothly to various screen sizes, optimizing the user experience on different devices.
+
+-
+
+
+## **How to play? ๐น๏ธ**
+
+In CSS Crossword enter letters into the grid cells based on the chosen clue. Each letter must intersect with existing letters to form valid words.Utilize adjacent filled cells and existing letters to decipher and complete words. Pay attention to letter patterns and word lengths.
+
+
+-
+
+
+
+## **Screenshots ๐ธ**
+
+
+
diff --git a/Games/CSS_Crossword/index.html b/Games/CSS_Crossword/index.html
index 062d6f848f..1535a86942 100644
--- a/Games/CSS_Crossword/index.html
+++ b/Games/CSS_Crossword/index.html
@@ -1,73 +1,73 @@
-
-
-
-
-
-
+
+
+
+
-
-## **Screenshots ๐ธ**
-
-
-
-
-
+# **CSS_Select**
+
+---
+
+
+
+## **Description ๐**
+
+CSS Select is a fun game where we make our CSS concepts stronger in a gamified way.
+
+## **How to play? ๐น๏ธ**
+
+Use keyboard to type
+
+
+
+## **Screenshots ๐ธ**
+
+
+
+
+
![image](../../assets/images/CSS_Select.png)
\ No newline at end of file
diff --git a/Games/Candy_Crush/README.md b/Games/Candy_Crush/README.md
index 0acf90cd62..664355d9e2 100644
--- a/Games/Candy_Crush/README.md
+++ b/Games/Candy_Crush/README.md
@@ -1,38 +1,38 @@
-# **Candy Crush**
-
----
-
-
-
-## **Description ๐**
-- The goal is to match at least three candies of the same colour and type in a row or column to clear them from the board. With each successful match, players earn points.
-- This project is built on a basic web tech stacks such as HTML, CSS and Javascript.
-
-## **functionalities ๐ฎ**
-- Scoring system to for comparison.
-- Responsive design.
-- Random candy generation.
-
-
-## **How to play? ๐น๏ธ**
-- The game will start with a 9x9 candy board.
-- Use your mouse and interchange the places of the candies.
-- As you form a line(either horizontal or vertical) of atleast 3 candies you score atleast 30 points.
-
-
-
-## **Screenshots ๐ธ**
-
-
-
-![image](../../assets/images/candy_crush.png)
-
-
-
-## **Working video ๐น**
-
-
-
-
-https://github.com/singh-anushka/GameZone/assets/93376863/4c99b212-0d20-4b3e-9674-325792093d08
-
+# **Candy Crush**
+
+---
+
+
+
+## **Description ๐**
+- The goal is to match at least three candies of the same colour and type in a row or column to clear them from the board. With each successful match, players earn points.
+- This project is built on a basic web tech stacks such as HTML, CSS and Javascript.
+
+## **functionalities ๐ฎ**
+- Scoring system to for comparison.
+- Responsive design.
+- Random candy generation.
+
+
+## **How to play? ๐น๏ธ**
+- The game will start with a 9x9 candy board.
+- Use your mouse and interchange the places of the candies.
+- As you form a line(either horizontal or vertical) of atleast 3 candies you score atleast 30 points.
+
+
+
+## **Screenshots ๐ธ**
+
+
+
+![image](../../assets/images/candy_crush.png)
+
+
+
+## **Working video ๐น**
+
+
+
+
+https://github.com/singh-anushka/GameZone/assets/93376863/4c99b212-0d20-4b3e-9674-325792093d08
+
diff --git a/Games/Candy_Crush/index.html b/Games/Candy_Crush/index.html
index 274c132b8a..c60c3d07ef 100644
--- a/Games/Candy_Crush/index.html
+++ b/Games/Candy_Crush/index.html
@@ -1,26 +1,26 @@
-
-
-
-
-
-
- Score: 0
-
-
Candy Crush
-
-
+
+
+
+
+
+
+ Score: 0
+
+
Candy Crush
+
+
\ No newline at end of file
diff --git a/Games/Candy_Crush/script.js b/Games/Candy_Crush/script.js
index af7732fed3..60ed160a07 100644
--- a/Games/Candy_Crush/script.js
+++ b/Games/Candy_Crush/script.js
@@ -1,203 +1,203 @@
-
-var candies = ["Blue", "Orange", "Green", "Yellow", "Red", "Purple"];
-var board = [];
-var rows = 9;
-var columns = 9;
-var score = 0;
-
-var currTile;
-var otherTile;
-
-
-window.onload = function() {
- startGame();
-
- //1/10th of a second
- window.setInterval(function(){
- crushCandy();
- slideCandy();
- generateCandy();
- }, 100);
-}
-
-function randomCandy() {
- return candies[Math.floor(Math.random() * candies.length)]; //0 - 5.99
-}
-
-function startGame() {
- for (let r = 0; r < rows; r++) {
- let row = [];
- for (let c = 0; c < columns; c++) {
- //
- let tile = document.createElement("img");
- tile.id = r.toString() + "-" + c.toString();
- tile.src = "././assets/" + randomCandy() + ".png";
-
- //DRAG FUNCTIONALITY
- tile.addEventListener("dragstart", dragStart); //click on a candy, initialize drag process
- tile.addEventListener("dragover", dragOver); //clicking on candy, moving mouse to drag the candy
- tile.addEventListener("dragenter", dragEnter); //dragging candy onto another candy
- tile.addEventListener("dragleave", dragLeave); //leave candy over another candy
- tile.addEventListener("drop", dragDrop); //dropping a candy over another candy
- tile.addEventListener("dragend", dragEnd); //after drag process completed, we swap candies
-
- document.getElementById("board").append(tile);
- row.push(tile);
- }
- board.push(row);
- }
-
-}
-
-function dragStart() {
- //this refers to tile that was clicked on for dragging
- currTile = this;
-}
-
-function dragOver(e) {
- e.preventDefault();
-}
-
-function dragEnter(e) {
- e.preventDefault();
-}
-
-function dragLeave() {
-
-}
-
-function dragDrop() {
- //this refers to the target tile that was dropped on
- otherTile = this;
-}
-
-function dragEnd() {
-
- if (currTile.src.includes("blank") || otherTile.src.includes("blank")) {
- return;
- }
-
- let currCoords = currTile.id.split("-"); // id="0-0" -> ["0", "0"]
- let r = parseInt(currCoords[0]);
- let c = parseInt(currCoords[1]);
-
- let otherCoords = otherTile.id.split("-");
- let r2 = parseInt(otherCoords[0]);
- let c2 = parseInt(otherCoords[1]);
-
- let moveLeft = c2 == c-1 && r == r2;
- let moveRight = c2 == c+1 && r == r2;
-
- let moveUp = r2 == r-1 && c == c2;
- let moveDown = r2 == r+1 && c == c2;
-
- let isAdjacent = moveLeft || moveRight || moveUp || moveDown;
-
- if (isAdjacent) {
- let currImg = currTile.src;
- let otherImg = otherTile.src;
- currTile.src = otherImg;
- otherTile.src = currImg;
-
- let validMove = checkValid();
- if (!validMove) {
- let currImg = currTile.src;
- let otherImg = otherTile.src;
- currTile.src = otherImg;
- otherTile.src = currImg;
- }
- }
-}
-
-function crushCandy() {
- //crushFive();
- //crushFour();
- crushThree();
- document.getElementById("score").innerText = score;
-
-}
-
-function crushThree() {
- //check rows
- for (let r = 0; r < rows; r++) {
- for (let c = 0; c < columns-2; c++) {
- let candy1 = board[r][c];
- let candy2 = board[r][c+1];
- let candy3 = board[r][c+2];
- if (candy1.src == candy2.src && candy2.src == candy3.src && !candy1.src.includes("blank")) {
- candy1.src = "././assets/blank.png";
- candy2.src = "././assets/blank.png";
- candy3.src = "././assets/blank.png";
- score += 30;
- }
- }
- }
-
- //check columns
- for (let c = 0; c < columns; c++) {
- for (let r = 0; r < rows-2; r++) {
- let candy1 = board[r][c];
- let candy2 = board[r+1][c];
- let candy3 = board[r+2][c];
- if (candy1.src == candy2.src && candy2.src == candy3.src && !candy1.src.includes("blank")) {
- candy1.src = "././assets/blank.png";
- candy2.src = "././assets/blank.png";
- candy3.src = "././assets/blank.png";
- score += 30;
- }
- }
- }
-}
-
-function checkValid() {
- //check rows
- for (let r = 0; r < rows; r++) {
- for (let c = 0; c < columns-2; c++) {
- let candy1 = board[r][c];
- let candy2 = board[r][c+1];
- let candy3 = board[r][c+2];
- if (candy1.src == candy2.src && candy2.src == candy3.src && !candy1.src.includes("blank")) {
- return true;
- }
- }
- }
-
- //check columns
- for (let c = 0; c < columns; c++) {
- for (let r = 0; r < rows-2; r++) {
- let candy1 = board[r][c];
- let candy2 = board[r+1][c];
- let candy3 = board[r+2][c];
- if (candy1.src == candy2.src && candy2.src == candy3.src && !candy1.src.includes("blank")) {
- return true;
- }
- }
- }
-
- return false;
-}
-
-
-function slideCandy() {
- for (let c = 0; c < columns; c++) {
- let ind = rows - 1;
- for (let r = columns-1; r >= 0; r--) {
- if (!board[r][c].src.includes("blank")) {
- board[ind][c].src = board[r][c].src;
- ind -= 1;
- }
- }
-
- for (let r = ind; r >= 0; r--) {
- board[r][c].src = "././assets/blank.png";
- }
- }
-}
-
-function generateCandy() {
- for (let c = 0; c < columns; c++) {
- if (board[0][c].src.includes("blank")) {
- board[0][c].src = "././assets/" + randomCandy() + ".png";
- }
- }
+
+var candies = ["Blue", "Orange", "Green", "Yellow", "Red", "Purple"];
+var board = [];
+var rows = 9;
+var columns = 9;
+var score = 0;
+
+var currTile;
+var otherTile;
+
+
+window.onload = function() {
+ startGame();
+
+ //1/10th of a second
+ window.setInterval(function(){
+ crushCandy();
+ slideCandy();
+ generateCandy();
+ }, 100);
+}
+
+function randomCandy() {
+ return candies[Math.floor(Math.random() * candies.length)]; //0 - 5.99
+}
+
+function startGame() {
+ for (let r = 0; r < rows; r++) {
+ let row = [];
+ for (let c = 0; c < columns; c++) {
+ //
+ let tile = document.createElement("img");
+ tile.id = r.toString() + "-" + c.toString();
+ tile.src = "././assets/" + randomCandy() + ".png";
+
+ //DRAG FUNCTIONALITY
+ tile.addEventListener("dragstart", dragStart); //click on a candy, initialize drag process
+ tile.addEventListener("dragover", dragOver); //clicking on candy, moving mouse to drag the candy
+ tile.addEventListener("dragenter", dragEnter); //dragging candy onto another candy
+ tile.addEventListener("dragleave", dragLeave); //leave candy over another candy
+ tile.addEventListener("drop", dragDrop); //dropping a candy over another candy
+ tile.addEventListener("dragend", dragEnd); //after drag process completed, we swap candies
+
+ document.getElementById("board").append(tile);
+ row.push(tile);
+ }
+ board.push(row);
+ }
+
+}
+
+function dragStart() {
+ //this refers to tile that was clicked on for dragging
+ currTile = this;
+}
+
+function dragOver(e) {
+ e.preventDefault();
+}
+
+function dragEnter(e) {
+ e.preventDefault();
+}
+
+function dragLeave() {
+
+}
+
+function dragDrop() {
+ //this refers to the target tile that was dropped on
+ otherTile = this;
+}
+
+function dragEnd() {
+
+ if (currTile.src.includes("blank") || otherTile.src.includes("blank")) {
+ return;
+ }
+
+ let currCoords = currTile.id.split("-"); // id="0-0" -> ["0", "0"]
+ let r = parseInt(currCoords[0]);
+ let c = parseInt(currCoords[1]);
+
+ let otherCoords = otherTile.id.split("-");
+ let r2 = parseInt(otherCoords[0]);
+ let c2 = parseInt(otherCoords[1]);
+
+ let moveLeft = c2 == c-1 && r == r2;
+ let moveRight = c2 == c+1 && r == r2;
+
+ let moveUp = r2 == r-1 && c == c2;
+ let moveDown = r2 == r+1 && c == c2;
+
+ let isAdjacent = moveLeft || moveRight || moveUp || moveDown;
+
+ if (isAdjacent) {
+ let currImg = currTile.src;
+ let otherImg = otherTile.src;
+ currTile.src = otherImg;
+ otherTile.src = currImg;
+
+ let validMove = checkValid();
+ if (!validMove) {
+ let currImg = currTile.src;
+ let otherImg = otherTile.src;
+ currTile.src = otherImg;
+ otherTile.src = currImg;
+ }
+ }
+}
+
+function crushCandy() {
+ //crushFive();
+ //crushFour();
+ crushThree();
+ document.getElementById("score").innerText = score;
+
+}
+
+function crushThree() {
+ //check rows
+ for (let r = 0; r < rows; r++) {
+ for (let c = 0; c < columns-2; c++) {
+ let candy1 = board[r][c];
+ let candy2 = board[r][c+1];
+ let candy3 = board[r][c+2];
+ if (candy1.src == candy2.src && candy2.src == candy3.src && !candy1.src.includes("blank")) {
+ candy1.src = "././assets/blank.png";
+ candy2.src = "././assets/blank.png";
+ candy3.src = "././assets/blank.png";
+ score += 30;
+ }
+ }
+ }
+
+ //check columns
+ for (let c = 0; c < columns; c++) {
+ for (let r = 0; r < rows-2; r++) {
+ let candy1 = board[r][c];
+ let candy2 = board[r+1][c];
+ let candy3 = board[r+2][c];
+ if (candy1.src == candy2.src && candy2.src == candy3.src && !candy1.src.includes("blank")) {
+ candy1.src = "././assets/blank.png";
+ candy2.src = "././assets/blank.png";
+ candy3.src = "././assets/blank.png";
+ score += 30;
+ }
+ }
+ }
+}
+
+function checkValid() {
+ //check rows
+ for (let r = 0; r < rows; r++) {
+ for (let c = 0; c < columns-2; c++) {
+ let candy1 = board[r][c];
+ let candy2 = board[r][c+1];
+ let candy3 = board[r][c+2];
+ if (candy1.src == candy2.src && candy2.src == candy3.src && !candy1.src.includes("blank")) {
+ return true;
+ }
+ }
+ }
+
+ //check columns
+ for (let c = 0; c < columns; c++) {
+ for (let r = 0; r < rows-2; r++) {
+ let candy1 = board[r][c];
+ let candy2 = board[r+1][c];
+ let candy3 = board[r+2][c];
+ if (candy1.src == candy2.src && candy2.src == candy3.src && !candy1.src.includes("blank")) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+}
+
+
+function slideCandy() {
+ for (let c = 0; c < columns; c++) {
+ let ind = rows - 1;
+ for (let r = columns-1; r >= 0; r--) {
+ if (!board[r][c].src.includes("blank")) {
+ board[ind][c].src = board[r][c].src;
+ ind -= 1;
+ }
+ }
+
+ for (let r = ind; r >= 0; r--) {
+ board[r][c].src = "././assets/blank.png";
+ }
+ }
+}
+
+function generateCandy() {
+ for (let c = 0; c < columns; c++) {
+ if (board[0][c].src.includes("blank")) {
+ board[0][c].src = "././assets/" + randomCandy() + ".png";
+ }
+ }
}
\ No newline at end of file
diff --git a/Games/Candy_Crush/style.css b/Games/Candy_Crush/style.css
index b70e24ceec..302c5473e9 100644
--- a/Games/Candy_Crush/style.css
+++ b/Games/Candy_Crush/style.css
@@ -1,42 +1,42 @@
-body {
- background-color: #FFFAF4;
- background-size: cover;
- font-family: Arial, Helvetica, sans-serif;
- text-align: center;
- display: flex;
- height: 100vh;
- flex-direction: column;
- justify-content: space-between;
- overflow: hidden;
-}
-
-h1{
- font-family: 'Shrikhand', cursive;
- font-size: 52pt;
- color: #E08E6D;
-}
-
-h3{
- font-family: 'Corben', cursive;
- color: #F6C391;
- font-size: 30pt;
- padding-bottom: 0;
- margin-bottom: 0;
-}
-
-#board {
- width: 450px;
- height: 450px;
- background-color: #FFE8E8;
- border: 5px solid #D25380;
- border-radius: 10px;
- margin: 0 auto;
- display: flex;
- flex-wrap: wrap;
- padding-top: 0;
-}
-
-#board img {
- width: 50px;
- height: 50px;
+body {
+ background-color: #FFFAF4;
+ background-size: cover;
+ font-family: Arial, Helvetica, sans-serif;
+ text-align: center;
+ display: flex;
+ height: 100vh;
+ flex-direction: column;
+ justify-content: space-between;
+ overflow: hidden;
+}
+
+h1{
+ font-family: 'Shrikhand', cursive;
+ font-size: 52pt;
+ color: #E08E6D;
+}
+
+h3{
+ font-family: 'Corben', cursive;
+ color: #F6C391;
+ font-size: 30pt;
+ padding-bottom: 0;
+ margin-bottom: 0;
+}
+
+#board {
+ width: 450px;
+ height: 450px;
+ background-color: #FFE8E8;
+ border: 5px solid #D25380;
+ border-radius: 10px;
+ margin: 0 auto;
+ display: flex;
+ flex-wrap: wrap;
+ padding-top: 0;
+}
+
+#board img {
+ width: 50px;
+ height: 50px;
}
\ No newline at end of file
diff --git a/Games/CareTaker/README.md b/Games/CareTaker/README.md
index c71fee9fae..e03858eabf 100644
--- a/Games/CareTaker/README.md
+++ b/Games/CareTaker/README.md
@@ -1,34 +1,34 @@
-# **CareTaker**
-
----
-
-
-
-## **Description ๐**
-
-- CareTaker is a 2D platformer where the player controls a character that can move left and right. The goal of the game is to reach the end of the level without falling off the platforms.
-
-## **functionalities ๐ฎ**
-
-- **2D platformer**: The game is a 2D platformer, which means that the player controls a character that can move left and right and jump.
-- **Simple controls**: The game is controlled using the keyboard. The left arrow key moves the character left, the right arrow key moves the character right, and the spacebar makes the character jump.
-- **CSS**: The CSS in the game is used to style the game graphics. The CSS defines the colors, fonts, and sizes of the different game elements.
-- **Theme**: The theme of the game is adventure. The player controls a character who is on a quest to reach the end of the level. The player must use their skills to navigate the obstacles and reach their destination. The game is set in a simple but colorful world, which adds to the sense of adventure.
-
-
-## **How to play? ๐น๏ธ**
-
-- The game is controlled using the keyboard. The left arrow key moves the character left, the right arrow key moves the character right.
-
-
-
-## **Screenshots ๐ธ**
-
-
-
-![Image](CareTaker.png)
-
-
-
-## **Working video ๐น**
-
+# **CareTaker**
+
+---
+
+
+
+## **Description ๐**
+
+- CareTaker is a 2D platformer where the player controls a character that can move left and right. The goal of the game is to reach the end of the level without falling off the platforms.
+
+## **functionalities ๐ฎ**
+
+- **2D platformer**: The game is a 2D platformer, which means that the player controls a character that can move left and right and jump.
+- **Simple controls**: The game is controlled using the keyboard. The left arrow key moves the character left, the right arrow key moves the character right, and the spacebar makes the character jump.
+- **CSS**: The CSS in the game is used to style the game graphics. The CSS defines the colors, fonts, and sizes of the different game elements.
+- **Theme**: The theme of the game is adventure. The player controls a character who is on a quest to reach the end of the level. The player must use their skills to navigate the obstacles and reach their destination. The game is set in a simple but colorful world, which adds to the sense of adventure.
+
+
+## **How to play? ๐น๏ธ**
+
+- The game is controlled using the keyboard. The left arrow key moves the character left, the right arrow key moves the character right.
+
+
+
+## **Screenshots ๐ธ**
+
+
+
+![Image](CareTaker.png)
+
+
+
+## **Working video ๐น**
+
diff --git a/Games/Cartoon_Character_Guessing_Game/game.html b/Games/Cartoon_Character_Guessing_Game/game.html
index 77a8952b6d..356b00fe3d 100644
--- a/Games/Cartoon_Character_Guessing_Game/game.html
+++ b/Games/Cartoon_Character_Guessing_Game/game.html
@@ -1,17 +1,17 @@
-`
-
-
-
-
-
-
-
-
-
-## **Description ๐**
-The Fishing Game is a simple and addictive game where the player tries to catch fish using a fishing hook. The player's goal is to catch as many fish as possible within a given time limit or until a certain score is reached. It tests the player's timing and reflexes as they try to hook the fish swimming in the pond.
-
-## **functionalities ๐ฎ**
-The game starts with a pond background image and a fishing hook positioned at the bottom center of the pond.
-Fish of different sizes and types swim randomly in the pond.
-
-
-
-## **How to play? ๐น๏ธ**
-The player can control the fishing hook using mouse clicks.
-If the hook overlaps with the fish, the player scores points, and the caught fish is removed from the pond.
-If the hook misses the fish, no points are scored.
-The game continues for a certain duration.
-The player's score is displayed on the screen during the game.
-After the game ends, the player can restart the game to play again.
--
--
-
-
-
-## **Screenshots ๐ธ**
-
-
-
-
-
-
-
-
-
-
+# **CAST AND CATCH**
+
+---
+
+
+
+## **Description ๐**
+The Fishing Game is a simple and addictive game where the player tries to catch fish using a fishing hook. The player's goal is to catch as many fish as possible within a given time limit or until a certain score is reached. It tests the player's timing and reflexes as they try to hook the fish swimming in the pond.
+
+## **functionalities ๐ฎ**
+The game starts with a pond background image and a fishing hook positioned at the bottom center of the pond.
+Fish of different sizes and types swim randomly in the pond.
+
+
+
+## **How to play? ๐น๏ธ**
+The player can control the fishing hook using mouse clicks.
+If the hook overlaps with the fish, the player scores points, and the caught fish is removed from the pond.
+If the hook misses the fish, no points are scored.
+The game continues for a certain duration.
+The player's score is displayed on the screen during the game.
+After the game ends, the player can restart the game to play again.
+-
+-
+
+
+
+## **Screenshots ๐ธ**
+
+
+
+
+
+
+
+
+
+
diff --git a/Games/Cast_and_Catch/css/style.css b/Games/Cast_and_Catch/css/style.css
index 49b05f7282..cefdaf985c 100644
--- a/Games/Cast_and_Catch/css/style.css
+++ b/Games/Cast_and_Catch/css/style.css
@@ -1,467 +1,467 @@
-body {
- background-image: -webkit-linear-gradient(top, #9400d9, #9b0630);
- background-image: -moz-linear-gradient(top, #00C5D9, #066A9B);
- background-image: -ms-linear-gradient(top, #00C5D9, #066A9B);
- background-image: -o-linear-gradient(top, #00C5D9, #066A9B);
- background-image: linear-gradient(top, #00C5D9, #066A9B);
- font-family: 'Patrick Hand', cursive;
- letter-spacing: 0.25px;
- font-size: 21px;
- margin: 0;
- padding: 0;
- height: 100vh;
- color: white;
- overflow: hidden;
-}
-h1#start-title {
- font-family: 'Black Ops One', cursive;
- font-weight: 300;
- color: #080508;
-}
-h2 {
- margin-top: 0;
-}
-#info-wrapper {
- background-color: rgba(0,0,0,0.25);
- padding: 20px;
- border-radius: 20px;
- border: 4px solid white;
- position: relative;
-}
-
-#game-container {
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- position: absolute;
- text-align: center;
- height: 100vh;
- width: 100vw;
-}
-#game-stats {
- font-size: 24px;
- position: absolute;
- left: 28px;
- top: 28px;
- color: #FFF;
- min-width: 100px;
- min-height: 180px;
- background-color: rgba(0,0,0,0.25);
- padding: 20px;
- border-radius: 20px;
- border: 4px solid white;
- display: none;
- text-align: left;
- flex-direction: column;
- align-items: center;
-}
-#game-day {
- font-family: 'Black Ops One', cursive;
-}
-#game-score {
- margin-top: 8px;
- font-size: 21px;
- display:block;
-}
-#game-goal {
- display: none;
- font-size: 32px;
- position: absolute;
- top: 28px;
- background-color: rgba(0,0,0,0.25);
- padding: 10px 20px;
- border-radius: 20px;
- border: 4px solid white;
- margin: 0;
-}
-#click-container{
- display: none;
- position: relative;
- height: 100vh;
- width: 75vw;
- margin: 0 auto;
- cursor: none;
-}
-#line{
- display: block;
- position:absolute;
- height: 100vh;
- width: 1px;
- background-color: white;
- transform: translate(-12.5vw,-100%);
- margin-left: 8px;
- margin-top: -12px;
-}
-#line:after {
- content:"";
- display:block;
- height: 30px;
- width: 30px;
- position: absolute;
- bottom: -30px;
- left:-21px;
- background-image: url("../images/hook.svg");
-}
-#line.zapped {
- border: 1.5px #ffff33 solid;
-}
-h1 {
- margin: 0;
- padding: 20px;
-}
-button#start-btn {
- margin: 20px 0;
- padding: 50px;
- font-size: 18px;
- background: transparent;
- border: 4px solid white;
- border-radius: 50%;
- cursor:pointer;
-}
-button#start-btn .arrow {
- display: block;
- border-color: transparent white;
- border-style: solid;
- border-width: 30px 0px 30px 60px;
-}
-
-.fish {
- width: 50px;
- height: 50px;
- background-color: #7fb8ea;
- transform:rotate(45deg);
- border-radius: 50%;
- position: absolute;
- transition: left 0.1s linear, top 0.1s linear, opacity 1s linear;
- animation-name: appear;
- animation-duration: 0.5s;
-}
-.fish:after {
- content:"";
- border-color: transparent #3100f7;
- border-style: solid;
- border-width: 20px 20px 20px 0px;
- transform-origin: center left;
- transform: rotate(-45deg);
- position: absolute;
- right: -15%;
- top: -15%;
-}
-.fish:before,
-.rare-fish:before {
- content: "";
- background-color: #FFF;
- height: 8px;
- width: 8px;
- display: block;
- border-radius: 50%;
- top: 50%;
- position: absolute;
- left: 10%;
-}
-.rare-fish {
- width: 50px;
- height: 50px;
- background-color: #B02C90;
- transform:rotate(45deg);
- border-radius: 25%;
- position: absolute;
- transition: left 0.1s linear, top 0.1s linear, opacity 1s linear;
- animation-name: appear;
- animation-duration: 0.5s;
-}
-.rare-fish:after {
- content:"";
- border-color: transparent #B02C90;
- border-style: solid;
- border-width: 20px 20px 20px 0px;
- transform-origin: center left;
- transform: rotate(-45deg);
- position: absolute;
- right: -15%;
- top: -15%;
-}
-.rare-fish:after {
- border-color: transparent #B02C90;
-}
-.fish.left,
-.rare-fish.left{
- transform: scaleX(-1) rotate(45deg);
- animation-name: appear;
- animation-duration: 0.5s;
-}
-.shark.left {
- transform: scaleX(-1);
- animation-name: appear;
- animation-duration: 0.5s;
-}
-
-.fish.caught,
-.rare-fish.caught,
-.trash.caught {
- animation: pull-up 0.5s;
- animation-fill-mode: forwards;
-}
-
-.fish.disappear,
-.rare-fish.disappear,
-.trash.disappear,
-.jellyfish.disappear,
-.shark.disappear{
- animation: disappear 0.35s;
- animation-fill-mode: forwards;
-}
-.trash {
- width: 30px;
- border-radius:50% 50% 25% 25%;
- height:40px;
- background-color: rgba(255,255,255,0.3333);
- position: absolute;
- transition: all 1s;
- transform: rotate(-90deg);
- animation-name: float;
- animation-duration: 1s;
- animation-timing-function: linear;
-}
-.trash:before {
- content: "";
- width: 15px;
- height: 8px;
- border-radius: 10%;
- background-color: #C70437;
- position:absolute;
- left: 50%;
- top: -8px;
- transform: translateX(-50%);
-
-}
-.trash:after {
- content: "";
- width: 30px;
- height: 50px;
- border-radius: 25% 25% 30% 30%;
- background-color: rgba(255,255,255,0.3333);
- position: absolute;
- top: 40px;
-}
-
-.jellyfish {
- width: 80px;
- height: 100px;
- background-image:url(../images/jellyfish.svg);
- background-size: contain;
- position: absolute;
- transition: left 0.1s linear, top 0.1s linear, opacity 1s linear;
- animation-name: floatUp;
- animation-duration: 1s;
- animation-timing-function: linear;
-}
-.shark {
- width: 240px;
- height: 128px;
- background-image:url(../images/shark.svg);
- background-size: contain;
- background-repeat: no-repeat;
- position: absolute;
- transition: left 0.1s linear, top 0.1s linear, opacity 1s linear;
- animation-name: floatUp;
- animation-duration: 1s;
- animation-timing-function: linear;
-}
-.hit-text {
- font-size: 28px;
- position: absolute;
- z-index: 2;
- top: -20px;
- animation-name: point;
- animation-duration: 0.75s;
- animation-fill-mode: forwards;
-}
-
-@keyframes appear {
- from {
- opacity: 0;
- }
- to {
- opacity: 1;
- }
-}
-@keyframes disappear {
- from {
- opacity: 1;
- }
- to {
- opacity: 0;
- }
-}
-@keyframes float {
- 0% {
- opacity: 0;
- margin-left: 0px;
- margin-top: -20px
- }
- 25% {
- opacity: 0.25;
- margin-left: -10px;
- margin-top: -15px
- }
- 50% {
- opacity: 0.5;
- margin-left: 0px;
- margin-top: -10px
- }
- 75% {
- opacity: 0.75;
- margin-left: 10px;
- margin-top: -5px
- }
- 100% {
- opacity: 1;
- margin-left: 0px;
- margin-top: 0px;
- }
-}
-@keyframes floatUp {
- 0% {
- opacity: 0;
- margin-left: 0px;
- margin-top: 20px
- }
- 25% {
- opacity: 0.25;
- margin-left: -10px;
- margin-top: 15px
- }
- 50% {
- opacity: 0.5;
- margin-left: 0px;
- margin-top: 10px
- }
- 75% {
- opacity: 0.75;
- margin-left: 10px;
- margin-top: 5px
- }
- 100% {
- opacity: 1;
- margin-left: 0px;
- margin-top: 0px;
- }
-}
-
-@keyframes pull-up {
- from {
- margin-top: 0;
- opacity: 1;
- }
- to {
- margin-top: -50px;
- opacity:0;
- }
-}
-
-@keyframes point {
- 0% {
- transform: translateY(0);
- }
- 50% {
- opacity: 1;
- }
- 100% {
- opacity: 0;
- }
-}
-
-#bubbles {
- width: 100%;
- height: 100%;
- position: absolute;
- top: 0;
- left: 0;
- z-index: -1;
- overflow: hidden;
-}
-
-#bubbles div {
- border: solid 2px rgba(255,255,255,0.125);
- border-radius: 100%;
- position: absolute;
- visibility: hidden;
- animation: fade 10s infinite;
-}
-
-@keyframes fade {
- from {
- bottom: -24px;
- opacity: 1;
- visibility: visible;
- }
- to {
- bottom: 120%;
- }
-}
-
-#clock {
- position: absolute;
- width: 120px;
- height: 120px;
- top: 80px;
-}
-/* timer */
-svg {
- position: absolute;
- width: 100%;
- height: 100%;
- pointer-events: none;
- z-index: 2;
-}
-
-.chart-gauge {
- font-size: 2.5rem;
- letter-spacing: 4px;
- text-anchor: middle;
- dominant-baseline: central;
- alignment-baseline: middle;
- stroke-linecap: round;
-}
-.timer-time {
- fill: #FFFFFF;
- transition: 3s;
-}
-.timer-time.warning {
- fill: #ff5252;
- animation: shake 0.2s infinite;
-}
-.timer-backdrop {
- transform: rotate(-90deg);
- transform-origin: center;
- fill: none;
- stroke: rgba(255,255,255,.2);
- stroke-width: 5;
-}
-.timer-gauge {
- transform: rotate(-90deg);
- transform-origin: center;
- fill: none;
- stroke: #FFF;
- stroke-width: 5;
- animation-iteration-count: infinite;
- stroke-dashoffset: 0;
- stroke-dasharray: 250;
- transition: 14s linear;
-}
-.timer-gauge.ticking {
- stroke-dashoffset: 250;
-}
-
-@keyframes fill {
- 0% { stroke-dashoffset: 360; }
- 100% { stroke-dashoffset: 0; }
-}
-
-@keyframes shake {
- 0% { letter-spacing:4px; }
- 50% { letter-spacing:0px; }
- 100% { letter-spacing:4px; }
+body {
+ background-image: -webkit-linear-gradient(top, #9400d9, #9b0630);
+ background-image: -moz-linear-gradient(top, #00C5D9, #066A9B);
+ background-image: -ms-linear-gradient(top, #00C5D9, #066A9B);
+ background-image: -o-linear-gradient(top, #00C5D9, #066A9B);
+ background-image: linear-gradient(top, #00C5D9, #066A9B);
+ font-family: 'Patrick Hand', cursive;
+ letter-spacing: 0.25px;
+ font-size: 21px;
+ margin: 0;
+ padding: 0;
+ height: 100vh;
+ color: white;
+ overflow: hidden;
+}
+h1#start-title {
+ font-family: 'Black Ops One', cursive;
+ font-weight: 300;
+ color: #080508;
+}
+h2 {
+ margin-top: 0;
+}
+#info-wrapper {
+ background-color: rgba(0,0,0,0.25);
+ padding: 20px;
+ border-radius: 20px;
+ border: 4px solid white;
+ position: relative;
+}
+
+#game-container {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ position: absolute;
+ text-align: center;
+ height: 100vh;
+ width: 100vw;
+}
+#game-stats {
+ font-size: 24px;
+ position: absolute;
+ left: 28px;
+ top: 28px;
+ color: #FFF;
+ min-width: 100px;
+ min-height: 180px;
+ background-color: rgba(0,0,0,0.25);
+ padding: 20px;
+ border-radius: 20px;
+ border: 4px solid white;
+ display: none;
+ text-align: left;
+ flex-direction: column;
+ align-items: center;
+}
+#game-day {
+ font-family: 'Black Ops One', cursive;
+}
+#game-score {
+ margin-top: 8px;
+ font-size: 21px;
+ display:block;
+}
+#game-goal {
+ display: none;
+ font-size: 32px;
+ position: absolute;
+ top: 28px;
+ background-color: rgba(0,0,0,0.25);
+ padding: 10px 20px;
+ border-radius: 20px;
+ border: 4px solid white;
+ margin: 0;
+}
+#click-container{
+ display: none;
+ position: relative;
+ height: 100vh;
+ width: 75vw;
+ margin: 0 auto;
+ cursor: none;
+}
+#line{
+ display: block;
+ position:absolute;
+ height: 100vh;
+ width: 1px;
+ background-color: white;
+ transform: translate(-12.5vw,-100%);
+ margin-left: 8px;
+ margin-top: -12px;
+}
+#line:after {
+ content:"";
+ display:block;
+ height: 30px;
+ width: 30px;
+ position: absolute;
+ bottom: -30px;
+ left:-21px;
+ background-image: url("../images/hook.svg");
+}
+#line.zapped {
+ border: 1.5px #ffff33 solid;
+}
+h1 {
+ margin: 0;
+ padding: 20px;
+}
+button#start-btn {
+ margin: 20px 0;
+ padding: 50px;
+ font-size: 18px;
+ background: transparent;
+ border: 4px solid white;
+ border-radius: 50%;
+ cursor:pointer;
+}
+button#start-btn .arrow {
+ display: block;
+ border-color: transparent white;
+ border-style: solid;
+ border-width: 30px 0px 30px 60px;
+}
+
+.fish {
+ width: 50px;
+ height: 50px;
+ background-color: #7fb8ea;
+ transform:rotate(45deg);
+ border-radius: 50%;
+ position: absolute;
+ transition: left 0.1s linear, top 0.1s linear, opacity 1s linear;
+ animation-name: appear;
+ animation-duration: 0.5s;
+}
+.fish:after {
+ content:"";
+ border-color: transparent #3100f7;
+ border-style: solid;
+ border-width: 20px 20px 20px 0px;
+ transform-origin: center left;
+ transform: rotate(-45deg);
+ position: absolute;
+ right: -15%;
+ top: -15%;
+}
+.fish:before,
+.rare-fish:before {
+ content: "";
+ background-color: #FFF;
+ height: 8px;
+ width: 8px;
+ display: block;
+ border-radius: 50%;
+ top: 50%;
+ position: absolute;
+ left: 10%;
+}
+.rare-fish {
+ width: 50px;
+ height: 50px;
+ background-color: #B02C90;
+ transform:rotate(45deg);
+ border-radius: 25%;
+ position: absolute;
+ transition: left 0.1s linear, top 0.1s linear, opacity 1s linear;
+ animation-name: appear;
+ animation-duration: 0.5s;
+}
+.rare-fish:after {
+ content:"";
+ border-color: transparent #B02C90;
+ border-style: solid;
+ border-width: 20px 20px 20px 0px;
+ transform-origin: center left;
+ transform: rotate(-45deg);
+ position: absolute;
+ right: -15%;
+ top: -15%;
+}
+.rare-fish:after {
+ border-color: transparent #B02C90;
+}
+.fish.left,
+.rare-fish.left{
+ transform: scaleX(-1) rotate(45deg);
+ animation-name: appear;
+ animation-duration: 0.5s;
+}
+.shark.left {
+ transform: scaleX(-1);
+ animation-name: appear;
+ animation-duration: 0.5s;
+}
+
+.fish.caught,
+.rare-fish.caught,
+.trash.caught {
+ animation: pull-up 0.5s;
+ animation-fill-mode: forwards;
+}
+
+.fish.disappear,
+.rare-fish.disappear,
+.trash.disappear,
+.jellyfish.disappear,
+.shark.disappear{
+ animation: disappear 0.35s;
+ animation-fill-mode: forwards;
+}
+.trash {
+ width: 30px;
+ border-radius:50% 50% 25% 25%;
+ height:40px;
+ background-color: rgba(255,255,255,0.3333);
+ position: absolute;
+ transition: all 1s;
+ transform: rotate(-90deg);
+ animation-name: float;
+ animation-duration: 1s;
+ animation-timing-function: linear;
+}
+.trash:before {
+ content: "";
+ width: 15px;
+ height: 8px;
+ border-radius: 10%;
+ background-color: #C70437;
+ position:absolute;
+ left: 50%;
+ top: -8px;
+ transform: translateX(-50%);
+
+}
+.trash:after {
+ content: "";
+ width: 30px;
+ height: 50px;
+ border-radius: 25% 25% 30% 30%;
+ background-color: rgba(255,255,255,0.3333);
+ position: absolute;
+ top: 40px;
+}
+
+.jellyfish {
+ width: 80px;
+ height: 100px;
+ background-image:url(../images/jellyfish.svg);
+ background-size: contain;
+ position: absolute;
+ transition: left 0.1s linear, top 0.1s linear, opacity 1s linear;
+ animation-name: floatUp;
+ animation-duration: 1s;
+ animation-timing-function: linear;
+}
+.shark {
+ width: 240px;
+ height: 128px;
+ background-image:url(../images/shark.svg);
+ background-size: contain;
+ background-repeat: no-repeat;
+ position: absolute;
+ transition: left 0.1s linear, top 0.1s linear, opacity 1s linear;
+ animation-name: floatUp;
+ animation-duration: 1s;
+ animation-timing-function: linear;
+}
+.hit-text {
+ font-size: 28px;
+ position: absolute;
+ z-index: 2;
+ top: -20px;
+ animation-name: point;
+ animation-duration: 0.75s;
+ animation-fill-mode: forwards;
+}
+
+@keyframes appear {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 1;
+ }
+}
+@keyframes disappear {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ }
+}
+@keyframes float {
+ 0% {
+ opacity: 0;
+ margin-left: 0px;
+ margin-top: -20px
+ }
+ 25% {
+ opacity: 0.25;
+ margin-left: -10px;
+ margin-top: -15px
+ }
+ 50% {
+ opacity: 0.5;
+ margin-left: 0px;
+ margin-top: -10px
+ }
+ 75% {
+ opacity: 0.75;
+ margin-left: 10px;
+ margin-top: -5px
+ }
+ 100% {
+ opacity: 1;
+ margin-left: 0px;
+ margin-top: 0px;
+ }
+}
+@keyframes floatUp {
+ 0% {
+ opacity: 0;
+ margin-left: 0px;
+ margin-top: 20px
+ }
+ 25% {
+ opacity: 0.25;
+ margin-left: -10px;
+ margin-top: 15px
+ }
+ 50% {
+ opacity: 0.5;
+ margin-left: 0px;
+ margin-top: 10px
+ }
+ 75% {
+ opacity: 0.75;
+ margin-left: 10px;
+ margin-top: 5px
+ }
+ 100% {
+ opacity: 1;
+ margin-left: 0px;
+ margin-top: 0px;
+ }
+}
+
+@keyframes pull-up {
+ from {
+ margin-top: 0;
+ opacity: 1;
+ }
+ to {
+ margin-top: -50px;
+ opacity:0;
+ }
+}
+
+@keyframes point {
+ 0% {
+ transform: translateY(0);
+ }
+ 50% {
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0;
+ }
+}
+
+#bubbles {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: -1;
+ overflow: hidden;
+}
+
+#bubbles div {
+ border: solid 2px rgba(255,255,255,0.125);
+ border-radius: 100%;
+ position: absolute;
+ visibility: hidden;
+ animation: fade 10s infinite;
+}
+
+@keyframes fade {
+ from {
+ bottom: -24px;
+ opacity: 1;
+ visibility: visible;
+ }
+ to {
+ bottom: 120%;
+ }
+}
+
+#clock {
+ position: absolute;
+ width: 120px;
+ height: 120px;
+ top: 80px;
+}
+/* timer */
+svg {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ pointer-events: none;
+ z-index: 2;
+}
+
+.chart-gauge {
+ font-size: 2.5rem;
+ letter-spacing: 4px;
+ text-anchor: middle;
+ dominant-baseline: central;
+ alignment-baseline: middle;
+ stroke-linecap: round;
+}
+.timer-time {
+ fill: #FFFFFF;
+ transition: 3s;
+}
+.timer-time.warning {
+ fill: #ff5252;
+ animation: shake 0.2s infinite;
+}
+.timer-backdrop {
+ transform: rotate(-90deg);
+ transform-origin: center;
+ fill: none;
+ stroke: rgba(255,255,255,.2);
+ stroke-width: 5;
+}
+.timer-gauge {
+ transform: rotate(-90deg);
+ transform-origin: center;
+ fill: none;
+ stroke: #FFF;
+ stroke-width: 5;
+ animation-iteration-count: infinite;
+ stroke-dashoffset: 0;
+ stroke-dasharray: 250;
+ transition: 14s linear;
+}
+.timer-gauge.ticking {
+ stroke-dashoffset: 250;
+}
+
+@keyframes fill {
+ 0% { stroke-dashoffset: 360; }
+ 100% { stroke-dashoffset: 0; }
+}
+
+@keyframes shake {
+ 0% { letter-spacing:4px; }
+ 50% { letter-spacing:0px; }
+ 100% { letter-spacing:4px; }
}
\ No newline at end of file
diff --git a/Games/Cast_and_Catch/images/hook.svg b/Games/Cast_and_Catch/images/hook.svg
index bedbb88307..4b64de8b2a 100644
--- a/Games/Cast_and_Catch/images/hook.svg
+++ b/Games/Cast_and_Catch/images/hook.svg
@@ -1,8 +1,8 @@
-
-
-
+
+
+
diff --git a/Games/Cast_and_Catch/index.html b/Games/Cast_and_Catch/index.html
index 92e34a088d..a0e59208d0 100644
--- a/Games/Cast_and_Catch/index.html
+++ b/Games/Cast_and_Catch/index.html
@@ -1,40 +1,40 @@
-
-
-
- Cast and Catch
- Cast and Catch
+
There are total of 5 days to go through.
You need to get a certain score to proceed to the next day
They are fast, so be ready!"
- },{
- "day": 2,
- "score": 35,
- "instruction": "Lately, more trash are found in the ocean.
There is penalty if you catch some.
Let's continue and avoid the trash!"
- },{
- "day": 3,
- "score": 40,
- "instruction": "Jellyfishes have invaded this ocean region.
You will get stunned if you catch them
Let's continue and avoid getting stunned by them!"
- },{
- "day": 4,
- "score": 45,
- "instruction": "Sharks have been sighted lately.
You have to restart the entire week if you catch them!
Let's continue and not provoke them!"
- }];
-
- //music and sounds
- var bgm; //set bgm
- var blop; //fish sound
- var rareBlop; // rare fish sound
- var trashSound; // trash sound
- var bzzt; //jellyfish zapping sound
- var bite; //shark bite sound
-
- //event listeners
- startBtn.addEventListener("click", startGame);
- clickContainer.addEventListener("mousemove", checkCursor);
-
- function checkCursor (event){
- //update cursor co ordinates
- mousePosition.x = event.clientX;
- mousePosition.y = event.clientY;
- //set fishing line to follow cursor
- fishingLine.style.left= mousePosition.x+"px";
- fishingLine.style.top = mousePosition.y+"px";
- }
- //create audio element for playing music and sfx
- function sound(src) {
- this.sound = document.createElement("audio");
- this.sound.src = src;
- this.sound.setAttribute("preload", "auto");
- this.sound.setAttribute("controls", "none");
- this.sound.style.display = "none";
- document.body.appendChild(this.sound);
- this.play = function(){
- this.sound.play();
- }
- this.stop = function(){
- this.sound.pause();
- }
- }
-
- //start game function
- function startGame () {
- //day = 4;
- //initialise sounds
- blop = new sound('sfx/fish.mp3');
- rareBlop = new sound('sfx/rare-fish.mp3');
- trashSound = new sound('sfx/trash.mp3');
- bzzt = new sound('sfx/bzzt.mp3');
- bite = new sound('sfx/bite.mp3');
- bgm = new sound('sfx/Bug_Catching.mp3');
- bgm.play();
- if (day === 0){
- fishTracker = [0,0,0,0,0];
- score = 0;
- }
- currentScore=0;
- infoWrapper.style.display = "none";
- startTitle.style.display = "none";
- clickContainer.style.display = "block";
- gameStats.style.display = "flex";
- gameGoal.style.display = "block";
- createItems();
- }
- //create items function
- function createItems() {
- createTimer();
- day++;
- gameDay.innerText = "Day 0"+day;
- gameGoal.innerText = `Goal: ${currentScore}/${days[day-1].score}`;
- //start creating items depending on the day
- switch (day) {
- case 1:
- createFishInterval = setInterval(createFish, 250);
- break;
-
- case 2:
- createFishInterval = setInterval(createFish, 250);
- createRareFishInterval = setInterval(createRareFish, 2200);
- break;
-
- case 3:
- createFishInterval = setInterval(createFish, 250);
- createRareFishInterval = setInterval(createRareFish, 1500);
- createTrashInterval = setInterval(createTrash, 1000);
- break;
-
- case 4:
- createFishInterval = setInterval(createFish, 250);
- createRareFishInterval = setInterval(createRareFish, 1250);
- createTrashInterval = setInterval(createTrash, 1500);
- createJellyfishInterval = setInterval(createJellyfish,2000);
- break;
-
- case 5:
- createFishInterval = setInterval(createFish, 200);
- createRareFishInterval = setInterval(createRareFish, 1100);
- createTrashInterval = setInterval(createTrash, 1500);
- createJellyfishInterval = setInterval(createJellyfish,2000);
- createSharkInterval = setInterval(createShark,4000);
- break;
- }
- }
- //create timer function
- function createTimer () {
- gameTimer.innerText = "15s";
- gameScore.innerText = "Total Score: 0";
- let sec = 0;
- gameTimerInterval = setInterval(startGameTimer, 1000);
- function startGameTimer () {
- gameTimer.textContent = 15-sec+"s";
- if (sec === 15) {
- sec = 0;
- endDay(false);
- gameTimer.textContent = 15-sec+"s";
- gameTimer.classList.remove("warning");
- gameTimerGauge.classList.remove("ticking");
- }
- else {
- if (sec === 1) {
- gameTimerGauge.classList.add("ticking");
- }
- if (sec > 9){
- gameTimer.classList.add("warning");
- }
- sec++
- }
- }
- }
- //create fish function
- function createFish () {
- let fish = document.createElement("div");
- fish.classList.add("item");
- fish.classList.add("fish");
- clickContainer.appendChild(fish);
- setPosition(fish);
- fish.addEventListener("mouseover", hit);
- setTimeout(function() {
- if (!fish.classList.contains("caught")){
- fish.classList.add("disappear");
- }
- setTimeout(function() {
- if (clickContainer.contains(fish)){
- clickContainer.removeChild(fish);
- }
- }, 350);
- }, 1000);
- }
- //create rare fish function
- function createRareFish () {
- let fish = document.createElement("div");
- fish.classList.add("item");
- fish.classList.add("rare-fish");
- clickContainer.appendChild(fish);
- setPosition(fish);
- fish.addEventListener("mouseover", hit);
- setTimeout(function() {
- if (!fish.classList.contains("caught")){
- fish.classList.add("disappear");
- }
- setTimeout(function() {
- if (clickContainer.contains(fish)){
- clickContainer.removeChild(fish);
- }
- }, 350);
-
- }, 650);
- }
- //create trash function
- function createTrash () {
- let trash = document.createElement("div");
- trash.classList.add("item");
- trash.classList.add("trash");
- clickContainer.appendChild(trash);
- setPosition(trash);
- trash.addEventListener("mouseover", hit);
- setTimeout(function() {
- if (!trash.classList.contains("caught")){
- trash.classList.add("disappear");
- }
- setTimeout(function() {
- if (clickContainer.contains(trash)){
- clickContainer.removeChild(trash);
- }
- }, 350);
- }, 3000);
- }
- //create jellyfish function
- function createJellyfish () {
- let jellyfish = document.createElement("div");
- jellyfish.classList.add("item");
- jellyfish.classList.add("jellyfish");
- clickContainer.appendChild(jellyfish);
- setPosition(jellyfish);
- jellyfish.addEventListener("mouseover", hit);
- setTimeout(function() {
- if (!jellyfish.classList.contains("caught")){
- jellyfish.classList.add("disappear");
- }
- setTimeout(function() {
- if (clickContainer.contains(jellyfish)){
- clickContainer.removeChild(jellyfish);
- }
- }, 350);
- }, 3000);
- }
- //create shark function
- function createShark () {
- let shark = document.createElement("div");
- shark.classList.add("item");
- shark.classList.add("shark");
- clickContainer.appendChild(shark);
- setPosition(shark);
- shark.addEventListener("mouseover", hit);
- setTimeout(function() {
- if (!shark.classList.contains("caught")){
- shark.classList.add("disappear");
- }
- setTimeout(function() {
- if (clickContainer.contains(shark)){
- clickContainer.removeChild(shark);
- }
- }, 350);
- }, 3000);
- }
-
- function setPosition(item) {
- let leftPos = Math.floor(Math.random() * (clickContainer.offsetWidth-100));
- let topPos = Math.floor(Math.random() * ((clickContainer.offsetHeight/5*4)-100)+(clickContainer.offsetHeight/5));
- // if it a type of sea creature and is not trash
- if (!item.classList.contains("trash")) {
- let randomNum = Math.floor(Math.random()*2);
- //left side
- if (randomNum%2 === 0){
- if (!item.classList.contains("jellyfish")){
- leftPos = Math.floor(Math.random() * ((clickContainer.offsetWidth/4)-100));
- }
- else {
- leftPos = Math.floor(Math.random() * ((clickContainer.offsetWidth/2)-100));
- }
- setInterval(function(){
- if (item.classList.contains("fish")) {
- leftPos+=45;
- }
- else if (item.classList.contains("rare-fish")){
- leftPos+=65;
- }
- else if (item.classList.contains("jellyfish")){
- leftPos+=5;
- }
- else if (item.classList.contains("shark")){
- leftPos+=15;
- if (topPos>mousePosition.y) {
- topPos-=10;
- }
- else {
- topPos+=10;
- }
- }
- item.style.left = leftPos+"px";
- item.style.top = topPos+"px";
- }, 100);
- item.classList.add("left");
- }
- //right side
- else {
- if (!item.classList.contains("jellyfish")){
- leftPos = Math.floor(Math.random() * ((clickContainer.offsetWidth/4)-100)+(clickContainer.offsetWidth/4*3));
- }
- else {
- leftPos = Math.floor(Math.random() * ((clickContainer.offsetWidth/2)-100)+(clickContainer.offsetWidth/2));
- }
- setInterval(function(){
- if (item.classList.contains("fish")) {
- leftPos-=45;
- }
- else if (item.classList.contains("rare-fish")){
- leftPos-=65;
- }
- else if (item.classList.contains("jellyfish")){
- leftPos-=5;
- }
- else if (item.classList.contains("shark")){
- leftPos-=15;
- if (topPos>mousePosition.y) {
- topPos-=10;
- }
- else {
- topPos+=10;
- }
- }
- item.style.left = leftPos+"px";
- item.style.top = topPos+"px";
- }, 100);
- item.classList.add("right");
- }
- item.style.left = leftPos+"px"
- item.style.top = topPos+"px";
- }
- //if it is trash
- else {
- item.style.left = leftPos+"px";
- item.style.top = topPos+"px";
- }
- }
- function hit(event) {
- if (!fishingLine.classList.contains("zapped")) {
- let type = event.target.classList;
- let hitText = document.createElement('span');
- hitText.setAttribute('class','hit-text');
- this.parentNode.insertBefore(hitText,this);
- hitText.style.left = this.style.left;
- hitText.style.top = this.style.top;
- if (!this.classList.contains("caught")){
- this.classList.add("caught");
- if (type.contains("fish")) {
- hitText.innerText = "+1";
- hitText.style.color = "#00ffcd";
- blop.play();
- score++;
- currentScore++;
- fishTracker[0]++;
- }
- else if (type.contains("rare-fish")) {
- hitText.innerText = "+5";
- hitText.style.color = "#9766d3";
- rareBlop.play();
- score+=5;
- currentScore+=5;
- fishTracker[1]++;
- }
- else if (type.contains("trash")){
- hitText.innerText = "-3";
- hitText.style.color = "#ff5252";
- trashSound.play();
- score-=3;
- currentScore-3;
- fishTracker[2]++;
- }
- else if (type.contains("jellyfish")){
- fishingLine.classList.add("zapped");
- clickContainer.classList.add("zapped");
- hitText.innerText = "zap!";
- bzzt.play();
- hitText.style.color = "#ffff33";
- fishTracker[2]++;
- setTimeout(function() {
- fishingLine.classList.remove("zapped");
- clickContainer.classList.remove("zapped");
- }, 2000);
- }
- else if (type.contains("shark")){
- bite.play();
- endDay(true);
- sec = 0;
- }
- setTimeout(function() {
- clickContainer.removeChild(hitText);
- }, 1000);
- gameScore.innerText = `Total Score: ${score}`;
- gameGoal.innerText = `Goal: ${currentScore}/${days[day-1].score}`;
- }
- }
- }
- function endDay(died) {
- bgm.stop();
- clearInterval(gameTimerInterval);
- clearInterval(createFishInterval);
- clearInterval(createRareFishInterval);
- clearInterval(createTrashInterval);
- clearInterval(createJellyfishInterval);
- clearInterval(createSharkInterval);
- let remainingItems = document.querySelectorAll(".item");
- for (var i=0;i
Your score is not high enough. Please try again!
`; - day=0; - } - else { - instructions.innerHTML = `${days[day].instruction}
`; - } - } - else { - instructions.innerHTML = `You have caught ${fishTracker[0]} fishes, ${fishTracker[1]} rare fishes, ${fishTracker[2]} trash and ${fishTracker[2]} jellyfishes.
Your Total Score: ${score}
You provoked the shark and it destroyed your boat.
Your entire week of fishing went to waste!
${days[day].instruction}
`; +window.onload = function() { + const gameContainer = document.querySelector("#game-container"); + const clickContainer = document.querySelector("#click-container"); + const fishingLine = document.querySelector("#line"); + const startScreen = document.querySelector("#start-screen"); + const startTitle = document.querySelector("#start-title"); + const infoWrapper = document.querySelector("#info-wrapper"); + const instructions = document.querySelector("#instructions"); + const startBtn = document.querySelector("#start-btn"); + const gameStats = document.querySelector("#game-stats"); + const gameGoal = document.querySelector("#game-goal"); + const gameDay = document.querySelector("#game-day"); + const gameTimer = document.querySelector("#game-timer"); + const gameTimerGauge = document.querySelector(".timer-gauge"); + const gameScore = document.querySelector("#game-score"); + var mousePosition = { + x:0, + y:0 + } + var gameTimerInterval = null; + var day = 0; + var score = 0; + var currentScore = 0; + var fishTracker = [0,0,0,0] //first item is fish, second is rare fish, third is trash, fourth is jellyfish. no sharks as it will lead to autolose + + //initialise the create items interval variables + var createFishInterval = null; + var createRareFishInterval = null; + var createTrashInterval = null; + var createJellyfishInterval = null; + var createSharkInterval = null; + + var days = [{ + "day": 0, + "score": 20, + "instruction": "You are on a fishing trip!
There are total of 5 days to go through.
You need to get a certain score to proceed to the next day
Cast and Catch !
" + },{ + "day": 1, + "score": 30, + "instruction": "You can catch rare fishes now.Your score is not high enough. Please try again!
`; + day=0; + } + else { + instructions.innerHTML = `${days[day].instruction}
`; + } + } + else { + instructions.innerHTML = `You have caught ${fishTracker[0]} fishes, ${fishTracker[1]} rare fishes, ${fishTracker[2]} trash and ${fishTracker[2]} jellyfishes.
Your Total Score: ${score}
You provoked the shark and it destroyed your boat.
Your entire week of fishing went to waste!
${days[day].instruction}
`; }; \ No newline at end of file diff --git a/Games/Chrome_Dinosaur_Game/README.md b/Games/Chrome_Dinosaur_Game/README.md index 75c5ae0d17..dda7303e6c 100644 --- a/Games/Chrome_Dinosaur_Game/README.md +++ b/Games/Chrome_Dinosaur_Game/README.md @@ -1,39 +1,39 @@ -# **CHROME DINOSAUR RUNNING GAME** - ---- - -Distance travelled | |
---|---|
Tokens collected | |
Big tokens collected | |
Asteroids destroyed | |
Places visited | |
Mission completed | |
TOTAL |
- JUMP - UP arrow key
- SHRINK - DOWN arrow key
- MOVE - LEFT / RIGHT arrow keys
- BOOST - SPACE key
-
- JUMP - Swipe UP
- SHRINK - Swipe DOWN
- MOVE - Swipe LEFT / RIGHT
- BOOST - TAP
-
- BIG TOKENS help you collect small ones.
- Use SHRINK to go through SPACE JUNK.
- Use BOOST to destroy ASTEROIDS.
-
Distance travelled | |
---|---|
Tokens collected | |
Big tokens collected | |
Asteroids destroyed | |
Places visited | |
Mission completed | |
TOTAL |
+ JUMP - UP arrow key
+ SHRINK - DOWN arrow key
+ MOVE - LEFT / RIGHT arrow keys
+ BOOST - SPACE key
+
+ JUMP - Swipe UP
+ SHRINK - Swipe DOWN
+ MOVE - Swipe LEFT / RIGHT
+ BOOST - TAP
+
+ BIG TOKENS help you collect small ones.
+ Use SHRINK to go through SPACE JUNK.
+ Use BOOST to destroy ASTEROIDS.
+
Player 1
- -Player 2
- -Player 1
+ +Player 2
+ +