2017-11-20 5 views
0

59行目のすべてが動作しているようです。私は間違いを見つけられませんでした。私は{}か()が不足していますが、わかりません。私は「TegnKupon」の唯一の間違いがあると思う。なぜなら、それは部分的なGoogle Chromeが私に変更を指示するからだ。私は学校のためにロッテティーケットを作ろうとしていますが、番号を描く必要があるとき(行59)

私はいくつかの仲間と話をしましたが、彼らはどちらも助けませんでした。彼らはそれを他の方法で、明らかにしました。

<!DOCTYPE html>  
<html>  
<head>  
<canvas id="myCanvas" width="600" height="300" style="border:1px solid #ff0000;"> 



</canvas> 

</head>  
<script type="text/javascript"> 
function find_randomtal(limit)  
{  
    var random_tal  
     var cont = true  
     while (cont)  
     { 
      random_tal=Math.round(Math.random()*100+1); 
      if (random_tal <=limit) 
      { 
       cont = false 
      } 
     } 
     return random_tal; 
    } 
var lottotal = []; 
    function Findlottotal() 
    { 
     var min=1; 
     var random_talny; 
     var lottotal = []; 
     for (var j=min; j<=7; j++) 
     { 
      random_talny = find_randomtal(36); 
      if (lottotal.indexOf(random_talny)<0) 
      { 
       console.log(j + "random_talny: " + random_talny + " Findes ikke "); 
       lottotal[j] = random_talny 
      } 
      else 
      { 
       console.log (j + "random_talny: " + random_talny + " Findes "); 
       j-- 
      } 
     } 
} 
var canvas = document.getElementById('myCanvas'); 
var ctx = canvas.getContext("2d"); 

function TegnKupon() 
{ 
    var taeller = 0 
    for (var j=1;j<=4;j++) 
    { 
     for (var i=1;i<=9;i++) 
     { 
      taeller = taeller+1 
      xpos=i*100-50 
      ypos=100*j-50 

      if (lottotal.indexOf(taeller)<0) 
      { 
       ctx.beginPath(); 
       ctx.fillStyle = "rgb(255,255,255)" 
       ctx.arc(xpos,ypos,50,0,2*Math.PI); 
       ctx.fillText("tallet",x,y+10) 
      } 
      else 
      { 
       ctx.beginPath(); 
       ctx.fillStyle = "rgb(255,0,0)" 
       ctx.arc(xpos,ypos,50,0,2*Math.PI); 
       ctx.fillText("tallet",x,y+10) 
      } 


     } 

    } 

} 
lottotal = Findlottotal() 


</script> 
<body onload="Findlottotal();TegnKupon()"> 

</body> 
</html> 
+0

どうしたらいいですか? –

+2

フィドル(jsfiddle.net)を追加する。それはより良い方法で問題を示すだろう。 – entiendoNull

答えて

1

上記の回答が示されているように、私が間違って見つけたものがいくつかありました:これはあなたが探しているものですか?

function find_randomtal(limit)  
 
{  
 
    var random_tal  
 
     var cont = true  
 
     while (cont)  
 
     { 
 
      random_tal=Math.round(Math.random()*100+1); 
 
      if (random_tal <=limit) 
 
      { 
 
       cont = false 
 
      } 
 
     } 
 
     return random_tal; 
 
} 
 

 
function Findlottotal() 
 
    { 
 
     var min=0; 
 
     var random_talny; 
 
     var lottotal = []; 
 
     for (var j=min; j<=7; j++) 
 
     { 
 
      random_talny = find_randomtal(36); 
 
      if (lottotal.indexOf(random_talny)<0) 
 
      { 
 
       console.log(j + "random_talny: " + random_talny + " Findes ikke "); 
 
       lottotal[j] = random_talny 
 
      } 
 
      else 
 
      { 
 
       console.log (j + "random_talny: " + random_talny + " Findes "); 
 
       j-- 
 
      } 
 
      console.log(lottotal); 
 
     } 
 
     return lottotal; 
 
} 
 
var canvas = document.getElementById('myCanvas'); 
 
var ctx = canvas.getContext("2d"); 
 

 
function TegnKupon(lottotal) 
 
{ 
 
    var taeller = 0 
 
    for (var j=1;j<=4;j++) 
 
    { 
 
     for (var i=1;i<=9;i++) 
 
     { 
 
      taeller = taeller+1 
 
      xpos=i*100-50 
 
      ypos=100*j-50 
 
      console.log("taller " + lottotal); 
 
      if (lottotal.indexOf(taeller)<0) 
 
      { 
 
       ctx.beginPath(); 
 
       ctx.fillStyle = "rgb(255,255,255)" 
 
       ctx.arc(xpos,ypos,50,0,2*Math.PI); 
 
       ctx.fillText("tallet",xpos,ypos+10) 
 
      } 
 
      else 
 
      { 
 
       ctx.beginPath(); 
 
       ctx.fillStyle = "rgb(255,0,0)" 
 
       ctx.arc(xpos,ypos,50,0,2*Math.PI); 
 
       ctx.fillText("tallet",xpos,ypos+10) 
 
      } 
 

 

 
     } 
 

 
    } 
 

 
} 
 

 

 
document.getElementsByTagName("body")[0].onload = function() { 
 
    var lottotal = Findlottotal(); 
 
    TegnKupon(lottotal); 
 
};
<!DOCTYPE html>  
 
