發表文章

目前顯示的是 2023的文章

C/C++ 程式語言 main 函數參數的用途說明

圖片
在 Windows 系統下可以使用system搭配 MS-DOS 的 color 指令(可參考此篇文章  更改 命令提示字元 Command Prompt (cmd) 的顯示顏色  )與 cls 來達成文字顏色的動畫。 color 指令示範影片: 此 color 指令後面的十六位數字是此 color 程式指令的參數,在 C/C++ 程式語言中可以使用 main(int argc, char *argv[]) 內的 argc 與 argv 來達成類似像color 這個擁有執行檔指令參數的功能。  程式碼如下: #include <iostream> using namespace std ; int main ( int argc , char* argv []) {       cout << "程式執行檔參數個數:" << argc << endl ;     for ( int i = 0 ; i < argc ; i ++ )         cout << "第[" << ( i + 1 ) << "]個參數為" << argv [ i ] << endl ;     return 0 ; } 筆者使用 VS Code 與 MinGW-w64 toolchain  來執行此程式碼,檔名為 1.cpp,編譯後會產生 1.exe 執行檔,執行結果如下: 此時開啟 Terminal 輸入指令: 1.exe one two three 可看到如下結果: 當輸入 1.exe one two three 給 1.exe 時, main 的 argc 會存放 4 這個數字,而 argv[] 的內容如下:     argv [ 0 ]: "1.exe"     argv [ 1 ]: "one"     argv [ 2 ]: "two"     argv [ 3 ]: "thre...

C++程式語言陣列與迴圈的應用:MS-DOS Color Background and Text

在 Windows 系統下可以使用system搭配 MS-DOS 的 color 指令(可參考此篇文章 更改 命令提示字元 Command Prompt (cmd) 的顯示顏色 )與 cls 來達成文字顏色的動畫。 color 指令示範影片: C++程式碼: // 陣列與迴圈的應用:MS-DOS Color Background and Text #include <iostream> #include <Windows.h> using namespace std; int main () {     system ( "pause" );     char hex [ 17 ] = "0123456789ABCDEF" ;     char cmd [ 20 ] = "color 00" ;     // bg: backgroud     for ( int bg = 0 ; bg <= 15 ; bg++) {         cmd [ 6 ] = hex [bg];         // fg: foreground         for ( int fg = 0 ; fg <= 15 ; fg++) {             cmd [ 7 ] = hex [fg];             //cout << cmd << endl;             system (cmd);             cout << "YunlinSong" ;             Sleep ( 200 );       ...

不使用 Arduino 內建函式庫來點亮LED燈

圖片
若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 If you like this post, please click the ads on the blog or buy me a coffee . Thank you very much. 本文將說明如何在不使用 Arduino 內建函式庫()來製作 LED 閃爍功能(Blink)。使用的軟硬環境如下: 軟體 硬體 Windows 10 Arduino UNO * 1 Arduino IDE LED * 2 Google Chrome 220 OHM 電阻 * 2 Tinkercad 麵包版 * 1 Arduino Uno 的微處理器是Atmel ATMega328p,規格手冊下載網址為 https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf 在不用Arduino函示庫下,使用C語言來做微處理器程式設計時,須對微處理器的三個暫存器(DDR, PORT, PIN)做設定,此部分可參考 https://docs.arduino.cc/hacking/software/PortManipulation 舉例來說,若要使用 Arduino Uno pin 13 來控制 LED 的開起與關閉,而 pin 13 是 PORTB 來做映射(mapping),首先要設定 pin 13 為輸出: DDRB = B00100000;  // sets Arduino pins 13 as outputs 設定 pin 13 為High電位或是低電位: PORTB = B00100000; // sets digital pin 13 HIGH PORTB = B00000000; // sets digital pin 13 LOW <avr/io.h> 有這些暫存器位址以及輸入輸出腳位位址。 電路設計 程式碼 #include <avr/io.h> #include <util/delay.h> int main ( void ) {   DDRB = B00100000; //...

Scratch 3 遊戲:狗吃香蕉(Dog eats bananas)

圖片
  若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 If you like this post, please click the ads on the blog or  buy me a coffee . Thank you very much. 【遊戲名稱】狗吃香蕉(Dog eats bananas) 【基本動作】 點擊綠旗遊戲開始。 在畫面上按下滑鼠左鍵,小狗開始追蹤滑鼠。 小狗吃到香蕉時,香蕉一根一根地少。 小狗吃到香蕉時,會說出:「Yummy」(好吃)。 香蕉被吃到時,會跑到畫面上的隨機位置。 【遊戲試玩】 製作步驟: ( 底下程式積木僅供參考,設計方式不是只有一種。 ) 步驟 一 、選擇小狗(Dog1)角色 步驟 二 、小狗積木 功能為 按下滑鼠左鍵,小狗開始追蹤滑鼠。 步驟 三 、選擇香蕉(Banana)角色 步驟 四 、製作 香蕉(Banana)角色被吃掉的造型。 複製原本的 香蕉(Banana)角色 造型後, 再使用選擇(Select)工具點選一根香蕉來刪除。 步驟五 、香蕉積木 功能為 小狗吃到香蕉時,香蕉一根一根地少,以及香蕉被吃到時,會跑到畫面上的隨機位置。 步驟六 、 增加 “ 文字轉語音 ” 擴充積木 點選 添加擴展 圖示 選擇 文字轉語音 的擴展 步驟七 、舞台背景積木 積木功能為 小狗吃到香蕉時,會說出:「Yummy」(好吃) 。 恭喜您完成了。 可增加的額外功能: 計時與計分 專案範例網址: https://scratch.mit.edu/projects/252457534

MakeCode Microbit 雙按鈕PK遊戲

圖片
若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 If you like this post, please click the ads on the blog or  buy me a coffee . Thank you very much.   LED 矩陣座標 首先要了解 Microbit LED 矩陣座標,由左到右的水平方向為稱為 X座標(下圖的藍色箭頭) ,由上到下的垂直方向稱為 Y座標(下圖的綠色箭頭) 。左上角白色箭頭所指的座標為(0,0),而正中央座標為(2,2)。 步驟一:建立一個新變數,名稱為 「球」 步驟二: 將 「球」 的起點放在正中央(如下圖) 步驟三: 按鈕A按下時, 「球」 往左移(-1) 步驟四: 按鈕B按下時, 「球」 往右移(1),請思考如何做? 步驟五: 當 「球」 碰到最左邊邊緣時(x=0) 步驟六: 當 「球」 碰到最右邊邊緣時(x=4) ,請思考如何做? 步驟七: 自動判斷勝負 提示判斷球的座標在那兒是按鈕A獲勝,請思考如何做? 範例連結: https://makecode.microbit.org/ _HKH8H6cM7ARu