From 3c48e28855704711bab8b34d3070da582a698006 Mon Sep 17 00:00:00 2001 From: Ayan Joshi Date: Mon, 9 Oct 2023 02:17:22 +0530 Subject: [PATCH 1/6] Commit --- Sorting Visualizer/Readme.md | 28 +++++++++++ Sorting Visualizer/index.html | 19 +++++++ Sorting Visualizer/script.js | 94 +++++++++++++++++++++++++++++++++++ Sorting Visualizer/style.css | 66 ++++++++++++++++++++++++ 4 files changed, 207 insertions(+) create mode 100644 Sorting Visualizer/Readme.md create mode 100644 Sorting Visualizer/index.html create mode 100644 Sorting Visualizer/script.js create mode 100644 Sorting Visualizer/style.css diff --git a/Sorting Visualizer/Readme.md b/Sorting Visualizer/Readme.md new file mode 100644 index 000000000..c251dcdbd --- /dev/null +++ b/Sorting Visualizer/Readme.md @@ -0,0 +1,28 @@ +# Sorting-Visualizer +The Sorting Visualizer is a basic web application that allows you to visualize the process of sorting on a set of randomly generated bars. + +You can have a look , how it's working ! + +https://ayan-joshi.github.io/Sorting-Visualizer/ +# Technologies Used + +HTML + +CSS + +JavaScript + +# How to Use +Clone this repository to your local machine. + +Open index.html in your web browser. + +Click the "Randomize" button to generate a random set of bars. + +Select a sorting algorithm from the dropdown menu and click the "Sort" button to visualize the sorting process. + +# Screenshots + +![Screenshot 2023-08-03 203608](https://github.com/ayan-joshi/Sorting-Visualizer/assets/96243602/7ca1ebc1-42e7-47d7-a43f-4110fb769cce) + +![Screenshot 2023-08-03 203535](https://github.com/ayan-joshi/Sorting-Visualizer/assets/96243602/67209be1-5044-4cfa-beac-fb5ee129431d) \ No newline at end of file diff --git a/Sorting Visualizer/index.html b/Sorting Visualizer/index.html new file mode 100644 index 000000000..4b2404d58 --- /dev/null +++ b/Sorting Visualizer/index.html @@ -0,0 +1,19 @@ + + + + Sorting Visualizer + + + +

Sorting Visualizer

