對於你的問題,大概整理一下,如有問題再反應吧

 


問題整理:


1.有三顆燈 A B C


2.用亂數產生3個不重複數字(1 2 3),順序由亂數決定,這3個數字分別對應到 A B C 那三顆燈


3.按下鍵盤 1 ~ 3 其中一個數字鍵,數字對應到的燈會亮

 


依照題目先在面板上放3個LED元件,另外放1個顯示按下哪個數字鍵的元件

20100626-01  

 

 

程式用Flat Sequence Structure元件拆成兩段:


前段是亂數產生3個不重複數字

20100626-03  

 

 

這部分原本在很多數字中要產生3個不重複數字時很簡單,但數字只剩3個時就變的很麻煩,照正常的做法可能會算很久

 

簡單點的方法是做一個包含數字(1 2 3)順序的1D陣列,再由亂數去隨機排列數字,但因為只有3個數字,A對應到2的機率比其他兩個數字大太多

 

所以我用的是以Case Structure(條件選擇)元件做出數字組合的分配表,再由亂數選擇其中一組輸出,用意就是儘量避免同一燈號一直對應到同一數字

20100626-02  

 

 

後段是偵測鍵盤動作,這裡一定要用Event Structure(事件觸發)元件來做,把元件設定為Key Down事件,在Char那一項輸出的是電腦鍵盤的'鍵盤代碼'

20100626-04  

 

鍵盤代碼可在網路上找到


鍵盤數字1的代碼是49


鍵盤數字2的代碼是50


鍵盤數字3的代碼是51

 

 

鍵盤代碼用Case Structure(條件選擇)元件來分組還原成數字,另外Case Structure元件要另外做出一個輸出為0的Default頁,避免按到其他按鍵時燈號會亮

20100626-05  

 

 

因為程式有用到事件觸發控制,所以程式迴圈也必需用事件觸發來停止

20100626-06  

 

 

完成的程式

20100626-07  

  

arrow
arrow
    文章標籤
    作業習題
    全站熱搜

    未出師的小工程師 發表在 痞客邦 留言(0) 人氣()