程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 一起talk C栗子吧(第八十二回:C語言實例--簡單聖誕樹)

一起talk C栗子吧(第八十二回:C語言實例--簡單聖誕樹)

編輯:關於C語言

一起talk C栗子吧(第八十二回:C語言實例--簡單聖誕樹)



各位看官們,大家好,今天是平安夜,首先祝各位看官聖誕節快樂,同時也感謝各位看官對本章回體小說的關注。還是那句老話,閒話休提,言歸正轉。讓我們一起talk C栗子吧!

我們今天說的例子和前面的內容沒有聯系,我們今天准備做一個簡單的聖誕樹,就算是我給大家的聖誕禮物吧。我們制作聖誕樹時使用了curses庫,這樣方便在窗口中描繪簡單的圖形。curses庫是Linux上一個簡單的圖形庫,我在其它的博客中簡單介紹過curses庫,如果有哪位看官對curses庫不了解,可以點擊這裡進行查看,以便對curses庫有個簡單的了解。

下面是制作聖誕樹的步驟,請大家參考

1.初始化屏幕; 2.描繪聖誕樹的最頂層; 3.接著描繪下一層,該層的坐標比上一層的大一些; 4.重復上一個步驟,我們描繪了6層。層數越多,聖誕樹越大,大家可以依據自己需要,定制層數; 5.描繪樹干; 6.刷新屏幕; 7.釋放屏幕相關的資源。

下面是我們寫的代碼,請大家參考:

void show()
{
    initscr();

    move(1,10);          // show the top layer
    printw("%c",'/');
    move(1,11);
    printw("%c",'\\');

    move(2,9);          // show the next layer
    printw("%c",'/');
    move(2,12);
    printw("%c",'\\');

    move(3,8);          // show the next layer
    printw("%c",'/');
    move(3,13);
    printw("%c",'\\');
    move(3,7);          // put the gift on the tree
    printw("%c",'@');
    move(3,14);
    printw("%c",'*');

    move(4,7);          // show the next layer
    printw("%c",'/');
    move(4,14);
    printw("%c",'\\');
    move(4,6);          // put the gift on the tree
    printw("%c",'*');
    move(4,15);
    printw("%c",'@');

    move(5,6);          // show the next layer
    printw("%c",'/');
    move(5,15);
    printw("%c",'\\');

    move(6,5);          // show the bottom layer
    printw("%c",'/');
    move(6,16);
    printw("%c",'\\');

    mvvline(5,10,'|',5);

    move(20,20);

    refresh();
    sleep(1);
    endwin();
}

看官們,我們對上面代碼中的一些細節進行說明

我們描繪聖誕樹每層的內容時,先使用move把光標移動到相應的位置,然後在該位置使用printw函數輸出一個符號來表示聖誕樹的枝干。我們同時使用該方法在聖誕樹上添加了一些“禮物”,代碼中使用符號“@”和“*”表示。

描繪聖誕樹的樹干時使用了mvvline函數直接畫出樹干。

整個聖誕樹呈金字塔形狀,因此,大家可以計算出其中的坐標來,我就不詳細說明了。

下面是程序的運行結果,請大家參考。(這是個靜態圖形,大家可以運行程序,聖誕樹會閃動起來)
這裡寫圖片描述

為了創建閃動的效果,我們使用偏移的方法描繪聖誕樹。下面是具體的代碼:

    for(i=0; i<9; ++i)
    {
        if(i%2 == 0)
            show();
        else
            print();
    }

在代碼中show先描繪一次聖誕樹,然後把聖誕樹的坐標整體向右偏移一位,使用print再次描繪聖誕樹。如此反復,就實現了閃動的效果。

看官們,正文中就不寫代碼了,詳細的代碼放到了我的資源中,大家可以點擊這裡下載使用。編譯程序的時候需要使用使用l參數鏈接curses庫,具體命令是:

gcc ChristmasTree.c -o s -lcurses

各位看官,關於簡單聖誕樹的例子咱們就說到這裡,欲知後面還有什麼例子,且聽下回分解 。最後,再次祝大家聖誕節快樂!


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved