인프런 커뮤니티 질문&답변

사랑수학님의 프로필 이미지

작성한 질문수

웹 게임을 만들며 배우는 자바스크립트

자스스톤 응용법 질문

20.05.20 15:16 작성

·

186

0

 math 객체를 사용하셔서 난수값 연산으로 랜덤 능력치를 가진 5장의 카드가 덱에 생성되게 되어있는 것 같습니다만

 카드

var 상대 = {

    영웅document.getElementById('rival-hero'),
    document.getElementById('rival-deck'),
    필드document.getElementById('rival-cards'),
    코스트document.getElementById('rival-cost'),
    덱data: [알파, 베타, 감마, 오메가, 제타, 델타, 빔펠],
    영웅data: [],
    필드data: [],
    선택카드null,

    선택카드datanull, 

이런 식으로 기존 코드에 덱 data 배열에 따로 미리 만들어둔 카드 이름을 넣고

이런 식으로 미리 카드에 따른 능력치 값을 입력시켜놓았는데 이걸 화면상에 구현하는 법을 모르겠습니다.

function Card(nameatthpcost) {
    this.name = name;
    this.att = att;
    this.hp = hp;
    this.cost = cost;
}
var 알파 = new Card('알파'8351)
var 베타 = new Card('베타'90085706)
var 감마 = new Card('감마'5301)
var 오메가 = new Card('오메가'45075005)
var 제타 = new Card('제타'15702)
var 델타 = new Card('델타'74068505)

답변 3

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

2020. 05. 21. 12:35

덱data에 미리 이름을 넣지마시고

new Card로 만드신 후에

상대.덱data.push(알파)

상대.덱data.push(베타)

이런 식으로 추가하세요.

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

2020. 05. 21. 14:42

일단 덱data에 10장 다 넣어놓고 랜덤하게 5장 뽑아서 버리시면 되겠습니다. 랜덤하게 뽑는 것은 로또 추첨기 때 했었죠?

0

사랑수학님의 프로필 이미지
사랑수학
질문자

2020. 05. 21. 13:16

감사합니다 상대덱과 내덱에 미리 구상한 10장의 카드 데이터를 각각 입력하고 이 중 랜덤으로 5장을 뽑아서 게임을 진행하게 할려하면  이 부분들을 어떻게 고쳐야 할까요?


var 상대 = {
    영웅document.getElementById('rival-hero'),
    document.getElementById('rival-deck'),
    필드document.getElementById('rival-cards'),
    코스트document.getElementById('rival-cost'),
    덱data: [],
    영웅data: [],
    필드data: [],
    선택카드null,
    선택카드datanull,
};

var  = {
    영웅document.getElementById('my-hero'),
    document.getElementById('my-deck'),
    필드document.getElementById('my-cards'),
    코스트document.getElementById('my-cost'),
    덱data: [],
    영웅data: [],
    필드data: [],
    선택카드null,
    선택카드datanull,
};
function Card(영웅내카드) {
    if (영웅) {
      this.att = Math.ceil(Math.random() * 2);
      this.hp = Math.ceil(Math.random() * 5) + 25;
      this.hero = true;
      this.field = true;
    } else {
      this.att = Math.ceil(Math.random() * 5);
      this.hp = Math.ceil(Math.random() * 5);
      this.cost = Math.floor((this.att + this.hp) / 2);
    }
    if (내카드) {
      this.mine = true;
    }
 }