2016-04-25 9 views
0

私は数時間でプログラミングプロジェクトを完了しました。ハンガーマンの特定の部分だけをペイントすることができます。これは、ユーザーの誤った試行の量に依存します。私のプログラミングクラスの教師は、ハングマンの描画を別のクラスにする必要があります。私が抱えている問題は、paintComponentを使ってクラスに不正な試行回数を送信することです。paintComponentは私にストレスを与えています。 Hangmanプログラミングプロジェクト

if(updatedChallenge == challenge) 
    { 
     incorrectTries += 1; 
    } 
    challenge = updatedChallenge; 

チャレンジ==更新チャレンジは、ユーザーが推測する前の隠れた単語と、ユーザーが推測した後の隠れた単語を指します。それらがまだ等しい場合は、ユーザーが間違った選択をしたことを意味します。 1が不正な試行の合計数に追加されます。ここで

は私の他のクラスである:

class HangmanPicture extends JPanel 
{ 
    public void paintComponent(Graphics g) 
    { 
     super.paintComponent(g); 

     g.setColor(Color.BLACK); 
     g.drawLine(250, 300, 300, 300); //Platform 

     g.drawLine(275, 300, 275, 200); //Pole 

     g.setColor(Color.YELLOW); 
     g.drawLine(275, 200, 350, 200); //Rope 

     g.drawLine(350, 200, 350, 225); //Noose 

     g.setColor(Color.CYAN); 
     g.drawOval(350, 225, 15, 15); //Head 

     g.drawLine(350, 230, 350, 260); //Torso 

     g.drawLine(350, 240, 340, 230); //Left Arm 

     g.drawLine(350, 240, 360, 230); // Right Arm 

     g.drawLine(350, 260, 330, 280); // Left Leg 

     g.drawLine(350, 260, 390, 280); // Right Leg 
    } 
} 

私は体の各部分がクラスに間違った試行回数を送信するために私を必要とする各間違って試して、後に追加されますif文を載せていきたいと思います。番号を送信しようとするたびに、いつもどうにかしてpaintComponentと干渉します

何か助けが大いにありがたいです、私は絶望的です。ありがとうございました!

+0

コードが "番号[INGの]送信" は表示されません。コンパイラのエラーメッセージを必ず読んで(そして研究してください)。 – user2864740

答えて

0

JPanelクラスを拡張しているので、追加のメソッドやフィールドをクラスに追加し、HangmanPictureが使用されている場所で使用することができます。

HangmanPicture panel = new HangmanPicture(); 
    ... 
    if(updatedChallenge == challenge) 
    { 
     panel.addIncorrectAttempt(); 
    } 
    challenge = updatedChallenge; 

クラスHangmanPictureはJPanelの {プライベートint型incorrectAttempts = 0を拡張します。

// Add one to counter 
public void addIncorrectAttempt(){ 
    incorrectAttempte++; 
} 

// Get how many times the player entered an incorrect number 
public int getIncorrectAttempts(){ 
    return incorrectAttempts; 
} 
public void paintComponent(Graphics g) 
{ 
    super.paintComponent(g); 

    g.setColor(Color.BLACK); 
    if(incorrectAttempts >= 1){ 
     g.drawLine(250, 300, 300, 300); //Platform 
    } 

    if(incorrectAttempts >= 2){ 
     g.drawLine(275, 300, 275, 200); //Pole 
    } 
} 

}

+0

これはかなり助けてくれました。ありがとう!私はしかし、いくつかの質問があります。ハングマンは、間違った文字が何回使われても、まったく表示されません(もっとコードを見る必要があるなら、私はそれをすることができます)。また、私は少し論理と混同しています。間違った試行はどのようにプログラムのコースを重ね合わせると思われますか?私のような初心者を助けてくれてありがとう:) – JustinHoustin

関連する問題