-1

このスクリプトで一致する数字を確認するにはどうすればよいですか。ここで立ち往生しています。ユーザー番号の配列と宝くじ番号の配列を比較し、正解した数字がある場合はその数を賞金とともに表示する必要があります。

function numbers() {

    var numbercount = 6;
    var maxnumbers = 40;

    var ok = 1;
    r = new Array(numbercount);
    for (var i = 1; i <= numbercount; i++) {
        r[i] = Math.round(Math.random() * (maxnumbers - 1)) + 1;
    }
    for (var i = numbercount; i >= 1; i--) {
        for (var j = numbercount; j >= 1; j--) {
            if ((i != j) && (r[i] == r[j])) ok = 0;
        }
    }
    if (ok) {
        var output = "";
        for (var k = 1; k <= numbercount; k++) {
            output += r[k] + ", ";
        }
        document.lotto.results.value = output;
    } else numbers();

}

function userNumbers() {
    var usersNumbers = new Array(5);
    for (var count = 0; count <= 5; count++) {
        usersNumbers[count] = window.prompt("Enter your number " + (count + 1) + ": ");
    }
    document.lotto.usersNumbers.value = usersNumbers;
}
4

3 に答える 3

1

これはロト番号ジェネレーターとスコアリング システムです。ユーザー入力の検証はあなたに任せます。

function lottoGen(){
    var lottoNumbers = [];
    for(var k = 0; k<6; k++){
        var num = Math.floor(Math.random()*41);
        if(lottoNumbers.indexOf(num) != -1){
            lottoNumbers.push(num);
        }
    }
        return lottoNumbers;
}

function scoreIt(){
    var usersNumbers = document.getElementsByName('usersNumbers').item(0);
    usersNumbers = String(usersNumbers)
    usersNumbers = usersNumbers.split(' ');
    var matches = 0;
    for(var i = 0; i<6; i++){
        if(lottoNumbers.indexOf(usersNumbers[i]) != -1){matches++;}
    }
    return matches;
}
于 2013-10-30T19:35:40.047 に答える
0

こんにちは、私はこれに不慣れで、自分の背中から学ぼうとしているので、明らかに私は専門家ではありませんが、上記のコードは、動作させることができないという事実を除けば、私にとって非常に理にかなっています..試してみましたconsole.log に RETURN と表示されているので、数字を確認できましたが、まだ空の配列が表示されているだけです。これは、ループの外にあることに関係していると思いました..さまざまな方法を試しましたが、同じ番号をループする配列または6つの番号を持つ配列が得られますが、そのうちのいくつかは繰り返されます..

function lottoGen(){
    var lottoNumbers = [];
    for(var k = 0; k<6; k++){
        var num = Math.floor(Math.random()*41);
        if(lottoNumbers.indexOf(num) != -1){
            lottoNumbers.push(num);
        }
    }
        return lottoNumbers;
}
于 2015-02-03T14:05:15.107 に答える
0

Lotto JS: CODEPEN デモ >> こちら <<

(function(){
  var btn = document.querySelector("button");
  var output = document.querySelector("#result");

  function getRandom(min, max){
      return Math.round(Math.random() * (max - min) + min);
  }

  function showRandomNUmbers(){
      var numbers = [], 
          random;

      for(var i = 0; i < 6; i++){   

        random = getRandom(1, 49);
        while(numbers.indexOf(random) !== -1){
            console.log("upps (" + random + ") it is in already.");
            random = getRandom(1, 49);
            console.log("replaced with: (" + random + ").");
        }

        numbers.push(random);

      }

    output.value = numbers.join(", ");

  }
  btn.onclick = showRandomNUmbers;
})();
于 2016-03-19T02:08:34.613 に答える