作者 geminitea (維亞)
標題 [碼農] 微軟彈珠台是由巨型switch()語句組成
時間 Mon Sep  8 16:15:16 2025


https://reurl.cc/OmeMaR
以下內容轉自臉書(連結如上)

https://files.catbox.moe/0pu43a.png
[圖]

前幾日微軟工程師 Dave W Plummer 分享

當初微軟推出新的作業系統 Windows NT 後

要把立體彈珠台 (Pinball) 這個內建遊戲改寫到新的作業系統

於是被交派這個任務的他看了原本的程式碼

結果發現是一個超級巨型的 swtich() 語句

底下有超過五十個 case 所組成
-----
Sent from MeowPtt on my SH-M28


--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.9.200.133 (臺灣)
※ 作者: geminitea 2025-09-08 16:15:16
※ 文章代碼(AID): #1elf2NrA (C_Chat)
※ 文章網址: https://www.ptt.cc/bbs/C_Chat/M.1757319319.A.D4A.html
serding: 不能亂動了1F 09/08 16:16
SangoGO: 至少他還有用Switch而不是if else2F 09/08 16:16
HJC6666: switch也沒很亂吧 總比把東西亂放好3F 09/08 16:16
yezero: 可以想像只是有點失望4F 09/08 16:16
kirimaru73: 很合理啊 都是用球去撞
switch成五十塊反而可以讓每塊的深度不要太深5F 09/08 16:17
xga00mex: 然後發現第一個case永遠為true7F 09/08 16:17
StarTouching: 巨型狀態機 這不是很棒嗎?8F 09/08 16:18
h0103661: 1993年欸,那個時候上課都在用組語9F 09/08 16:18
HJC6666: 永遠true更爽了 剩下49條砍掉都不怕出事= =10F 09/08 16:18
h0103661: 用switch已經是高階語言了11F 09/08 16:19
tnlinna: 好奇那個年代可以呈現出那樣的彈珠彈跳感算是很厲
害嗎?那時有物理引擎之類的東西了?12F 09/08 16:19
gino0717: 那個誰跟你說你應該總是使用if else還出了本書14F 09/08 16:19
piyan5566: 至少不是寫成巢狀if else15F 09/08 16:19
kirimaru73: 二維運動反彈加個重力 不算太複雜16F 09/08 16:20
twosheep0603: 狀態機 沒有問題17F 09/08 16:20
HolyBugTw: 還有什麼更好的寫法嗎?願聞其詳18F 09/08 16:20
speedingriot: 以彈珠台這例子來說,用switch沒有什麼不好吧?19F 09/08 16:22
oyaji5566: if else if else if else if else if else if else20F 09/08 16:22

--
作者 geminitea 的最新發文:
點此顯示更多發文記錄