2017-09-16 1 views
0

저는 자바 스크립트를 배우고 있으며 작은 주사위 게임을하고 있습니다. 게임에서 마우스를 클릭하면 주사위가 굴리고 주사위의 새로운면을 얻습니다. 나는 주사위 숫자를 굴려서 주사위의 얼굴을 바꾸었다. 나는 그것이 작동하도록 할 수 없습니다. 마우스를 클릭하면 난수를 한 번 처리하지만 항상 다른 것입니다. 그것은 6 이상이고 나는 다시 굴러 갈 수 없다. 마우스를 클릭하면 0 5 사이의 임의의 숫자를 생성 한 다음 대응하는 if 문이 주사위의 해당면을 표시하기로되어 있습니다. 나는 한 시간 이상 내 머리를 쥐어 봤고 그것이 효과가없는 이유를 알 수 없었습니다. 누군가 내 코드를보고 내가 뭘 잘못하고 있는지 말할 수 있습니까? 부디!는 작동하도록 javascript 프로그램을 얻을 수 없습니다.

var dice = 0; 

function setup() { 
    createCanvas(600, 400) 
} 

function draw() { 
    background(0); 
    if (dice == 0) { 
    rectMode(CENTER); 
    fill(255); 
    rect(300, 200, 50, 50); 
    rectMode(CENTER); 
    fill(0); 
    ellipse(300, 200, 5, 5) 
    } else if (dice == 1) { 
    rectMode(CENTER); 
    fill(255); 
    rect(300, 200, 50, 50); 
    fill(150); 
    ellipse(290, 190, 5, 5); 
    fill(150); 
    ellipse(310, 210, 5, 5); 
    } else if (dice == 2) { 
    rectMode(CENTER); 
    fill(255); 
    rect(300, 200, 50, 50); 
    fill(150); 
    ellipse(290, 190, 5, 5); 
    fill(150); 
    ellipse(310, 210, 5, 5); 
    fill(150) 
    ellipse(290, 210, 5, 5) 
    } else if (dice == 3) { 
    rectMode(CENTER); 
    fill(255); 
    rect(300, 200, 50, 50); 
    fill(150); 
    ellipse(290, 190, 5, 5); 
    fill(150); 
    ellipse(310, 210, 5, 5); 
    fill(150) 
    ellipse(290, 210, 5, 5); 
    fill(150); 
    ellipse(310, 190, 5, 5) 
    } else if (dice == 4) { 
    rectMode(CENTER); 
    fill(255); 
    rect(300, 200, 50, 50); 
    fill(150); 
    ellipse(290, 190, 5, 5); 
    fill(150); 
    ellipse(310, 210, 5, 5); 
    fill(150) 
    ellipse(290, 210, 5, 5); 
    fill(150); 
    ellipse(310, 190, 5, 5); 
    fill(150); 
    ellipse(300, 200, 5, 5) 
    } else { 
    rectMode(CENTER); 
    fill(255); 
    rect(300, 200, 50, 50); 
    fill(150); 
    ellipse(290, 190, 5, 5); 
    fill(150); 
    ellipse(310, 210, 5, 5); 
    fill(150) 
    ellipse(290, 210, 5, 5); 
    fill(150); 
    ellipse(310, 190, 5, 5); 
    fill(150); 
    ellipse(300, 210, 5, 5); 
    fill(150); 
    ellipse(300, 190, 5, 5) 
    } 
} 

function mousePressed() { 
    dice = random(5); 
} 
+0

코드 서식 지정에 대해 진지하게 생각해 보셨습니까? – philipp

+0

무작위 (5)는 무엇입니까? 그것은 당신 자신의 함수인가, JS의 Math.random 함수를 사용하고 싶습니까? – codeslayer1

+0

나는 그것이 무엇인지 아직 알지 못한다. 나는 random (5)을 넣음으로써 주사위 변수가 0과 5 사이의 난수로 바뀔 수 있다고 생각했습니다. 그것은 채우기 (random (255), 0,0)와 같은 다른 장소에서 작동합니다. 의견을 보내 주셔서 감사합니다. 나는 수학을 읽는다. 랜덤! – javajesse

답변

1

사용이 대신 dice = random(5)

dice = Math.floor(Math.random() * 6); 

인 Math.random()는 우리가 6 하지만 0 사이의 숫자가 6 0과 1 우리는 여러 IT 사이의 부동 소수점 수를 반환 5.22554545 우리는 Math.floor를 사용하여 바닥 수로 반올림하므로 0-5 (및 5 자체) 사이의 정수입니다. ===> 5.22324234 = 5

+0

와우, 그게 효과가있어! 정말 고맙습니다. 나는 왜 그런지 이해하지 못한다. 나는 그것을 아직까지 내 연구에서 만들지 않았다. 그것은 많은 것을 요구할지도 모르지만 누군가가 왜 나에게 설명하는지 설명 할 수 있습니다. 나는 정말로 감사 할 것입니다. – javajesse

+0

몇 가지 설명이 추가되었습니다. – SalmanAA

+0

답이 도움이된다면 대답으로 표시하십시오. – SalmanAA

관련 문제