<html>  
 
<head>  
 
</head>  
 
<canvas id="myCanvas" width="600" height="300" style="border:1px solid #ff0000;"> 
 
</canvas> 
 
<body> 
 
</body> 
 
</html>

0

このように関数を呼び出すべきではありません。また、あなたがそれらを定義せずにxyを参照している

function init(){ 
    Findlottotal(); 
    TegnKupon(); 
} 

window.onload = init(); 

をその代わりに、initと呼ばれる機能にそれらをラップし、オンロード

それを呼び出します。おそらく xposyposと言っていたと思いますか?

+0

本当にありがとうございますが、まだ私の描画を読み込むことはありません。それは赤いボックス(キャンバス) –

+0

あなたが歓迎されている場合は、それを助けてupvotingと私の答えを受け入れることを検討して描画します! –

+0

https://jsfiddle.net/sr51q5rp/ここをクリック –

1

ここで起こっていくつかのこと...

まず、xyTegnKuponで定義されていません。 xPosyPosを使用したかったでしょうか?

次に、lottotalFindlottotalという値が割り当てられていることに気付きましたが、この関数は何も返しません。 lottotalを返すために、Findlottotalの下に行を追加しました。

ここに私の調整のスニペットがあります。これはもはやコンソールエラーを出すものではありません。

<!DOCTYPE html>  
<html>  
<head>  
<canvas id="myCanvas" width="600" height="300" style="border:1px solid #ff0000;"> 



</canvas> 

</head>  
<script type="text/javascript"> 
    function find_randomtal(limit) {  
    var random_tal; 
    var cont = true; 

    while (cont) { 
     random_tal = Math.round(Math.random() * 100 + 1); 
     if (random_tal <= limit) { 
     cont = false; 
     } 
    } 
    return random_tal; 
    } 

    var lottotal = []; 

    function Findlottotal() { 
    var min = 1; 
    var random_talny; 

    var lottotal = []; 

    for (var j = min; j <= 7; j++) { 
     random_talny = find_randomtal(36); 
     if (lottotal.indexOf(random_talny) < 0) { 
     console.log(j + "random_talny: " + random_talny + " Findes ikke "); 
     lottotal[j] = random_talny; 
     } 
     else { 
     console.log (j + "random_talny: " + random_talny + " Findes "); 
     j--; 
     } 
    } 

    return lottotal; 
    } 

    var canvas = document.getElementById('myCanvas'); 
    var ctx = canvas.getContext("2d"); 

    function TegnKupon() 
    { 
    var taeller = 0 
    for (var j = 1; j <= 4; j++) 
    { 
     for (var i = 1; i <= 9; i++) 
     { 
     taeller = taeller + 1; 
     xpos = i * 100 - 50 
     ypos = 100 * j - 50; 

     if (lottotal.indexOf(taeller) < 0) { 
      ctx.beginPath(); 
      ctx.fillStyle = "rgb(255,255,255)"; 
      ctx.arc(xpos, ypos, 50, 0, 2 * Math.PI); 
      ctx.fillText("tallet", xpos, ypos + 10); 
     } 
     else { 
      ctx.beginPath(); 
      ctx.fillStyle = "rgb(255,0,0)" 
      ctx.arc(xpos,ypos,50,0,2*Math.PI); 
      ctx.fillText("tallet",xpos,ypos+10); 
     } 
     } 
    } 
    } 

    lottotal = Findlottotal() 


</script> 
<body onload="Findlottotal();TegnKupon()"> 

</body> 
</html> 
+0

'lottotal'の範囲は変更されません。再指定されません。 –

+0

ありがとうございました。私はあなたが正しいと思っています。( –

+0

@RobbieMilejczakあなたは正しいです。私はその提案を元に戻すために私の答えを更新しました。 –

0

私は、あなたが探しているものを出力わからないんだけど、私は2つの問題が見つかりました:中 1. lottotalは、TengKuponにも 2 TengKupon機能で定義されていませんがif/else、ctx.filltextは "x"と "y"をリストします。ここで「xpos」と「ypos」を使用することを意味しましたか?私がそれに応じて交換したとき、私は「タレット」を1回(「あれ」から)または複数回(「他者」から)グリッドしました

番号2は簡単ですが、番号1 TengKuponが利用できるようにするためには "lottotal"に戻っていない可能性があります。あなたのエラーは「lottotalを参照しているundefinedのindexofを読み取ることができません。FindLottotalからlottotalを返すことを意味するので、FindLottotal forループに「return lottotal」を追加します。そのよう:

var lottotal = []; 
    for (var j=min; j<=7; j++) 
    { 
     random_talny = find_randomtal(36); 
     if (lottotal.indexOf(random_talny)<0) 
     { 
      console.log(j + "random_talny: " + random_talny + " Findes ikke "); 
      lottotal[j] = random_talny 
     } 
     else 
     { 
      console.log (j + "random_talny: " + random_talny + " Findes "); 
      j-- 
     } 
     return lottotal; 
    } 

あなたが探しているものについての詳細を知らなくても、私はより多くの情報を提供することはできませんが、うまくいけば、これは次のステップにあなたを取得します

幸運

を!
関連する問題