0

私は先月立ち往生しており、解決策が見つかりませんでした。私の問題は、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() が呼び出されたとき

私の英語は下手です 素敵な解決策を待っていることを理解してくれてありがとう

4

0 に答える 0