<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Scott@JAVA

    Java, 一杯濃濃的咖啡伴你到深夜

    GOOGLE挑戰賽練習題1

    Problem Statement

    A simple line drawing program uses a blank 20 x 20 pixel canvas and a directional cursor that starts at the upper left corner pointing straight down. The upper left corner of the canvas is at (0, 0) and the lower right corner is at (19, 19). You are given a string[], commands, each element of which contains one of two possible commands. A command of the form "FORWARD x" means that the cursor should move forward by x pixels. Each pixel on its path, including the start and end points, is painted black. The only other command is "LEFT", which means that the cursor should change its direction by 90 degrees counterclockwise. So, if the cursor is initially pointing straight down and it receives a single "LEFT" command, it will end up pointing straight to the right. Execute all the commands in order and return the resulting 20 x 20 pixel canvas as a string[] where character j of element i represents the pixel at (i, j). Black pixels should be represented as uppercase 'X' characters and blank pixels should be represented as '.' characters.

    Definition

    Class: DrawLines
    Method: execute
    Parameters: string[]
    Returns: string[]
    Method signature: string[] execute(string[] commands)

    (be sure your method is public)


    我的程序:

    public class DrawLines {
        
    // current cursor position
        private int xPos, yPos;

        
    private int direction;

        
    private char[][] canvas;

        
    public DrawLines() {
            xPos 
    = 0;
            yPos 
    = 0;
            
    // initial drawing direction downwards
            direction = 270;
            canvas 
    = new char[20][20];
        }


        
    private void initCanvas() {
            
    for (int i = 0; i < 20; i++)
                
    for (int j = 0; j < 20; j++)
                    canvas[i][j] 
    = '.';
        }


        
    public String[] excute(String[] commands) {
            initCanvas();
            
    for (int i = 0; i < commands.length; i++{
                
    if (commands[i].equals("LEFT")) {
                    
    // when come cross "LEFT", turn 90 degrees couter-clockwise
                    direction += 90;
                    
    if (direction == 360)
                        direction 
    = 0;
                }
     else {
                    
    int len = Integer.parseInt(commands[i].split(" ")[1]);
                    
    switch (direction) {
                    
    case 0:
                        
    // draw from left to right
                        for (int j = 0; j <= len; j++)
                            canvas[xPos][yPos
    ++= 'X';
                        yPos
    --;
                        
    break;
                    
    case 90:
                        
    // draw from down to up
                        for (int j = 0; j <= len; j++)
                            canvas[xPos
    --][yPos] = 'X';
                        xPos
    ++;
                        
    break;
                    
    case 180:
                        
    // draw from right to left
                        for (int j = 0; j <= len; j++)
                            canvas[xPos][yPos
    --= 'X';
                        yPos
    ++;
                        
    break;
                    
    case 270:
                        
    // draw from up to down
                        for (int j = 0; j <= len; j++)
                            canvas[xPos
    ++][yPos] = 'X';
                        xPos
    --;
                        
    break;
                    }

                }

            }

            String[] s 
    = new String[20];
            
    for (int i = 0; i < 20; i++)
                s[i] 
    = new String(canvas[i]);
            
    return s;
        }


        
    public static void main(String[] args) {
            String[] cmds 
    = "LEFT""FORWARD 19""LEFT""LEFT""LEFT",
                    
    "FORWARD 18""LEFT""LEFT""LEFT""FORWARD 17""LEFT",
                    
    "LEFT""LEFT""FORWARD 16""LEFT""LEFT""LEFT",
                    
    "FORWARD 15""LEFT""LEFT""LEFT""FORWARD 14""LEFT",
                    
    "LEFT""LEFT""FORWARD 13""LEFT""LEFT""LEFT",
                    
    "FORWARD 12""LEFT""LEFT""LEFT""FORWARD 11""LEFT",
                    
    "LEFT""LEFT""FORWARD 10""LEFT""LEFT""LEFT",
                    
    "FORWARD 9""LEFT""LEFT""LEFT""FORWARD 8""LEFT",
                    
    "LEFT""LEFT""FORWARD 7" }
    ;
            DrawLines drawLines 
    = new DrawLines();
            String[] s 
    = drawLines.excute(cmds);
            
    for (int i = 0; i < 20; i++)
                System.out.println(s[i]);
        }

    }

    posted on 2005-12-01 11:49 Scott@JAVA 閱讀(402) 評論(0)  編輯  收藏 所屬分類: My Java App


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 久久久久成人精品免费播放动漫| 夭天干天天做天天免费看| 免费一看一级毛片全播放| 亚洲精品国产高清在线观看| A级毛片内射免费视频| 成人免费看黄20分钟| 国产亚洲精品成人a v小说| 人妻18毛片a级毛片免费看| 久久精品免费观看国产| 亚洲人成网亚洲欧洲无码久久 | 你懂的网址免费国产| 亚洲国产精品久久网午夜| 国产男女爽爽爽爽爽免费视频| 国产高清免费在线| 亚洲欧美日韩一区二区三区| 福利免费在线观看| 亚洲精品视频在线免费| 亚洲一区二区三区久久久久| 在线看片无码永久免费视频| 亚洲精品久久久久无码AV片软件| 三级黄色片免费看| 亚洲国语精品自产拍在线观看| 高潮内射免费看片| 亚洲无人区一区二区三区| 国产成人精品日本亚洲专| 国产成人高清精品免费软件| 一边摸一边爽一边叫床免费视频| 国产免费不卡v片在线观看| 亚洲午夜理论片在线观看| 亚洲av无码成人精品区在线播放| 亚洲熟妇无码久久精品| 德国女人一级毛片免费| 亚洲视频在线观看网站| 日韩a毛片免费观看| 亚洲av无码片在线播放| 福利免费观看午夜体检区| 男男gay做爽爽免费视频| 香蕉视频在线观看亚洲| 色窝窝免费一区二区三区| 亚洲色偷偷偷网站色偷一区| 日韩在线免费播放|