私は先月立ち往生しており、解決策が見つかりませんでした。私の問題は、4 人のプレイヤーのゲームを書いていることです。3 人はコンピューターで、1 人は人間です。
そのため、コンピューター用の play() 関数と、人間用のオーバーライドされた play() 関数が 1 つあります。人間のプレイヤーが使用する機能は次のとおりです
@Override
public void play(){
for(int i=0 ; i <13;i++){
getJLabels()[i].addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent evt)
{
int Index = getIndex(getJLabels(), (JLabel)evt.getSource());
getJLabels()[Index].setIcon(getHand()[Index].getBackSide());
getPlayerJLabel().setIcon(getHand()[Index].getCardImage());
setObjectForPlay(getHand()[Index]);
}
});
}
temp = getObjectForPlay();
return temp;
}
他の 3 人のプレイヤーは play() を使用して、オブジェクトを自動的に返します。つまり、マウスリスナーはこの human.play() 関数専用です
ネストされたループからこれらの関数を実行しています。ループのラウンドが完了すると、すべてのプレーヤーが play() ターンを完了し、次のループが開始されます。等々。
問題は、コンピュータの play() 関数が人間のクリックを待っていないことです。ループ再生時に人間の Play() を再生し、人間がクリックしてオブジェクトを返すのを待ちます。人間の play() がクリックで終了し、次にコンピュータの play() が呼び出されたとき
私の英語は下手です 素敵な解決策を待っていることを理解してくれてありがとう