2014-07-09 23 views
0

我從小的基本開始,並且在處理if,else,then和elseif語句時有點不及時。我有這樣的代碼,當用戶輸入形狀的第一個字母時,應該用龜來繪製不同的形狀。我已經有了這種類型的路燈代碼,但我需要用這個新代碼朝正確的方向前進。我已經寫好所有形狀的代碼,但每次輸入形狀的字母時,都會繪製第一個形狀,即三角形。在某一時刻,我將代碼設置爲不同的地方,其中所有的形狀都會彼此相鄰。我認爲我在正確的軌道上。使這個小的基本代碼工作的指針

'代碼做什麼? 「讓用戶決定他們想要什麼形狀和龜將繪製

T= "Triangle" 
P= "Parallelogram" 
S= "Square" 


TextWindow.ForegroundColor= "magenta" 
TextWindow.WriteLine("What shape do you want to draw?") 
TextWindow.Write (" Choose [T] for triangle, [P] for Parallelogram or [S] for Square : ") 
shape=textwindow.Read() 
If T = "Triangle" Then 
    Turtle.Speed=9 
    GraphicsWindow.Width = 500 
    GraphicsWindow.Height=500 
    Turtle.PenUp() 
    Turtle.Move(200) 
    Turtle.TurnRight() 
    Turtle.Move(145) 
    Turtle.TurnRight() 
    Turtle.PenDown() 
    Turtle.Move(320) 
    Turtle.TurnRight() 
    Turtle.Move(320) 
    Turtle.Turn(135) 
    Turtle.Move(451) 
    Turtle.Hide() 
elseif P = "Parallelogram" Then 
    Turtle.Speed=9 
    GraphicsWindow.Width = 500 
    GraphicsWindow.Height=500 
    Turtle.TurnLeft() 
    Turtle.PenDown() 
    Turtle.Move(200) 
    Turtle.Turn(120) 
    Turtle.Move(120) 
    Turtle.Turn(60) 
    Turtle.Move(200) 
    Turtle.Turn(120) 
    Turtle.Move(120) 
Elseif S = "Square" then 
    Turtle.Speed=9 
    Turtle.TurnLeft() 
    Turtle.PenDown() 
    Turtle.Move(200) 
    Turtle.TurnRight() 
    Turtle.Move(200) 
    Turtle.TurnRight() 
    Turtle.Move(200) 
    Turtle.TurnRight() 
    Turtle.Move(200) 
EndIf 
+0

當然,它應該像 「形狀= T」,等等?您只是將變量T與值「Triangle」進行比較,該值始終爲真。 –

回答

0

查看測試在你的if語句。例如,第一個對字符串「Triangle」測試一個名爲T(它的值爲「Triangle」)的變量。這將永遠是真實的,所以它總是會畫一個三角形,而不會再有任何進展。你真的想與字符串「Triangle」比較什麼?剛剛從用戶處收到的變量...不是變量T,P和S.

P.S.如果可能,養成使用一致縮進的習慣,這將幫助您更輕鬆地看到代碼的結構。祝一切順利!

+0

好吧,現在我明白了,起初我有點困惑,因爲我認爲我必須爲每一個形狀問一個問題。 – user3819134

+0

試着想象一下,你是程序單步執行一條指令,每個變量都是一個鞋盒,只有當你到達代碼中的那一行時纔會看到它(因爲它們可能在你上次查看後發生了變化)。我知道這完全過於簡單,但從長遠來看,這種基本的桌面檢查或手動調試將對您有很大幫助。 – wwkudu

0

測試 「形」:

If shape = "T" Then 
    Turtle.Speed = 9 
    GraphicsWindow.Width = 500 
    ... 
Elseif shape = "P" Then 
    Turtle.Speed = 9 
    GraphicsWindow.Width = 500 
    ... 
Elseif shape = "S" Then 
    Turtle.Speed = 9 
    Turtle.TurnLeft() 
    ... 
End If 
相關問題