井字游戏--计应192(西)-第六组- 朱炳阳

井字游戏:

玩家轮流将字符放入空位(" ")中。

第一个玩家总是放字符"O",且第二个玩家总是放字符"X"。

"X"和"O"只允许放置在空位中,不允许对已放有字符的位置进行填充。

当有N个相同(且非空)的字符填充任何行、列或对角线时,游戏结束,对应该字符的玩家获胜。

当所有位置非空时,也算为游戏结束。

如果游戏结束,玩家不允许再放置字符。

如果游戏存在获胜者,就返回该游戏的获胜者使用的字符("X"或"O");如果游戏以平局结束,则返回 "Draw";如果仍会有行动(游戏未结束),则返回 "Pending"。

 

 

class Solution

{

public String tictactoe(String[] board)

{

        int length = board.length;

        int heng = 0;

        int zong = 0;

        int left = 0;

        int right = 0;

        boolean flag = false;

        for(int i = 0;i<length;i++){

            heng = 0;

            zong = 0;

            for(int j = 0;j<length;j++){

                heng = heng + (int)board[i].charAt(j);

                zong = zong + (int)board[j].charAt(i);

                if(board[i].charAt(j) == ' '){

                    flag = true;

                }

            }

            if(heng == (int)'X' * length || zong == (int)'X' * length){

                return "X";

            }

            if(heng == (int)'O' * length || zong == (int)'O' * length){

                return "O";

            }

            left = left + board[i].charAt(i);

            right = right + board[i].charAt(length-i-1);

        }

 

        if(left == (int)'X' * length || right == (int)'X' * length){

            return "X";

        }

        if(left == (int)'O' * length || right == (int)'O' * length){

            return "O";

        }

        if(flag){

            return "Pending";

        }

        return "Draw";  

    }

}

 

PSP 各个阶段

 预估时间

(分钟)

实际记录

(分钟)

计划:明确需求和其他因素,估计以下的各个任务需要多少时间 

 

 

开发(包括下面8项子任务)

 

 

. 需求分析(包括学习新技术、新工具的时间)

 20

 20

. 生成设计文档(整体框架的设计,各模块的接口,用时序图,快速原型等方法)

 60

60 

. 设计复审 (和同事审核设计文档,或者自己复审)

 60

 120

.代码规范(为目前的开发制定或选择合适的规范)

 100

 100

.具体设计(用伪代码,流程图等方法来设计具体模块)

 100

200 

.具体编码

 60

80 

.代码复审

 60

60 

.测试(自我测试,修改代码,提交修改)

 30

 30

总共花费的时间(分钟)

 490

 670
posted @ 2021-04-11 16:47  计应192西六组  阅读(63)  评论(0编辑  收藏  举报