+
+ +
+ +
+ + +
+ + + diff --git a/Sorting Visualizer/script.js b/Sorting Visualizer/script.js new file mode 100644 index 000000000..7f30df140 --- /dev/null +++ b/Sorting Visualizer/script.js @@ -0,0 +1,94 @@ +const n = 20 +const array=[]; + +init(); + +let audioCtx=null; + +function playNote(freq){ + if(audioCtx==null){ + audioCtx=new( + AudioContext || + webkitAudioContext || + window.webkitAudioContext + )(); + } + const dur = 0.1; + const osc = audioCtx.createOscillator(); + osc.frequency.value=freq; + osc.start(); + osc.stop(audioCtx.currentTime+dur); + const node=audioCtx.createGain(); + node.gain.value=0.1; + node.gain.linearRampToValueAtTime( + 0, audioCtx.currentTime+dur + ); + osc.connect(node); + node.connect(audioCtx.destination); +} + + +function init(){ + for(let i=0;i array[i]){ + swapped = true; + moves.push({indices:[i-1,i],type:"swap"}); + [array[i-1],array[i]] = [array[i],array[i-1]]; + } + } + }while(swapped); + return moves; +} + +function showBars(move){ + container.innerHTML=""; + for(let i=0;i Date: Mon, 9 Oct 2023 02:25:25 +0530 Subject: [PATCH 2/6] commit --- Ping Pong/README.md | 32 +++++++ Ping Pong/Screenshot (188).png | Bin 0 -> 87110 bytes Ping Pong/index.html | 33 +++++++ Ping Pong/script.js | 170 +++++++++++++++++++++++++++++++++ Ping Pong/styles.css | 72 ++++++++++++++ 5 files changed, 307 insertions(+) create mode 100644 Ping Pong/README.md create mode 100644 Ping Pong/Screenshot (188).png create mode 100644 Ping Pong/index.html create mode 100644 Ping Pong/script.js create mode 100644 Ping Pong/styles.css diff --git a/Ping Pong/README.md b/Ping Pong/README.md new file mode 100644 index 000000000..423c0ef16 --- /dev/null +++ b/Ping Pong/README.md @@ -0,0 +1,32 @@ +# **Ping_Pong** + +--- + +
+ +## **Description 📃** +- Ping pong, also known as table tennis, is a sport in which two or four players hit a lightweight ball back and forth across a table using small solid rackets. +- They must prevent the ball from touching the surface of the table on their side + + +
+ +## **How to play? đŸ•šī¸** +- Controls: + - `W`: Up / `S`: Down (Player 1) + - `↑`: Up / `↓`: Down (Player 2) +- Players must allow a ball played towards them to bounce once on their side of the table and must return it so that it bounces on the opposite side. +- A point is scored when a player fails to return the ball within the rules. A player or team wins a game by scoring 11 points with a two-point margin. +- This is a endless game, so both players can play as much as they want +- Also added the Pause , Resume and Reset button below to make it more interesting. + + +
+ +## **Screenshots 📸** + +
+ +![Alt text]() + +
\ No newline at end of file diff --git a/Ping Pong/Screenshot (188).png b/Ping Pong/Screenshot (188).png new file mode 100644 index 0000000000000000000000000000000000000000..7820f470ec82de0a3ec1fb2bc3c4aced53777f65 GIT binary patch literal 87110 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 + + + + + Ping Pong Multiplayer + + + +
+
+
+ + W: Up / S: Down +
+

PING PONG

+
+ + ↑: Up / ↓: Down +
+
+
+ +
+
+ + + +
+
+ + + diff --git a/Ping Pong/script.js b/Ping Pong/script.js new file mode 100644 index 000000000..6752e1eed --- /dev/null +++ b/Ping Pong/script.js @@ -0,0 +1,170 @@ +// Wait for the HTML document to load before running the script +document.addEventListener("DOMContentLoaded", function() { + // Get the canvas element + const canvas = document.getElementById("game"); + const context = canvas.getContext("2d"); + + // Set up initial game state + let player1Score = 0; + let player2Score = 0; + let gamePaused = false; + let requestId; + + // Set up player positions and paddle dimensions + const player1 = { + x: 10, + y: canvas.height / 2 - 50, + width: 10, + height: 100, + dy: 0 + }; + + const player2 = { + x: canvas.width - 20, + y: canvas.height / 2 - 50, + width: 10, + height: 100, + dy: 0 + }; + + // Set up ball properties + const ball = { + x: canvas.width / 2, + y: canvas.height / 2, + radius: 10, + dx: 5, + dy: 5 + }; + + // Draw the game elements + function draw() { + // Clear the canvas + context.clearRect(0, 0, canvas.width, canvas.height); + + // Draw the player scores + context.font = "48px Arial"; + context.fillStyle = "#fff"; + context.fillText(player1Score, canvas.width / 2 - 50, 50); + context.fillText(player2Score, canvas.width / 2 + 25, 50); + + // Draw the players' paddles + context.fillStyle = "#fff"; + context.fillRect(player1.x, player1.y, player1.width, player1.height); + context.fillRect(player2.x, player2.y, player2.width, player2.height); + + // Draw the ball + context.beginPath(); + context.arc(ball.x, ball.y, ball.radius, 0, Math.PI * 2); + context.fillStyle = "#fff"; + context.fill(); + context.closePath(); + } + + // Update game logic + function update() { + if (gamePaused) { + return; + } + + // Move the players' paddles + player1.y += player1.dy; + player2.y += player2.dy; + + // Move the ball + ball.x += ball.dx; + ball.y += ball.dy; + + // Check for collisions with the top and bottom walls + if (ball.y + ball.radius > canvas.height || ball.y - ball.radius < 0) { + ball.dy *= -1; + } + + // Check for collisions with the players' paddles + if ( + ball.x - ball.radius < player1.x + player1.width && + ball.y > player1.y && + ball.y < player1.y + player1.height + ) { + ball.dx *= -1; + } else if ( + ball.x + ball.radius > player2.x && + ball.y > player2.y && + ball.y < player2.y + player2.height + ) { + ball.dx *= -1; + } + + // Check for scoring + if (ball.x + ball.radius > canvas.width) { + player1Score++; + resetBall(); + } else if (ball.x - ball.radius < 0) { + player2Score++; + resetBall(); + } + + // Call the draw function to update the canvas + draw(); + } + + // Reset the ball to the center of the canvas + function resetBall() { + ball.x = canvas.width / 2; + ball.y = canvas.height / 2; + ball.dx = Math.sign(ball.dx) * 5; + ball.dy = Math.sign(ball.dy) * 5; + } + + // Set up event listeners for player movement + document.addEventListener("keydown", function(event) { + if (event.key === "w") { + player1.dy = -5; + } else if (event.key === "s") { + player1.dy = 5; + } else if (event.key === "ArrowUp") { + player2.dy = -5; + } else if (event.key === "ArrowDown") { + player2.dy = 5; + } + }); + + document.addEventListener("keyup", function(event) { + if (event.key === "w" || event.key === "s") { + player1.dy = 0; + } else if (event.key === "ArrowUp" || event.key === "ArrowDown") { + player2.dy = 0; + } + }); + + // Set up event listeners for buttons + const pauseButton = document.getElementById("pause"); + pauseButton.addEventListener("click", function() { + gamePaused = true; + cancelAnimationFrame(requestId); + }); + + const resumeButton = document.getElementById("resume"); + resumeButton.addEventListener("click", function() { + gamePaused = false; + requestId = requestAnimationFrame(gameLoop); + }); + + const resetButton = document.getElementById("reset"); + resetButton.addEventListener("click", function() { + player1Score = 0; + player2Score = 0; + resetBall(); + cancelAnimationFrame(requestId); + requestId = requestAnimationFrame(gameLoop); + }); + + // Game loop + function gameLoop() { + update(); + requestId = requestAnimationFrame(gameLoop); + } + + // Start the game loop + gameLoop(); + }); + \ No newline at end of file diff --git a/Ping Pong/styles.css b/Ping Pong/styles.css new file mode 100644 index 000000000..a8a8f1f4e --- /dev/null +++ b/Ping Pong/styles.css @@ -0,0 +1,72 @@ +body, +html { + margin: 0; + padding: 0; + height: 100%; +} + +body { + flex-direction: column; + justify-content: center; + background-color: #000; + color: #fff; + font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; +} + +body, +header { + display: flex; + align-items: center; +} + +header { + justify-content: space-around; + width: 100%; +} + +.player { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + line-height: 1.25; +} + +.player .player__score { + display: block; + font-weight: 700; + font-size: 2rem; +} + +.player .player__keys { + font-size: 1.25rem; + color: grey; +} + +canvas { + margin-top: 1rem; + border: 1px solid grey; +} + +.controls { + display: flex; + justify-content: center; + margin-top: 1rem; +} + +button { + margin: 0 0.5rem; + padding: 0.5rem 1rem; + font-size: 1rem; + background-color: #fff; + color: #000; + border: none; + border-radius: 4px; + cursor: pointer; +} + +button:hover { + background-color: #ccc; +} + + \ No newline at end of file From 4d64120ae31ec1b9843a52d2f6d2ba407101b643 Mon Sep 17 00:00:00 2001 From: Ayan Joshi Date: Mon, 9 Oct 2023 22:30:35 +0530 Subject: [PATCH 3/6] commit --- {Ping Pong => PingPong}/README.md | 0 {Ping Pong => PingPong}/Screenshot (188).png | Bin {Ping Pong => PingPong}/index.html | 0 {Ping Pong => PingPong}/script.js | 0 {Ping Pong => PingPong}/styles.css | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename {Ping Pong => PingPong}/README.md (100%) rename {Ping Pong => PingPong}/Screenshot (188).png (100%) rename {Ping Pong => PingPong}/index.html (100%) rename {Ping Pong => PingPong}/script.js (100%) rename {Ping Pong => PingPong}/styles.css (100%) diff --git a/Ping Pong/README.md b/PingPong/README.md similarity index 100% rename from Ping Pong/README.md rename to PingPong/README.md diff --git a/Ping Pong/Screenshot (188).png b/PingPong/Screenshot (188).png similarity index 100% rename from Ping Pong/Screenshot (188).png rename to PingPong/Screenshot (188).png diff --git a/Ping Pong/index.html b/PingPong/index.html similarity index 100% rename from Ping Pong/index.html rename to PingPong/index.html diff --git a/Ping Pong/script.js b/PingPong/script.js similarity index 100% rename from Ping Pong/script.js rename to PingPong/script.js diff --git a/Ping Pong/styles.css b/PingPong/styles.css similarity index 100% rename from Ping Pong/styles.css rename to PingPong/styles.css From 8adb9a696189c235674c5b065ea89f35c43cc570 Mon Sep 17 00:00:00 2001 From: Ayan Joshi Date: Mon, 9 Oct 2023 23:11:35 +0530 Subject: [PATCH 4/6] commit --- PingPong/{ => ayan-joshi}/README.md | 0 PingPong/{ => ayan-joshi}/Screenshot (188).png | Bin PingPong/{ => ayan-joshi}/index.html | 0 PingPong/{ => ayan-joshi}/script.js | 0 PingPong/{ => ayan-joshi}/styles.css | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename PingPong/{ => ayan-joshi}/README.md (100%) rename PingPong/{ => ayan-joshi}/Screenshot (188).png (100%) rename PingPong/{ => ayan-joshi}/index.html (100%) rename PingPong/{ => ayan-joshi}/script.js (100%) rename PingPong/{ => ayan-joshi}/styles.css (100%) diff --git a/PingPong/README.md b/PingPong/ayan-joshi/README.md similarity index 100% rename from PingPong/README.md rename to PingPong/ayan-joshi/README.md diff --git a/PingPong/Screenshot (188).png b/PingPong/ayan-joshi/Screenshot (188).png similarity index 100% rename from PingPong/Screenshot (188).png rename to PingPong/ayan-joshi/Screenshot (188).png diff --git a/PingPong/index.html b/PingPong/ayan-joshi/index.html similarity index 100% rename from PingPong/index.html rename to PingPong/ayan-joshi/index.html diff --git a/PingPong/script.js b/PingPong/ayan-joshi/script.js similarity index 100% rename from PingPong/script.js rename to PingPong/ayan-joshi/script.js diff --git a/PingPong/styles.css b/PingPong/ayan-joshi/styles.css similarity index 100% rename from PingPong/styles.css rename to PingPong/ayan-joshi/styles.css From ee6acac6ae28489033b6a999ca5c902d3f773f65 Mon Sep 17 00:00:00 2001 From: Ayan Joshi Date: Mon, 9 Oct 2023 23:19:45 +0530 Subject: [PATCH 5/6] commit --- Sorting Visualizer/Readme.md | 28 ----------- Sorting Visualizer/index.html | 19 ------- Sorting Visualizer/script.js | 94 ----------------------------------- Sorting Visualizer/style.css | 66 ------------------------ 4 files changed, 207 deletions(-) delete mode 100644 Sorting Visualizer/Readme.md delete mode 100644 Sorting Visualizer/index.html delete mode 100644 Sorting Visualizer/script.js delete mode 100644 Sorting Visualizer/style.css diff --git a/Sorting Visualizer/Readme.md b/Sorting Visualizer/Readme.md deleted file mode 100644 index c251dcdbd..000000000 --- a/Sorting Visualizer/Readme.md +++ /dev/null @@ -1,28 +0,0 @@ -# Sorting-Visualizer -The Sorting Visualizer is a basic web application that allows you to visualize the process of sorting on a set of randomly generated bars. - -You can have a look , how it's working ! - -https://ayan-joshi.github.io/Sorting-Visualizer/ -# Technologies Used - -HTML - -CSS - -JavaScript - -# How to Use -Clone this repository to your local machine. - -Open index.html in your web browser. - -Click the "Randomize" button to generate a random set of bars. - -Select a sorting algorithm from the dropdown menu and click the "Sort" button to visualize the sorting process. - -# Screenshots - -![Screenshot 2023-08-03 203608](https://github.com/ayan-joshi/Sorting-Visualizer/assets/96243602/7ca1ebc1-42e7-47d7-a43f-4110fb769cce) - -![Screenshot 2023-08-03 203535](https://github.com/ayan-joshi/Sorting-Visualizer/assets/96243602/67209be1-5044-4cfa-beac-fb5ee129431d) \ No newline at end of file diff --git a/Sorting Visualizer/index.html b/Sorting Visualizer/index.html deleted file mode 100644 index 4b2404d58..000000000 --- a/Sorting Visualizer/index.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - Sorting Visualizer - - - -

Sorting Visualizer

-
- -
- -
- - -
- - - diff --git a/Sorting Visualizer/script.js b/Sorting Visualizer/script.js deleted file mode 100644 index 7f30df140..000000000 --- a/Sorting Visualizer/script.js +++ /dev/null @@ -1,94 +0,0 @@ -const n = 20 -const array=[]; - -init(); - -let audioCtx=null; - -function playNote(freq){ - if(audioCtx==null){ - audioCtx=new( - AudioContext || - webkitAudioContext || - window.webkitAudioContext - )(); - } - const dur = 0.1; - const osc = audioCtx.createOscillator(); - osc.frequency.value=freq; - osc.start(); - osc.stop(audioCtx.currentTime+dur); - const node=audioCtx.createGain(); - node.gain.value=0.1; - node.gain.linearRampToValueAtTime( - 0, audioCtx.currentTime+dur - ); - osc.connect(node); - node.connect(audioCtx.destination); -} - - -function init(){ - for(let i=0;i array[i]){ - swapped = true; - moves.push({indices:[i-1,i],type:"swap"}); - [array[i-1],array[i]] = [array[i],array[i-1]]; - } - } - }while(swapped); - return moves; -} - -function showBars(move){ - container.innerHTML=""; - for(let i=0;i Date: Wed, 11 Oct 2023 22:40:03 +0530 Subject: [PATCH 6/6] commmit --- {PingPong => PingPongGame}/ayan-joshi/README.md | 0 .../ayan-joshi/Screenshot (188).png | Bin {PingPong => PingPongGame}/ayan-joshi/index.html | 0 {PingPong => PingPongGame}/ayan-joshi/script.js | 0 {PingPong => PingPongGame}/ayan-joshi/styles.css | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename {PingPong => PingPongGame}/ayan-joshi/README.md (100%) rename {PingPong => PingPongGame}/ayan-joshi/Screenshot (188).png (100%) rename {PingPong => PingPongGame}/ayan-joshi/index.html (100%) rename {PingPong => PingPongGame}/ayan-joshi/script.js (100%) rename {PingPong => PingPongGame}/ayan-joshi/styles.css (100%) diff --git a/PingPong/ayan-joshi/README.md b/PingPongGame/ayan-joshi/README.md similarity index 100% rename from PingPong/ayan-joshi/README.md rename to PingPongGame/ayan-joshi/README.md diff --git a/PingPong/ayan-joshi/Screenshot (188).png b/PingPongGame/ayan-joshi/Screenshot (188).png similarity index 100% rename from PingPong/ayan-joshi/Screenshot (188).png rename to PingPongGame/ayan-joshi/Screenshot (188).png diff --git a/PingPong/ayan-joshi/index.html b/PingPongGame/ayan-joshi/index.html similarity index 100% rename from PingPong/ayan-joshi/index.html rename to PingPongGame/ayan-joshi/index.html diff --git a/PingPong/ayan-joshi/script.js b/PingPongGame/ayan-joshi/script.js similarity index 100% rename from PingPong/ayan-joshi/script.js rename to PingPongGame/ayan-joshi/script.js diff --git a/PingPong/ayan-joshi/styles.css b/PingPongGame/ayan-joshi/styles.css similarity index 100% rename from PingPong/ayan-joshi/styles.css rename to PingPongGame/ayan-joshi/styles.css