2017-03-06 7 views
1

私はFirebaseを使用してAndroidスタジオでTicTacToeオンラインマルチプレイヤーゲームを作ろうとしています。私はボタン(TicTacToeの9ブロックのうちの1つ)に使用しているコードを以下に示します。今は、もう一度ボタンをクリックして他のユーザーにクリックする時間を与えると、他のボタンをクリックしないようにタイマーを使用しています。しかし、あるユーザーが他のユーザーがボタンをクリックするまでボタンをクリックできないようにしたいのです。そうする方法はありますか? なしのデフォルト値は&面& a1は "0"で、追加のデフォルト値は "1"ですが、rfaceは "face"からその値を得る文字列変数です。Androidでturn onClickを使ってtimerを置き換える方法は?

//below clicking 
     a1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       //below 
       //starting if condition 
       if (ra1.equals(nothing)){ 

        if (rface.equals(nothing)){ 
         a1.setBackgroundResource(R.drawable.rounded); 
         Firebase refChild = ref2.child("a1"); 
         refChild.setValue("round"); 
         refChild = ref2.child("face"); 
         refChild.setValue("one"); 
        } 

        else if (rface.equals(added)) { 
         a1.setBackgroundResource(R.drawable.crossed); 
         Firebase refChild = ref2.child("a1"); 
         refChild.setValue("cross"); 
         refChild = ref2.child("face"); 
         refChild.setValue("zero"); 
        } 
        //timer below 

        a1.setClickable(false); 
        a2.setClickable(false); 
        a3.setClickable(false); 
        b1.setClickable(false); 
        b2.setClickable(false); 
        b3.setClickable(false); 
        c1.setClickable(false); 
        c2.setClickable(false); 
        c3.setClickable(false); 
        new Handler().postDelayed(new Runnable() { 
         @Override 
         public void run() { 
          a1.setClickable(true); 
          a2.setClickable(true); 
          a3.setClickable(true); 
          b1.setClickable(true); 
          b2.setClickable(true); 
          b3.setClickable(true); 
          c1.setClickable(true); 
          c2.setClickable(true); 
          c3.setClickable(true); 
         } 
        }, 3000); 
        //timer above 
       } 
      } 
     }); 
+0

数値で終わる変数名は通常、配列またはリストを使用する必要があることを示します。 –

+0

あなたの実際の質問に関して、あなたはコンピュータプレーヤーを持っていますか、これは2人の人間のプレーヤー用に作られていますか? 2人の人間のプレイヤーは、同じデバイス上で、あるいはネットワーク上でプレイしていますか? –

+0

変数名はちょっと混乱します。 'ra1'と' rface'はどういう意味ですか? '何もない'と '追加された'とは何ですか? –

答えて

2

if文ではなく、2つの異なる文字を使用することをお勧めします。 1つはX、もう1つはOです。その後、リスナーを前後に設定できます。たとえば、XのOnClickListenerの末尾には、Oの1つを使用してsetOnClickListener()が呼び出されます。

+0

本当に有益なコード例を私に提供していただけますか、ありがとうございます。 –

1

私は最終的に私の解決策のために、このアルゴリズムを思い付いた:シェイパーは、私がスイッチとして使用しています別の整数である

online=0; 
offline=1; 


if (online!=offline){ 
    offline=random; 
    online=offline; 
    if(shape=0) 
    { 
     click(set round); 
    } 
    else if(shape=1) 
    { 
     click(set cross); 
    } 
} 

関連する問題