From 632f8334ffcf5301febf276eaa4e1f0a4118c693 Mon Sep 17 00:00:00 2001 From: Nikita Date: Mon, 8 Jul 2024 11:12:45 +0530 Subject: [PATCH 1/2] feat: Adding a new game Single_Player_Solitaire The objective of the game is to move all the cards to a foundation, organized by suit and in ascending order from Ace to King, while following a specific set of rules. It combines strategy, patience, and a bit of luck, making it a timeless and engaging pastime. the game also consists of a new game feature and a hint button its an easy and simple game. --- Games/Single_Player_Solitaire/README.md | 98 ++++++++++ Games/Single_Player_Solitaire/index.html | 36 ++++ Games/Single_Player_Solitaire/script.js | 212 ++++++++++++++++++++++ Games/Single_Player_Solitaire/styles.css | 163 +++++++++++++++++ assets/images/Single_Player_Solitaire.png | Bin 0 -> 31094 bytes 5 files changed, 509 insertions(+) create mode 100644 Games/Single_Player_Solitaire/README.md create mode 100644 Games/Single_Player_Solitaire/index.html create mode 100644 Games/Single_Player_Solitaire/script.js create mode 100644 Games/Single_Player_Solitaire/styles.css create mode 100644 assets/images/Single_Player_Solitaire.png diff --git a/Games/Single_Player_Solitaire/README.md b/Games/Single_Player_Solitaire/README.md new file mode 100644 index 0000000000..6b6df37e7c --- /dev/null +++ b/Games/Single_Player_Solitaire/README.md @@ -0,0 +1,98 @@ +Hii!! This is a small single player solitaire game +The goal of the single-player card game is to get rid of your cards and build the deck into a sequence and by suit from ace through king. The game is won when the whole deck of cards is built into the foundation. +# What is Foundation? +The piles of the sequence the player is trying to build from the tableau, beginning with the King. The aces will go at the bottom of the foundation. +# The scoring System!! +Though not all players are in it to earn the most possible points, there is a definitive scoring system in Solitaire. +What are we offerring you as score? +So, till now ther's no scoring system, just the piles and you need to stack up the cards from Ace to King + +--------------------------------------------------------------------------------------------------------------------------- +There are total 52 cards in the game of Solitaire +13 of Clubs (Black) 3 face cards(King, Queen, Jack) and others forom Ace to 10 (1,2,3,4,5,6,7,8,9,10) +13 of Spades (Black) 3 face cards(King, Queen, Jack) and others forom Ace to 10 (1,2,3,4,5,6,7,8,9,10) +13 of Hearts (Red) 3 face cards(King, Queen, Jack) and others forom Ace to 10 (1,2,3,4,5,6,7,8,9,10) +13 of Diamonds (Red) 3 face cards(King, Queen, Jack) and others forom Ace to 10 (1,2,3,4,5,6,7,8,9,10) + +--------------------------------------------------------------------------------------------------------------------------- + So Once Again, I welcome you ^_^ + + Welcome to the Solitaire Game! This is a classic solitaire game implemented using HTML, CSS, and JavaScript. The game includes features such as a "Hint" button and a "New Game" button, and the win condition is met when any one foundation pile is completed from Ace to King. + +## Table of Contents + +-- [Description](#description) +- [Features](#features) +- [Technologies Used](#technologies-used) +- [Getting Started](#getting-started) + - [Prerequisites](#prerequisites) + - [Installation](#installation) +- [Gameplay](#gameplay) + - [Objective](#objective) + - [Controls](#controls) +- [Project Structure](#project-structure) +- [Contributing](#contributing) + + +## Features +- **New Game Button**: Start a new game at any time. +- **Hint Button**: Get a hint for a possible move. +- **Win Condition**: The game is won if any one foundation pile is completed from Ace to King. +- **Interactive UI**: Click and drag to move cards. + +## Technologies Used +- HTML +- CSS +- JavaScript + +## Getting Started + +### Prerequisites +- A modern web browser (Chrome, Firefox, Safari, etc.) + +### Installation + +To run the game locally, follow these steps: + +1. Clone the repository: + ```bash + git clone https://github.com/your-username/solitaire-game.git + ``` +2. Navigate to the project directory: + ```bash + cd solitaire-game + ``` + +## Usage + +Open the `newindex.html` file in your preferred web browser to start playing the game. + +## Game Rules + +1. **Objective:** The goal is to move all cards to the foundation piles, each pile from Ace to King of the same suit. +2. **Setup:** The game starts with seven tableau piles. The first pile has one + +# Objective +The goal of solitaire is to move all cards to the foundation piles, sorted by suit in ascending order from Ace to King. + +# Controls +New Game Button: Click to start a new game. +Hint Button: Click to receive a hint for a possible move. +Card Movement: Click and drag to move cards between piles. + +# Project Structure +newindex.html: The main HTML file containing the game layout. +newstyles.css: The CSS file for styling the game. +newscript.js: The JavaScript file containing the game logic. + +# Contributing +Contributions are welcome! Please follow these steps: + +Fork the repository. +Create a new branch (git checkout -b feature-branch). +Make your changes. +Commit your changes (git commit -m 'Add some feature'). +Push to the branch (git push origin feature-branch). +Open a pull request. + +--------------------------------ENJOY---------------------------- \ No newline at end of file diff --git a/Games/Single_Player_Solitaire/index.html b/Games/Single_Player_Solitaire/index.html new file mode 100644 index 0000000000..9ea13d5f0b --- /dev/null +++ b/Games/Single_Player_Solitaire/index.html @@ -0,0 +1,36 @@ + + + + + + Solitaire + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + +
+ + + diff --git a/Games/Single_Player_Solitaire/script.js b/Games/Single_Player_Solitaire/script.js new file mode 100644 index 0000000000..080bceb8e5 --- /dev/null +++ b/Games/Single_Player_Solitaire/script.js @@ -0,0 +1,212 @@ +document.addEventListener('DOMContentLoaded', () => { + // Initialize the game + initGame(); + document.getElementById('hint-button').addEventListener('click', showHint); + document.getElementById('new-game-button').addEventListener('click', newGame); +}); + +function initGame() { + const deck = createDeck(); + shuffleDeck(deck); + dealCards(deck); + document.getElementById('win-message').classList.add('hidden'); +} +function newGame() { + // Reset the game board and start a new game + const tableauPiles = document.querySelectorAll('.tableau-pile'); + tableauPiles.forEach(pile => { + while (pile.firstChild) { + pile.removeChild(pile.firstChild); + } + }); + initGame(); +} +function checkWinCondition() { + const foundations = document.querySelectorAll('.foundation'); + let win = false; + + foundations.forEach(foundation => { + const cards = foundation.querySelectorAll('.card'); + if (cards.length === 13) { + win = true; + } + }); + + if (win) { + document.getElementById('win-message').classList.remove('hidden'); + } +} + +function createDeck() { + const suits = ['hearts', 'diamonds', 'clubs', 'spades']; + const ranks = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']; + const deck = []; + + for (const suit of suits) { + for (const rank of ranks) { + deck.push({ suit, rank }); + } + } + + return deck; +} + +function shuffleDeck(deck) { + for (let i = deck.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + [deck[i], deck[j]] = [deck[j], deck[i]]; + } +} + +function dealCards(deck) { + const tableauPiles = document.querySelectorAll('.tableau-pile'); + + tableauPiles.forEach((pile, pileIndex) => { + for (let cardIndex = 0; cardIndex <= pileIndex; cardIndex++) { + const card = deck.pop(); + const cardElement = createCardElement(card); + + if (cardIndex === pileIndex) { + cardElement.classList.add('face-up'); + } else { + cardElement.classList.add('face-down'); + } + + pile.appendChild(cardElement); + } + }); +} + +function createCardElement(card) { + const cardElement = document.createElement('div'); + cardElement.classList.add('card'); + cardElement.classList.add(card.suit === 'hearts' || card.suit === 'diamonds' ? 'red' : 'black'); + cardElement.dataset.suit = card.suit; + cardElement.dataset.rank = card.rank; + + const rankElement = document.createElement('div'); + rankElement.classList.add('rank'); + rankElement.innerText = card.rank; + + const suitElement = document.createElement('div'); + suitElement.classList.add('suit'); + suitElement.innerHTML = getSuitSymbol(card.suit); + + cardElement.appendChild(rankElement); + cardElement.appendChild(suitElement); + + // Make the card draggable + cardElement.draggable = true; + cardElement.addEventListener('dragstart', onDragStart); + cardElement.addEventListener('dragend', onDragEnd); + + return cardElement; +} + +function getSuitSymbol(suit) { + switch (suit) { + case 'hearts': + return '♥'; + case 'diamonds': + return '♦'; + case 'clubs': + return '♣'; + case 'spades': + return '♠'; + } +} + +function onDragStart(event) { + event.dataTransfer.setData('text/plain', event.target.dataset.suit + ' ' + event.target.dataset.rank); + event.target.classList.add('dragging'); +} + +function onDragEnd(event) { + event.target.classList.remove('dragging'); + checkWinCondition(); +} + +// Add drop event listeners to card piles +const cardPiles = document.querySelectorAll('.card-pile'); +cardPiles.forEach(pile => { + pile.addEventListener('dragover', onDragOver); + pile.addEventListener('drop', onDrop); +}); + +function onDragOver(event) { + event.preventDefault(); +} + +function onDrop(event) { + event.preventDefault(); + const data = event.dataTransfer.getData('text/plain'); + const [suit, rank] = data.split(' '); + const card = document.querySelector(`.card[data-suit="${suit}"][data-rank="${rank}"]`); + event.target.appendChild(card); + checkWinCondition(); +} + + + +function showHint() { + const moveableCard = findMoveableCard(); + if (moveableCard) { + highlightCard(moveableCard); + } else { + alert('No hints available!'); + } +} + +function findMoveableCard() { + const tableauPiles = document.querySelectorAll('.tableau-pile'); + for (const pile of tableauPiles) { + const cards = pile.querySelectorAll('.card.face-up'); + if (cards.length > 0) { + const topCard = cards[cards.length - 1]; + if (canMoveCard(topCard)) { + return topCard; + } + } + } + return null; +} + +function canMoveCard(card) { + const suit = card.dataset.suit; + const rank = card.dataset.rank; + const foundations = document.querySelectorAll('.foundation'); + + for (const foundation of foundations) { + const cards = foundation.querySelectorAll('.card'); + if (cards.length === 0 && rank === 'A') { + return true; + } + const topCard = cards[cards.length - 1]; + if (topCard && isNextRank(topCard.dataset.rank, rank) && topCard.dataset.suit === suit) { + return true; + } + } + return false; +} + +function isNextRank(topRank, currentRank) { + const ranks = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']; + return ranks.indexOf(currentRank) === ranks.indexOf(topRank) + 1; +} + +function highlightCard(card) { + card.classList.add('highlight'); + setTimeout(() => { + card.classList.remove('highlight'); + }, 2000); +} + +// Add necessary CSS for highlighting +const style = document.createElement('style'); +style.innerHTML = ` + .highlight { + border: 3px solid yellow; + box-shadow: 0 0 10px yellow; + } +`; +document.head.appendChild(style); \ No newline at end of file diff --git a/Games/Single_Player_Solitaire/styles.css b/Games/Single_Player_Solitaire/styles.css new file mode 100644 index 0000000000..c5daf70c2e --- /dev/null +++ b/Games/Single_Player_Solitaire/styles.css @@ -0,0 +1,163 @@ +body { + font-family: Arial, sans-serif; + display: flex; + justify-content: center; + align-items: center; + height: 100vh; + margin: 0; + background-color: #2E7D32; +} + +#game-board { + display: grid; + grid-template-areas: + "stock waste . . foundations foundations foundations foundations" + "tableau tableau tableau tableau tableau tableau tableau tableau"; + gap: 10px; + padding: 10px; + background-color: #388E3C; + border-radius: 10px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); + max-width: 90%; +} + +.card-pile { + width: 100px; + height: 140px; + background-color: #4CAF50; + border-radius: 10px; + box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.5); + position: relative; +} + +#stock { + grid-area: stock; +} + +#waste { + grid-area: waste; +} + +#foundations { + display: flex; + gap: 10px; + grid-area: foundations; +} + +.foundation { + width: 100px; + height: 140px; +} + +#tableau { + display: flex; + gap: 10px; + grid-area: tableau; +} + +.tableau-pile { + flex: 1; + display: flex; + flex-direction: column; + position: relative; +} + +.card { + width: 100px; + height: 140px; + border-radius: 10px; + background-color: white; + border: 2px solid #000; + cursor: pointer; + display: flex; + justify-content: center; + align-items: center; + user-select: none; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); + transition: transform 0.2s, box-shadow 0.2s; + font-family: 'Georgia', serif; + font-weight: bold; + color: #000; + position: absolute; +} + +.card.dragging { + opacity: 0.5; + z-index: 1000; +} + +.card.face-down { + background-color: #4CAF50; + border: 2px solid #388E3C; + box-shadow: inset 0 4px 8px rgba(0, 0, 0, 0.5); +} + +.card.face-up { + background-color: white; +} + +.card .rank { + position: absolute; + top: 5px; + left: 5px; + font-size: 18px; +} + +.card .suit { + position: absolute; + bottom: 5px; + right: 5px; + font-size: 24px; +} + +.card.hearts .rank, +.card.hearts .suit { + color: red; +} + +.card.diamonds .rank, +.card.diamonds .suit { + color: red; +} + +.card.clubs .rank, +.card.clubs .suit { + color: black; +} + +.card.spades .rank, +.card.spades .suit { + color: black; +} + +#controls { + margin-top: 20px; + text-align: center; +} + +#new-game-button, +#hint-button { + padding: 10px 20px; + font-size: 16px; + cursor: pointer; + background-color: #abc1ac; + color: white; + border: none; + border-radius: 5px; + transition: background-color 0.3s; +} + +#new-game-button:hover, +#hint-button:hover { + background-color: #bad2bb; +} + +#win-message { + margin-top: 20px; + font-size: 24px; + color: white; +} + +.hidden { + display: none; +} diff --git a/assets/images/Single_Player_Solitaire.png b/assets/images/Single_Player_Solitaire.png new file mode 100644 index 0000000000000000000000000000000000000000..7c58c83994991fac922cab1b2ffc9fd33a331b42 GIT binary patch literal 31094 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 literal 0 HcmV?d00001 From 11b347199ece10b7f56c269badbeb5cd0883e514 Mon Sep 17 00:00:00 2001 From: Nikita Date: Tue, 9 Jul 2024 18:56:05 +0530 Subject: [PATCH 2/2] updated README.md updated the README.md file with the link of Single_Player_Solitaire game link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 96c64efc1f..c612623946 100644 --- a/README.md +++ b/README.md @@ -290,7 +290,7 @@ This repository also provides one such platforms where contributers come over an | [Physics_Quizz](https://github.com/kunjgit/GameZone/tree/main/Games/Physics_Quizz) | | [Tiny_Fishing](https://github.com/kunjgit/GameZone/tree/main/Games/Tiny_Fishing) | | [IKnowYou-Mind-Reading-Game](https://github.com/kunjgit/GameZone/tree/main/Games/IKnowYou-Mind-Reading-Game) | - +| [Single_Player_Solitaire](https://github.com/kunjgit/GameZone/tree/main/Games/Single_Player_Solitaire) | | [Hover_Board_Effect](https://github.com/kunjgit/GameZone/tree/main/Games/Hover_Board_Effect) | | [namefate](https://github.com/kunjgit/GameZone/tree/main/Games/namefate) |