当前位置: 首页 > 知识库问答 >
问题:

如果有其他冲突[重复],则Tic Tac Toe

姚臻
2023-03-14

我正在创建一个应用程序3x3 Tic tac toe,其中3x3是所有按钮,在点击监听器上,我正在检查可能的组合,是否两个玩家中的任何一个已经作出了他们的“O”或“X”。但在我的“if-else”部分,它不是检查条件,而是直接执行“if和else”部分,即使条件错误。我希望我的问题是可以理解和调试的。任何帮助都是值得的...

 @Override
public void onClick(View v) {
    int id=v.getId();


    if(id==ONEbtn.getId()){      // 1stnd button**********************************************************8

        String get1=ONEbtn.getText().toString();
        if(!get1.equals("")){
            Toast.makeText(this, "Not allowed here!!!", Toast.LENGTH_SHORT).show();
        }
        else {
        ONEbtn.setText(turn);

        String get2=TWObtn.getText().toString();
        String get3=THREEbtn.getText().toString();

        String get4=FOURbtn.getText().toString();
        String get7=SEVENbtn.getText().toString();

        String get5=FIVEbtn.getText().toString();
        String get9=NINEbtn.getText().toString();

              if(get1.equals(get2) && get1.equals(get3)) { // comparing 2nd and 3rd button text with 1st btn
                  //Log.d("Value of 2btn", get2);
                        callToast(name, turn);}
              else if (get1.equals(get4) && get1.equals(get7))    // comparing 4th and 7th btn with first btn
              {callToast(name, turn);}
              else if (get1.equals(get5) && get1.equals(get9)){
                  callToast(name, turn);}

        turn=switchingTurn(turn);
        Log.d(TAG, turn+ name);
        }

    }else if (id==TWObtn.getId()){              // 2nd button**********************************************************8

        String get2=TWObtn.getText().toString();
        if(!get2.equals("")){
            Toast.makeText(this, "Not allowed here!!!", Toast.LENGTH_SHORT).show();
        }
        else {
            TWObtn.setText(turn);

            String get1=ONEbtn.getText().toString();
            String get3=THREEbtn.getText().toString();

            String get5=FIVEbtn.getText().toString();
            String get8=EIGHTbtn.getText().toString();

            if (get1.equals(get2) && get3.equals(get2))
            {callToast(name,turn);}
            else if (get5.equals(get2) && get8.equals(get2)){
                callToast(name, turn);}

        turn=switchingTurn(turn);
        Log.d(TAG, turn+ name);}

    }else if (id==THREEbtn.getId()){                 // 3rd button**********************************************************8

         String get3=THREEbtn.getText().toString();
        if(!get3.equals("")){
            Toast.makeText(this, "Not allowed here!!!", Toast.LENGTH_SHORT).show();
        }
        else {
            THREEbtn.setText(turn);

            String get1=ONEbtn.getText().toString();
            String get2=TWObtn.getText().toString();

            String get5=FIVEbtn.getText().toString();
            String get7=SEVENbtn.getText().toString();

            String get6=SIXbtn.getText().toString();
            String get9=NINEbtn.getText().toString();

            if (get1.equals(get3) && get2.equals(get3))
            {callToast(name,turn);}
            else if (get5.equals(get3) && get7.equals(get3)){
                callToast(name, turn);}
            else if (get6.equals(get3) && get9.equals(get3)){
                callToast(name, turn);}

            turn=switchingTurn(turn);
            Log.d(TAG, turn+ "   "+name);}

    }else if (id==FOURbtn.getId()){                  // 4th button**********************************************************8

        String get4=FOURbtn.getText().toString();
        if(!get4.equals("")){
            Toast.makeText(this, "Not allowed here!!!", Toast.LENGTH_SHORT).show();
        }
        else {
            FOURbtn.setText(turn);

            String get1=ONEbtn.getText().toString();
            String get7=SEVENbtn.getText().toString();

            String get6=SIXbtn.getText().toString();
            String get5=FIVEbtn.getText().toString();

            if (get1.equals(get4) && get7.equals(get4))
            {callToast(name,turn);}
            else if (get5.equals(get4) && get6.equals(get4)){
                callToast(name, turn);}

            turn=switchingTurn(turn);
            Log.d(TAG, turn+ "   "+name);}
    }else if (id==FIVEbtn.getId()){                     // 5th button**********************************************************8

        String get5=FIVEbtn.getText().toString();
        if(!get5.equals("")){
            Toast.makeText(this, "Not allowed here!!!", Toast.LENGTH_SHORT).show();
        }
        else {
            FIVEbtn.setText(turn);

            String get1=ONEbtn.getText().toString();
            String get9=NINEbtn.getText().toString();

            String get2=TWObtn.getText().toString();
            String get8=EIGHTbtn.getText().toString();

            String get3=THREEbtn.getText().toString();
            String get7=SEVENbtn.getText().toString();

            String get4=FOURbtn.getText().toString();
            String get6=SIXbtn.getText().toString();

            if (get1.equals(get5) && get9.equals(get5))
            {callToast(name,turn);}
            else if (get2.equals(get5) && get8.equals(get5)){
                callToast(name, turn);}
            else if (get3.equals(get5) && get7.equals(get5)){
                callToast(name, turn);}
            else if (get4.equals(get5) && get6.equals(get5)){
                callToast(name, turn);}

            turn=switchingTurn(turn);
            Log.d(TAG, turn+ "   "+name);}
    }else if (id==SIXbtn.getId()){                      // 6th button**********************************************************8

        String get6=SIXbtn.getText().toString();
        if(!get6.equals("")){
            Toast.makeText(this, "Not allowed here!!!", Toast.LENGTH_SHORT).show();
        }
        else {
            SIXbtn.setText(turn);

            String get3=THREEbtn.getText().toString();
            String get9=NINEbtn.getText().toString();

            String get4=FOURbtn.getText().toString();
            String get5=FIVEbtn.getText().toString();

            if (get3.equals(get6) && get9.equals(get6))
            {callToast(name,turn);}
            else if (get4.equals(get6) && get5.equals(get6)){
                callToast(name, turn);}

            turn=switchingTurn(turn);
            Log.d(TAG, turn+ "   "+name);}

    }else if (id==SEVENbtn.getId()){                    // 7th button**********************************************************8

        String get7=SEVENbtn.getText().toString();
        if(!get7.equals("")){
            Toast.makeText(this, "Not allowed here!!!", Toast.LENGTH_SHORT).show();
        }
        else {
            SEVENbtn.setText(turn);

            String get1=ONEbtn.getText().toString();
            String get4=FOURbtn.getText().toString();

            String get3=THREEbtn.getText().toString();
            String get5=FIVEbtn.getText().toString();

            String get8=EIGHTbtn.getText().toString();
            String get9=NINEbtn.getText().toString();

            if (get1.equals(get7) && get4.equals(get7))
            {callToast(name,turn);}
            else if (get5.equals(get7) && get3.equals(get7)){
                callToast(name, turn);}
            else if (get8.equals(get7) && get9.equals(get7)){
                callToast(name, turn);}

            turn=switchingTurn(turn);
            Log.d(TAG, turn+ "   "+name);}
    }else if (id==EIGHTbtn.getId()){                    // 8th button**********************************************************8

        String get8=EIGHTbtn.getText().toString();
        if(!get8.equals("")){
            Toast.makeText(this, "Not allowed here!!!", Toast.LENGTH_SHORT).show();
        }
        else {
            EIGHTbtn.setText(turn);

            String get2=TWObtn.getText().toString();
            String get5=FIVEbtn.getText().toString();

            String get7=SEVENbtn.getText().toString();
            String get9=NINEbtn.getText().toString();

            if (get2.equals(get8) && get5.equals(get8))
            {callToast(name,turn);}
            else if (get7.equals(get8) && get9.equals(get8)){
                callToast(name, turn);}

            turn=switchingTurn(turn);
            Log.d(TAG, turn+ "   "+name);}
    }else if (id==NINEbtn.getId()){                     // 9th button**********************************************************8

        String get9=NINEbtn.getText().toString();
        if(!get9.equals("")){
            Toast.makeText(this, "Not allowed here!!!", Toast.LENGTH_SHORT).show();
        }
        else {
            NINEbtn.setText(turn);

            String get1=ONEbtn.getText().toString();
            String get5=FIVEbtn.getText().toString();

            String get3=THREEbtn.getText().toString();
            String get6=SIXbtn.getText().toString();

            String get7=SEVENbtn.getText().toString();
            String get8=EIGHTbtn.getText().toString();

            if (get1.equals(get9) && get5.equals(get9))
            {callToast(name,turn);}
            else if (get3.equals(get9) && get6.equals(get9)){
                callToast(name, turn);}
            else if (get7.equals(get9) && get8.equals(get9)){
                callToast(name, turn);}

            turn=switchingTurn(turn);
            Log.d(TAG, turn+ "   "+name);}
         }

}

