<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 閱讀(412) 評論(0)  編輯  收藏 所屬分類: My Java App


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


    網站導航:
     
    主站蜘蛛池模板: 日韩午夜理论免费TV影院| 免费看a级黄色片| 亚洲国产精品狼友中文久久久| 亚洲av无码片区一区二区三区| 久久99精品国产免费观看| 亚洲情XO亚洲色XO无码| 中文字幕免费观看视频| 亚洲精品线路一在线观看| h片在线观看免费| 亚洲精品无码mv在线观看网站| 成人精品视频99在线观看免费| 亚洲午夜久久久久久久久电影网 | 亚洲国产精华液2020| 久久不见久久见中文字幕免费| 亚洲国产日韩在线成人蜜芽| 91精品免费在线观看| 亚洲人成综合网站7777香蕉| 精品久久洲久久久久护士免费| 亚洲a无码综合a国产av中文| 亚洲精品综合久久| 三年片在线观看免费大全电影| 亚洲香蕉免费有线视频| 国产成人午夜精品免费视频| 精品亚洲av无码一区二区柚蜜| 自拍偷自拍亚洲精品第1页| 久久精品国产这里是免费| 亚洲成人网在线观看| 国产又大又长又粗又硬的免费视频| 老司机精品视频免费| 亚洲中文字幕日产乱码高清app | 中文字幕无线码免费人妻| 亚洲AV永久无码精品成人| 国产曰批免费视频播放免费s| 亚洲丶国产丶欧美一区二区三区| 亚洲日本韩国在线| 91久久精品国产免费一区| 国产亚洲视频在线观看| 久久久久亚洲Av片无码v | 大胆亚洲人体视频| 一级成人a毛片免费播放| 亚洲日韩国产AV无码无码精品|