Skip to Content

Rock-Paper-Scissors HTML

rock_paper_scissors.html
<!-- Using a combination of HTML, HTML forms, CSS, and JavaScript --> <!-- we will build a simple version of a Rock, Paper, Scissors game, --> <!-- where a user can play against the computer. --> <html> <!-- Inside the head tag you include some information about the page. --> <head> <!-- The title is what shows on your browser tab. --> <title>Play Rock-Paper-Scissors</title> <!-- Add a link to the CSS file that has the required styling. --> <link href="rps_complete.css" rel="stylesheet" type="text/css" /> <!-- Add a link to the JavaScript file that has the required functions to be executed for this page. --> <script src="rps_complete.js"></script> </head> <!-- Inside the body tags you include the actual page content to be displayed. --> <body> <p class="box-title">The Rock-Paper-Scissors Game</p> <p class="styled-para"> This is the popular game between two players where each player chooses one of three options and the winner is decided by a hierarchy rule that goes: </p> <ul class="styled-para"> <li>Rock beats Scissors</li> <li>Paper beats Rock</li> <li>Scissors beats Paper</li> </ul> <!-- CSS styles can also be defined inline for an element as below. --> <!-- Use sparingly only for ad-hoc styling for a specific element. --> <!-- Overuse can lead to code that is difficult to manage and maintain. --> <h2 style="font-family: Arial;color:green;">Let's Play!</h2> <p class="styled-para"> Enter one of the three options: </p> <!-- A Form is a collection of elements that accept user inputs. --> <!-- There are a few types of form elements, the common ones being --> <!-- a text input box where the user can input a value --> <!-- and a button which the user can click on to initiate an action. --> <form> <!-- The form action is processed in the JavaScript code --> <!-- To be able to identify the text box to read the value from --> <!-- the element is given an id. --> <input type="text" id="user-call-input" /> <p id="error-message" style="color:red"></p> <!-- All elements have what are known as events which refer to possible user actions. --> <!-- Each type of element will have its own set of relevant events. --> <!-- For example, a button element will have an "onclick" event. --> <!-- A JavaScript function can be attached to the events that need to be "handled". --> <!-- When the event occurs, such as the user clicking on a button, --> <!-- the attached function is executed. --> <button type="button" onclick="playRound()">Play!</button> </form> <!-- We can create empty elements as placeholders --> <!-- that will be dynamically populated with values --> <!-- by the Javacript function as it executes. --> <!-- Each element must have an id so the function can identify it. --> <p class="styled-para"> <strong>Your call: </strong><span id="your-call" class="big-number"></span> </p> <!-- So far, we received an input from the user and --> <!-- displayed it on the page using the JavaScript function --> <!-- Now we add the game logic where the computer generates a random call --> <!-- and the winner is determined --> <!-- Create placeholder elements for the values generated by the game logic --> <p class="styled-para"> <strong>Computer call: </strong><span id="computer-call" class="big-number"></span> </p> <p class="styled-para"> <!-- Some more inline CSS styling. --> <span id="round-winner-call" class="big-number" style="font-family: Arial;color:green;"></span> </p> <p class="styled-para"> Score after <span id="rounds">0</span> rounds: </p> <p class="styled-para"> You: <span id="user-score" class="big-number">0</span> Computer: <span id="computer-score" class="big-number">0</span> Draws: <span id="no-score-count" class="big-number">0</span> </p> </body> </html>