2016年11月27日 星期日

[筆記] 深入了解 switch-case

  之前在課堂的作業中第一次看到神奇的 switch-case 用法,藉著機會研究一番;剛好朋友也詢問了類似的問題,也查看更多資料,完全顛覆我以前對 switch-case 的理解。因此藉著這篇文章來記錄我所查到的知識,也順便掃掃灰塵((汗。

  最初學到的 switch-case 用途是「多重選擇」,也就是說用來取代一連串的 if-else statement 對於一個變數的連續判斷,如以下的例子:
if (value == 0)
    printf("Grade S\n");
else if (value == 1)
    printf("Grade A\n");
else if (value == 2)
    printf("Grade B\n");
else if (value == 3)
    printf("Grade C\n");
else
    printf("Grade D\n");
可以用 switch-case 取代成:
switch (value) {
    case 0:
        printf("Grade S\n");
        break;
    case 1:
        printf("Grade A\n");
        break;
    case 2:
        printf("Grade B\n");
        break;
    case 3:
        printf("Grade C\n");
        break;
    default:
        printf("Grade D\n");
        break;
}
基礎複習完了,大家可以回家了。

以下會討論到:
  • 在 switch-case 中宣告變數
    • switch 之下,case 之前
    • 在 case 中宣告變數
    • 不同 case 之間宣告相同名稱的變數
  • 不只是 if-else 的替代品 (對於一個變數的連續判斷)
而接下來的討論皆引用 C98/99 的規格書,需要一點 language syntax 的概念。
2016年8月21日 星期日

[DIY] OSU!mania 7K 控

  因為自己是個音 G 熱愛者,之前在網路上找到這篇 ─ [DIY 專區]自製 IIDX 控制器 Part1,於是也想要自幹一個 OSU!mania 7K 控 (差一個轉盤),還可以在家先練練識譜,不然之前四個人去打 IIDX 還比不過一個人((淚

設計


  基本上就是弄出一個箱子,然後挖幾個洞,放進按鈕,就完成了,你看很簡單吧

設計草稿:大致上把設細想法規劃一下,因為我是用 5mm 雕刻版配合雷切去製作箱體,所以垂直接點的地方採用凹凸卡榫,這樣就不用膠去固定。整個箱體只有控制板是用螺絲固定,為了方便拆卸修理。

2015年5月9日 星期六

Unity3D - Circular Scrolling List - Part 2 - 顯示內容

了解 ListBox 的移動概念後,接下來就要顯示內容拉~

以下分成幾個部分:

  • ListBank
  • 初始化內容
  • 更換內容

2015年3月29日 星期日

[桌遊工具] 全手動給牌盒

當玩牌多的桌遊時,是否有這些困擾?
上了卡套之後,牌堆容易傾倒?



或是棄牌堆混亂不堪,難以整理?

2014年9月4日 星期四

Unity3D - Circular Scrolling List - Part 1 - 移動概念

實作影片:https://youtu.be/iZSN6CC--9Y

這個 Scrolling List 有幾個特色:
  • 使用固定數量的選單物件來代表無限數量的內容
  • 弧形移動效果
  • 慣性移動效果
將它分成幾的部分來教學:
  • 滑鼠動作
  • 慣性滑動
  • 多個物件同時移動
  • 邊界處理及環狀功能
  • 弧形移動
2014年6月22日 星期日

嵌入式系統 - 電吉他調音器

  今年2014 Spring 嵌入式系統期末專題,我們使用 STM32F429I-Discovery 開發的電吉他調音器,雖然不能調音....
  附上 HackpadGithub 連結


2014年4月6日 星期日

[筆記/GitHub] git add -p 及 git stash

  在使用 git 一陣子之後,應該都會遇到「修改 code 到一半,發現之前的 code 有地方需要修改」之類的問題。當遇到這樣的情況往往會選擇連同之前的 code 一起做修改,然後一同 commit 上去,一次提交太多而且不同功能的 code,造成 commit message 混亂。以下介紹兩種實用的 git 指令:git add -pgit stash,來幫助解決這樣的情況。