public void callToast(String nm, String trn) {

    Toast.makeText(this,nm+ "  Wins with sign  :"+trn,Toast.LENGTH_LONG).show();}


public String switchingTurn( String Sign ){
    if (Sign.equals("0")){
         name=PL_A;
         playerA.setText(TAG+" "+ name);
         playerB.setText("");
         Toast.makeText(this, name+"  turn", Toast.LENGTH_SHORT).show();
        turn="X";


    }else if (Sign.equals("X")){
        name=PL_B;
        playerB.setText(TAG+" "+ name);
        playerA.setText("");
        Toast.makeText(this, name+"  turn", Toast.LENGTH_SHORT).show();
        turn="0";
    }
    return turn;
}

共有1个答案

艾焱
2023-03-14

我犯了一个很愚蠢的错误...我所做的就是取值,然后设置值,并继续比较旧的取值...下面是调试代码的一小部分...

 if(id==ONEbtn.getId()){      // 1stnd button**********************************************************8

        String g1=ONEbtn.getText().toString();  // corrected here!!!
        if(!g1.equals("")){
            Toast.makeText(this, "Not allowed here!!!", Toast.LENGTH_SHORT).show();
        }
        else {
        ONEbtn.setText(turn);
            String get1=ONEbtn.getText().toString();

        String get2=TWObtn.getText().toString();
        String get3=THREEbtn.getText().toString();

        String get4=FOURbtn.getText().toString();
        String get7=SEVENbtn.getText().toString();

        String get5=FIVEbtn.getText().toString();
        String get9=NINEbtn.getText().toString();

              if(get1.equals(get2) && get1.equals(get3)) { // comparing 2nd and 3rd button text with 1st btn
                 // Log.d("Value of 2btn","<<"+get1+"<<"+get3+"<<"+ get2+"<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
                        callToast(name, turn);}
              else if (get1.equals(get4) && get1.equals(get7)) {   // comparing 4th and 7th btn with first btn

              callToast(name, turn);}
              else if (get1.equals(get5) && get1.equals(get9)){
                  callToast(name, turn);}

        turn=switchingTurn(turn);
        Log.d(TAG, turn+ name);
        }

    }
 类似资料:
  • 说明 这个 API 通常可以与其他所有包一起工作,然而,一些特殊的与 Laravel 融合很深,利用 Laravel 的路由提供某些功能的包,可能和 API 冲突。这一页列表其他的包与 API 冲突,以及一些必要的步骤使两个包正常工作。 目前还没有冲突的包.

  • 我有两张桌子: Product\u表 Productbreak\u表 我的目标是只获取不在productbreak_table的和日期之间的产品 结果应该是:

  • 我有这样一个df: 其中ID是另一个df的主键和唯一键,该df是此df的源。集群不是密钥,不同的ID通常具有相同的集群值;不管怎么说,这是我必须掌握的信息。 我想获得的是这个数据框: 如果这是不可能的,像这样的字典也可以: 我试过很多方法都没有成功。。似乎无法将列表作为数据帧值插入。。无论如何,我认为以某种巧妙的方式进球应该不会那么困难。。对不起,如果我想不起来了,但我对编码是新手 有什么建议吗?

  • 在pom.xml文件中添加org.hibernate依赖项时出现问题 导致的错误列表和错误消息 [错误]2018-07-10 15:48:45.908[main]org.springframework.boot.springapplication.reportfailure(springapplication.java:842)-应用程序运行失败org.springframework.beans.

  • 我正在开发一个程序,它会要求用户输入一个整数,然后输入另一个,并将它们作为图点。然后它会告诉他们之间的距离。用户必须输入一个整数或按“Q”退出。如果它是其他任何东西(不是整数或字母“Q”),它会告诉他们那是不正确的,请再试一次。我以为这就是我可以实现的方法,但它返回错误。非常感谢您的帮助! 如果我没有注释掉最后一个else语句,它就会默认为该语句,并且永远循环我的错误消息。

  • 作为一个新的反应者,我被一些看似简单的事情所困扰。不知道我做错了什么。 我有一个组件BasicReactComponent。我喜欢这样: 我试图在我的主文件中调用它,如下所示: 我一直得到下面的错误