<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


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲日本va午夜中文字幕一区| 最近免费中文字幕大全免费版视频| 成年女人午夜毛片免费看| 内射少妇36P亚洲区| 久久99热精品免费观看动漫| 久久亚洲综合色一区二区三区 | 亚洲午夜无码久久久久| a在线视频免费观看在线视频三区 a毛片成人免费全部播放 | 精品国产福利尤物免费| 国产亚洲精品成人AA片新蒲金| 免费看黄网站在线看| 亚洲国产精品日韩| www.av在线免费观看| 亚洲色大成网站www永久一区| 大地影院MV在线观看视频免费 | www一区二区www免费| 亚洲综合色自拍一区| 久久精品免费视频观看| 亚洲国产精品成人综合久久久| 亚洲人成网站免费播放| 自拍偷自拍亚洲精品播放| 亚洲国产午夜中文字幕精品黄网站| aa毛片免费全部播放完整| 91在线亚洲精品专区| 女人张开腿给人桶免费视频 | 最新国产乱人伦偷精品免费网站| 亚洲va久久久噜噜噜久久狠狠| 亚洲w码欧洲s码免费| 亚洲精品无码你懂的| 亚洲一区日韩高清中文字幕亚洲| 国产在线观看无码免费视频| 夜夜亚洲天天久久| 国内一级一级毛片a免费| 亚洲免费无码在线| 亚洲成人网在线播放| 国产裸模视频免费区无码| 97人妻精品全国免费视频 | 亚洲黄片手机免费观看| 久久免费动漫品精老司机 | 成人无码精品1区2区3区免费看| 亚洲欧洲尹人香蕉综合|