
Piedra, papel o tijeras
HTML
Publicado el 27 de Diciembre del 2023 por Manuel (12 códigos)
755 visualizaciones desde el 27 de Diciembre del 2023
Típico juego de piedra, papel o tijeras en html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>CSS Rock Paper Scissors | untoldcoding</title>
<style>
@import url("https://fonts.googleapis.com/css?family=Acme&display=swap");
@keyframes changeOrder {
from {
z-index: 9;
}
to {
z-index: 1;
}
}
@keyframes handShake {
0%,
100% {
transform: rotate(10deg);
}
50% {
transform: rotate(-10deg);
}
}
@keyframes handShake2 {
0%,
100% {
transform: rotateY(180deg) rotate(10deg);
}
50% {
transform: rotateY(180deg) rotate(-10deg);
}
}
html,
body {
margin: 0;
padding: 0;
border: 0;
line-height: 1;
font-family: Acme, Arial, sans-serif;
background-color: black;
color: white;
}
form {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
}
h1 {
text-align: center;
}
#hands {
text-align: center;
}
input:checked ~ div .hand {
animation: none !important;
}
.hand {
margin: 20px;
width: 200px;
height: 200px;
position: relative;
transform: rotate(10deg);
display: inline-block;
animation: handShake 2s infinite;
}
.hand > div {
position: absolute;
box-sizing: border-box;
border: 2px solid black;
background: rgb(14, 255, 247);
transition: all 0.1s;
}
.fist {
height: 110px;
left: 40px;
top: 50px;
width: 90px;
border-radius: 20px 0 0 20px;
}
.finger {
width: 70px;
height: 30px;
border-radius: 20px;
left: 80px;
transform-origin: 0 50%;
}
.finger-1 {
top: 50px;
--dif: 0px;
}
.finger-2 {
top: 78px;
left: 84px;
--dif: 4px;
}
.finger-3 {
top: 106px;
--dif: 0px;
}
.finger-4 {
top: 134px;
height: 26px;
left: 76px;
--dif: -8px;
}
div.thumb {
width: 35px;
height: 70px;
border-radius: 0 20px 20px 20px;
top: 50px;
left: 80px;
border-left: 0 solid;
box-shadow: -17px 6px 0 -15px rgb(0, 0, 0);
}
div.arm {
width: 22px;
height: 70px;
left: 20px;
top: 70px;
border: 0;
border-top: 2px solid rgb(255, 248, 248);
border-bottom: 2px solid rgb(255, 255, 255);
}
#user-hand {
transform: rotateY(180deg);
animation: handShake2 2s infinite;
position: relative;
}
input[type="radio"] {
position: absolute;
top: -1000in;
left: -1000in;
}
input[id$="scissors"]:checked ~ div #user-hand .finger-1,
input[id^="scissors"]:checked ~ div #computer-hand .finger-1 {
width: 130px;
transform: rotate(-5deg);
}
input[id$="scissors"]:checked ~ div #user-hand .finger-2,
input[id^="scissors"]:checked ~ div #computer-hand .finger-2 {
width: 130px;
transform: rotate(5deg);
}
input[id$="paper"]:checked ~ div #user-hand .finger-1,
input[id$="paper"]:checked ~ div #user-hand .finger-2,
input[id$="paper"]:checked ~ div #user-hand .finger-3,
input[id$="paper"]:checked ~ div #user-hand .finger-4,
input[id^="paper"]:checked ~ div #computer-hand .finger-1,
input[id^="paper"]:checked ~ div #computer-hand .finger-2,
input[id^="paper"]:checked ~ div #computer-hand .finger-3,
input[id^="paper"]:checked ~ div #computer-hand .finger-4 {
left: 124px;
left: calc(124px + var(--dif));
width: 80px;
border-left: 0;
border-radius: 0 20px 20px 0;
}
#rock-rock:checked ~ div h2::before,
#paper-paper:checked ~ div h2::before,
#scissors-scissors:checked ~ div h2::before {
content: "You Tied!";
}
#rock-paper:checked ~ div h2::before,
#paper-scissors:checked ~ div h2::before,
#scissors-rock:checked ~ div h2::before {
content: "You Win!";
}
#rock-scissors:checked ~ div h2::before,
#paper-rock:checked ~ div h2::before,
#scissors-paper:checked ~ div h2::before {
content: "Computer Wins!";
}
#text {
text-align: center;
display: none;
color: rgb(13, 189, 189);
}
input:checked ~ #text {
display: block;
}
#hands {
display: flex;
align-items: center;
justify-content: center;
}
#symbol {
width: 30px;
height: 200px;
display: inline-flex;
flex-direction: column;
}
#symbol > div {
flex: 1;
align-items: center;
justify-content: center;
width: 60px;
height: 60px;
overflow: hidden;
position: relative;
}
label:active {
position: static;
margin-left: 60px;
}
label:active::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 60px;
z-index: 10;
height: 60px;
}
label {
animation: changeOrder 0.45s infinite linear;
background: #000000;
border: 1px solid #16dece;
box-sizing: border-box;
cursor: pointer;
display: block;
height: 60px;
width: 60px;
line-height: 60px;
font-size: 2rem;
position: absolute;
top: 0;
left: 0;
user-select: none;
}
label:nth-of-type(1) {
animation-delay: -0s;
}
label:nth-of-type(2) {
animation-delay: -0.15s;
}
label:nth-of-type(3) {
animation-delay: -0.3s;
}
.untoldcoding {
background-color: #000000;
padding: 20px;
color: #fffafa;
font-size: 15px;
font-weight: 500;
border: 1px solid rgb(13, 211, 214);
}
</style>
</head>
<body>
<form>
<input type="radio" id="rock-rock" name="rock-paper-scissors" />
<input type="radio" id="rock-paper" name="rock-paper-scissors" />
<input type="radio" id="rock-scissors" name="rock-paper-scissors" />
<input type="radio" id="paper-rock" name="rock-paper-scissors" />
<input type="radio" id="paper-paper" name="rock-paper-scissors" />
<input type="radio" id="paper-scissors" name="rock-paper-scissors" />
<input type="radio" id="scissors-rock" name="rock-paper-scissors" />
<input type="radio" id="scissors-paper" name="rock-paper-scissors" />
<input type="radio" id="scissors-scissors" name="rock-paper-scissors" />
<div>
<h1>PIEDRA, PAPEL O TIJERAS</h1>
<div id="hands">
<div class="hand" id="computer-hand">
<div class="fist"></div>
<div class="finger finger-1"></div>
<div class="finger finger-2"></div>
<div class="finger finger-3"></div>
<div class="finger finger-4"></div>
<div class="thumb"></div>
<div class="arm"></div>
</div>
<div class="hand" id="user-hand">
<div class="fist"></div>
<div class="finger finger-1"></div>
<div class="finger finger-2"></div>
<div class="finger finger-3"></div>
<div class="finger finger-4"></div>
<div class="thumb"></div>
<div class="arm"></div>
</div>
<div id="symbol">
<div>
<label for="rock-rock">✊</label>
<label for="paper-rock">✊</label>
<label for="scissors-rock">✊</label>
</div>
<div>
<label for="rock-paper">
Comentarios sobre la versión: 5 (0)
No hay comentarios