美文网首页
2021-12-09 794. 有效的井字游戏

2021-12-09 794. 有效的井字游戏

作者: 16孙一凡通工 | 来源:发表于2021-12-09 10:16 被阅读0次

本来想用Go写个深度遍历,结果有些bug,所以换了java写了个模拟,参考了别人的评论,才知道需要判定胜负不同情况下的O与X的值。这个地方欠考虑了。

// X必须比O多1个或者相同,否则false; 2、X和O不能同时都是赢家,否则false; 3、X赢的时候必须比O多1个,否则false; 4、O赢得时候个数与X相同,否则false;

java版本

class Solution {
    public boolean validTicTacToe(String[] board) {

        int count_o=0,count_x=0;
        for(int i=0;i<3;i++){
            for(char c : board[i].toCharArray()){
            count_o= c=='O' ? count_o+1 : count_o;
            count_x= c=='X' ? count_x+1 : count_x;
            }
        }
        System.out.println(count_o);
          System.out.println(count_x);

     if (count_x!=count_o && count_o!=count_x-1){
         return false;
     }
      if(dfs(board,'X') && count_x!=count_o+1){
         return false;
     }
      if (dfs(board,'O') && count_x!=count_o){
         return false;
     }
    
     return true;
    //  

        
        //  X必须比O多1个或者相同,否则false; 2、X和O不能同时都是赢家,否则false; 3、X赢的时候必须比O多1个,否则false; 4、O赢得时候个数与X相同,否则false;

       
}
public boolean dfs(String[] board,char tmp){
    for(int i=0;i<board.length;i++) {
        // 直线情况
   if(board[i].charAt(0)==tmp && board[i].charAt(1)==tmp && board[i].charAt(2)==tmp ){
       return true;
   }
    if(board[0].charAt(i)==tmp && board[1].charAt(i)==tmp && board[2].charAt(i)==tmp ){
       return true;
   }
    }
     if(board[0].charAt(0)==tmp && board[1].charAt(1)==tmp && board[2].charAt(2)==tmp ){
       return true;
   }
    if(board[0].charAt(2)==tmp && board[1].charAt(1)==tmp && board[2].charAt(0)==tmp ){
       return true;
   }

return false;
}

}

相关文章

  • 2021-12-09 794. 有效的井字游戏

    本来想用Go写个深度遍历,结果有些bug,所以换了java写了个模拟,参考了别人的评论,才知道需要判定胜负不同情况...

  • 794. 有效的井字游戏(Python)

    难度:★★★☆☆类型:字符串方法:逻辑 力扣链接请移步本题传送门[https://leetcode-cn.com/...

  • 「算法」794. 有效的井字游戏

    用字符串数组作为井字游戏的游戏板 board。当且仅当在井字游戏过程中,玩家有可能将字符放置成游戏板所显示的状态时...

  • 有效的井字游戏

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-...

  • 井字游戏

    设计一个算法,判断玩家是否赢了井字游戏。输入是一个 N x N 的数组棋盘,由字符" ",“X"和"O"组成,其中...

  • 玩井字游戏

    晚上带孩子们玩了井字游戏,这可是一个有魔力的游戏,让孩子们玩得欲罢不能,竟然上瘾了。 井字游戏是...

  • 井字游戏的魔力

    前天晚上带孩子们玩了井字游戏,老大老二玩上瘾了,这在我的预料之中。前天晚上玩了几局后,到点该洗漱了,我就催...

  • C++实现的基于α-β剪枝算法的井字棋游戏

    一、井字棋游戏规则 “井字棋”游戏(又叫“三子棋”),是一款十分经典的益智小游戏,操作简单,娱乐性强。两个玩家,一...

  • 多维数组怎么学?看这一篇就够了,带你在游戏中学习。

    tic-tac-toe 游戏 (井字棋游戏) 大家小时候应该都玩过井字棋吧,下课之余和同学来上一把,是多么开心。今...

  • React井字旗游戏

    教程: 井字旗游戏教程链接 教程中对于Array.prototype.slice的阐述有问题(链接),根据mdn中...

网友评论

      本文标题:2021-12-09 794. 有效的井字游戏

      本文链接:https://www.haomeiwen.com/subject/ktqffrtx.html