JavaScript로 무작위 카드 생성기 만들기
16709 단어 tutorialjavascript
다음 마크업으로
index.html
파일을 만들어 시작하겠습니다.<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Random Playing Card</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<script src="script.js"></script>
</body>
</html>
그런 다음
script.js
파일을 만들고 52장의 카드 놀이에 대한 값을 포함하는 배열을 생성하는 데 사용할 deckBuilder
함수를 추가합니다.function deckBuilder() {
// ...
}
내부
deckBuilder
는 카드 놀이 데크에 사용되는 값과 슈트를 정의합니다.const values = [ "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", ];
const suits = ["Hearts", "Diamonds", "Spades", "Clubs"];
다음은
suits
배열을 반복하면서 values
배열을 반복하고 결합된 데이터를 cards
배열로 푸시합니다.const cards = [];
for (let s = 0; s < suits.length; s++) {
for (let v = 0; v < values.length; v++) {
const value = values[v];
const suit = suits[s];
cards.push({ value, suit });
}
}
return cards;
이제 다음과 같이 구성된 52장의 카드 놀이에 대한 슈트/값 조합으로 배열을 생성하는 함수가 있습니다.
0: {value: "A", suit: "Hearts"}
1: {value: "2", suit: "Hearts"}
2: {value: "3", suit: "Hearts"}
다음으로 카드 배열을 전달하는
randomCard
함수를 생성합니다.function randomCard(cards) {
// ...
}
const cards = deckBuilder();
randomCard(cards);
randomCard
함수 내에서 0에서 51 사이의 난수(배열 인덱스가 0에서 시작하므로 52가 아님)를 생성하고 해당 인덱스의 cards
배열에서 데이터를 가져옵니다. 이 데이터는 나중에 더 쉽게 작업할 수 있도록 변수에 저장됩니다.const random = Math.floor(Math.random() * 51);
const cardValue = cards[random].value;
const cardSuit = cards[random].suit;
각 플레잉 카드 슈트(♥/♦/♠/♣)에 대해 HTML character entities이 있으므로 이미지를 사용하지 않고도 이것을 플레잉 카드에 출력할 수 있습니다. 다이아몬드의 엔티티 코드가 잘렸기 때문에
"Diamonds"
문자열도 잘라야 하고, 다른 슈트 엔티티 코드는 문자열( ♥ ♠ ♣
)과 일치하므로 소문자로 변환하기만 하면 됩니다.let entity;
cardSuit === "Diamonds" ? (entity = "♦") : (entity = "&" + cardSuit.toLowerCase() + ";");
마지막으로 임의의 카드를 HTML 페이지에 렌더링할 수 있습니다. 이 프로젝트의 final design을 보면
cardValue
와 entity
가 반복된 이유를 알 수 있습니다.const card = document.createElement("div");
card.classList.add("card", cardSuit.toLowerCase());
card.innerHTML =
'<span class="card-value-suit top">' + cardValue + entity + '</span>' +
'<span class="card-suit">' + entity + '</span>' +
'<span class="card-value-suit bot">' + cardValue + entity + '</span>';
document.body.appendChild(card);
기능이 완료되면 임의의 카드에 CSS를 추가할 수 있습니다.
style.css
라는 파일을 만들고 다음을 추가하여 기본 카드 모양을 만듭니다..card {
position: relative;
width: 105px;
height: 150px;
border-radius: 5px;
border: 1px solid #ccc;
box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.25);
}
.card
가 상대적으로 위치하기 때문에 상단 및 하단 텍스트에 절대 위치를 사용할 수 있습니다. 또한 실제 카드처럼 하단의 텍스트를 180도 회전합니다..card-value-suit {
display: inline-block;
position: absolute;
}
.card-value-suit.top {
top: 5px;
left: 5px;
}
.card-value-suit.bot {
transform: rotate(180deg);
bottom: 5px;
right: 5px;
}
.card-suit {
font-size: 50px;
position: absolute;
top: 50%;
transform: translateY(-50%);
left: 25%;
}
마지막으로 각 슈트의 색상을 추가합니다.
.card.spades,
.card.clubs {
color: black;
}
.card.hearts,
.card.diamonds {
color: red;
}
Reference
이 문제에 관하여(JavaScript로 무작위 카드 생성기 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/michaelburrows/create-a-random-playing-card-generator-with-javascript-1k7k텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)