[綜合]無題 無名 ID:esLYL.R6 17/07/11(二)19:27:11 No.9448455
評分:0, 年:0, 月:0, 週:0, 日:0, [+1 / -1] 最後更新:2017-07-12 04:39:01
剛下班喔
遊戲程式相關都可以問
無題 無名 ID:AN4cbSFg 17/07/11(二)19:28:23 No.9448462 安安吃飽沒
無題 無名 ID:mp4l.auc 17/07/11(二)19:28:33 No.9448466 請問怎樣交到幼女當女友
無題 無名 ID:WcPLDFPI 17/07/11(二)19:28:34 No.9448467 AC會出6嗎?
無題 無名 ID:pxnMMPu2 17/07/11(二)19:29:18 No.9448473 平常在公司會全裸嗎
無題 無名 ID:t1Lkcna6 17/07/11(二)19:29:40 No.9448479 下一款PS4獨佔大作在哪裡
無題 無名 ID:tkOrMepY 17/07/11(二)19:30:51 No.9448490 在公司突然硬的像石頭你怎麼處理
無題 無名 ID:hpZoqO2w 17/07/11(二)19:31:00 No.9448491 剛畢業退伍沒社會經驗的資工魯蛇該怎麼找頭路?
無題 無名 ID:XY/HBzTY 17/07/11(二)19:31:21 No.9448493 蚵仔煎餅乾跟樂事洋芋片哪個比較好
無題 無名 ID:esLYL.R6 17/07/11(二)19:31:32 No.9448494
無題 無名 ID:CddRqbXE 17/07/11(二)19:32:12 No.9448499 請問廢物文組要如何自學程式到可以上班?
不用賺很多錢 只求朝九晚六 3萬以上 周休二日 這要求不會太過分吧
做業務每天都很想死
無題 無名 ID:.fTmvIkk 17/07/11(二)19:34:09 No.9448518 天堂m有沒有外掛?
無題 無名 ID:esLYL.R6 17/07/11(二)19:34:58 No.9448525
無題 無名 ID:Bw0R7Hfk 17/07/11(二)19:38:36 No.9448550 請問C++裡
要如何動態判斷一個ParentClass*所指向的ChildClass裡的特定某個virtual member function是否被override過?
無題 無名 ID:ey8rZV/s 17/07/11(二)19:42:16 No.9448577 我想自己寫一個類似超級瑪莉的遊戲
要從C++開始建不靠現成引擎 GUI我是挑SDL2.0
但感覺我常識太少
包括物件要怎分類 地圖算是一堆物件方塊的集合嗎?之類的小問題
不知道怎麼"正確的"繼續寫下去 這樣寫到底合不合理
而不是硬幹出來
請求指教
無題 無名 ID:.fTmvIkk 17/07/11(二)19:42:47 No.9448584
有沒有看直式漫畫的看圖軟體
像韓漫中漫那種
無題 無名 ID:esLYL.R6 17/07/11(二)19:44:09 No.9448597 >>9448550也太難 這我真的不會
我只知道call method的時候會重繼承推疊裡一層一層找上去
最後如果沒找到再噴錯
無題 無名 ID:LpwI4Ffw 17/07/11(二)19:45:04 No.9448607 Half life什麼時候出3
無題 無名 ID:i/3BnO4w 17/07/11(二)19:48:23 No.9448635
無題 無名 ID:kZVjKLCA 17/07/11(二)19:51:06 No.9448658 前端是啥
無題 無名 ID:esLYL.R6 17/07/11(二)19:52:04 No.9448665
>>9448577不靠現成引擎 但還是可以參考
通常都會有一個場景物件(Scene/Map/Room每家遊戲引擎都不太一樣)
場景物件可以容納遊戲物件(GameObject)
GameObject寫好基本的update/draw/event給之後的物件繼承(像是主角色/怪物等)
一開始可以先規劃成三場景
MenuScene, MainGameScene, GameOverScene(這些都繼承Scene)
要增加關卡就多塞一些MainGameScene
無題 無名 ID:UHTxb2bY 17/07/11(二)19:53:00 No.9448673 無題 無名 ID:esLYL.R6 17/07/11(二)19:53:04 No.9448674
無題 無名 ID:xHuhqlxo 17/07/11(二)19:54:13 No.9448687
無題 無名 ID:esLYL.R6 17/07/11(二)19:54:39 No.9448691
>>9448658寫網頁的人
只需要會html, javascript, css
(不是設計網頁)
無題 無名 ID:vYPPBunw 17/07/11(二)19:55:38 No.9448699 想轉職當資工肥宅
請問要注意什麼?
遊戲界不太好混吧
為什麼想走這條?
無題 無名 ID:esLYL.R6 17/07/11(二)19:58:37 No.9448725
>>9448699寫遊戲程式跟設計遊戲是不同的東西
這部分要自己想清楚
而且我是做跟遊戲無關的程式工作
因為我想清楚了...
無題 無名 ID:RWDC6.es 17/07/11(二)20:02:37 No.9448744 >>9448499這就是我現在的生活欸 當初花半年時間學最好上手的php 找到一份實領32 正常上下班的工作 公司離家只有十分鐘
但我自己是蠻喜歡寫程式的 平日及週末都會花時間學新技術
無題 無名 ID:O0WdCvE6 17/07/11(二)20:07:33 No.9448784 無題 無名 ID:RWDC6.es 17/07/11(二)20:12:00 No.9448815
無題 無名 ID:Bw0R7Hfk 17/07/11(二)20:12:54 No.9448819 >>9448577程式沒有標準答案
只要符合幾個大原則
(不要把程式碼複製貼上、能重複使用就重複使用、big O不要太誇張、偵錯能力強、...)
就算你寫的跟業界長得完全不一樣,也可以是個好程式
你自己寫起來爽快最重要
不要去想別人是怎麼寫的
想你這樣寫符不符合你的需求就好
慢慢寫慢慢蓋,必要時把前面寫爛的東西打掉重練
久了自然會變強,變得能寫得出你要的東西
>>9448597>>9448673那個是我自己在寫的時候遇到的問題
其實只要在每個ChildClass多override一個virtual member function回傳答案就可以替代掉
只不過這樣程式碼會變多,很醜,我才想找有沒有直接測的方法
不過根據我自己查到的資料應該是無解,只能乖乖用替代方案了
C++畢竟比較高階,有些東西編譯器封起來你就不能插手
如果是純C的邏輯就可以輕鬆解決這問題
無題 無名 ID:HjYOoErE 17/07/11(二)20:14:57 No.9448837
三萬二已經很幸福了 如果還是住父母家 真的是人間仙境了 但是是住外面的話三萬二的確是不太能買自己想要的東西
無題 無名 ID:F/xX78og 17/07/11(二)20:15:59 No.9448845 不好意思是硬體相關的問題
請問我550W單路電源供應器 金鈦極S
夠用GTX1080Ti嗎?
無題 無名 ID:PAwhD09k 17/07/11(二)20:19:09 No.9448881 無題 無名 ID:UHTxb2bY 17/07/11(二)20:20:56 No.9448905 借問一下
Macbook要怎麼「安全地」玩台服的LoL
無題 無名 ID:esLYL.R6 17/07/11(二)20:21:37 No.9448914 >>9448819我倒是覺得不應該去check這件事
就OOP來說一個method裡做了什麼事 是不用去在意的
只需要去關心 該傳什麼(類別)進去 會傳什麼(類別)出來
這就是'封裝'在做的
或許可以朝"is a"這個關鍵字試看看能不能解決你的問題
無題 無名 ID:esLYL.R6 17/07/11(二)20:22:57 No.9448930
無題 無名 ID:qyG6wiuE 17/07/11(二)20:32:30 No.9448998 >>9448819拿ParentClass的函式指標跟ChildClass的比行嗎?
我剛剛試了一下結果失敗了值是一樣的
不知道是編譯器優化的問題還是我的問題
無題 無名 ID:F/xX78og 17/07/11(二)20:34:22 No.9449020
無題 無名 ID:Bw0R7Hfk 17/07/11(二)20:40:51 No.9449073 >>9448914少見情況嘛
我也是寫了快十年才第一次遇到這種問題
那個member function有效能較差的替代版
我要先評估我要用哪個版本,才真的去執行
舉例來說吧
我有*a,*b,*c三個人要幹掉
如果可行的話
[aa]
a->suicide();
b->suicide();
c->suicide();
[/aa]
會比較省資源
但是有些人愛惜生命不能suicide(也就是沒override)
針對這種人,就要使用另外一種用法
[aa]
killAll(a,b,c);
[/aa]
這東西不管對象是誰都能執行成功,而且一次就是幹掉三個人,但是效能比較差
所以我要先判斷前面的suicide是否可行
當然
每個人給他一個bool isSuicidable()就能解決問題
但這樣一來,所有override了suicide的人都要另外override這東西,很醜
我也想過直接不管三七二十一呼叫suicide,然後看回傳值有沒有成功
可是會發生a跟b成功了c卻不成功,到頭來還是要killAll的狀況,效能反而變差
而且suicide本來是沒有回傳值的,為了這件事把每個suicide都return true;也很醜
不過查到最後發現沒辦法直接比較
就還是用了isSuicidable()的方案
>>9448998試過,不行
那就是我上一篇最後一段說的
C++把某些東西高階化之後封裝起來,就不能對他毛手毛腳
把virtual member function當函式指標可以解釋他的運作表現,但實際上他不是一個真正的函式指標
在真正呼叫他之前沒有辦法知道他到底會指向哪個函式
無題 無名 ID:esLYL.R6 17/07/11(二)21:27:05 No.9449364 >>9449073我覺得這就不是語言的問題了
對OOP來說
既然Parent Class有自殺的能力
所有的Child Class都要可以自殺
做法大概兩種
1.你的解法 不過不太一樣(很久沒寫C++ 請忽略語法)
[aa]
// bad
if (c.isSuicidable()) {
c.suicide()
}
// better
class C extend BaseClass {
void override suicide() {
cout << "I don't wana die."
// Nothing change
}
}
[/aa]
比較好的原因是程式不會掛
但是你要自己知道這傢伙不會自殺
因為這是你允許他這樣做的 你必負責
2.更改繼承結構 這部分會動到大架構 大部分的邏輯 但這或許是必須的
[aa]
class Person {
// This is base class.
}
class SuicidablePerson extend Person {
void virtual suicide();
}
class A extend Person { ... }
class B extend Person { ... }
class C extend SuicidablePerson { ... }
[/aa]
無題 無名 ID:71CD22OI 17/07/11(二)21:39:06 No.9449471 鬼島怎麼都作不出神作
無題 無名 ID:esLYL.R6 17/07/11(二)21:39:44 No.9449480
無題 無名 ID:Bw0R7Hfk 17/07/11(二)21:48:34 No.9449543 >>9449364>>既然Parent Class有自殺的能力
>>所有的Child Class都要可以自殺
沒辦法,那個本來就是個optional的能力
有些人可以低資源suicide,有些人硬叫他suicide他頂多也只能killAll(this)
但是與其讓他自己動手不如我來呼叫,因為killAll可以一次解決多個人而不影響成本
而且這件事是真的肉眼看得見效能差的,所以我必須計較效能
>>cout << "I don't wana die."
>>// Nothing change
如果前兩個人都suicide好了,第三個才來靠杯我不想死,害我要去倉庫裡把機關槍搬出來killAll
我會花掉兩個suicide跟一個killAll的運算資源,不如一開始就來一次killAll通通解決
>>2.更改繼承結構
那如果我不只有suicide一項有這個問題呢?
好吧好像有什麼交叉繼承之類的可以處理
但是我一個C with classeser不想用上太複雜的多型
而且我不喜歡為了一個小功能改變class的名字
類別名稱又臭又長會降低開發效率
無題 無名 ID:esLYL.R6 17/07/11(二)22:05:34 No.9449637 >>9449543>>如果前兩個人都suicide好了,第三個才來靠杯我不想死,害我要去倉庫裡把機關槍搬出來killAll
>>我會花掉兩個suicide跟一個killAll的運算資源,不如一開始就來一次killAll通通解決
不懂 就算這種情況使用isSuicidable()
最差不也是 suicide * n + killAll * 1 嗎
無題 無名 ID:qyG6wiuE 17/07/11(二)22:10:21 No.9449673
>>9449637假設suicide要1秒killAll要5秒
3個都suicide就3秒
一口氣killAll就5秒
suicide2個之後發現第3個只能killAll就要7秒
無題 無名 ID:klofynSg 17/07/11(二)22:12:59 No.9449695 本人完全沒有程式語言的學習經驗
不求要到職業等級,但想要多少學會一些新技能
目前知道程式語言好像分成許多種, 像是C語言、Java、C++
請問論易學程度跟發展性的話, 原PO會建議從哪一種語言開始呢?
無題 無名 ID:Bw0R7Hfk 17/07/11(二)22:13:58 No.9449701 >>9449637用了killAll就不需要suicide了
所以只要所有需要幹掉的人裡有人不能suicide
總耗資源就是固定的killAll*1
但如果所有人都能suicide
總耗資源就是suicide*n,而這個數字會小於killAll*1
無題 無名 ID:esLYL.R6 17/07/11(二)22:18:43 No.9449734
>>9449701懂了
那問題還是出在行為不一致這邊
不過說真的我的想法都是理想論
或許真正遇到的時候
到最後我還是會像你這樣解吧
無題 無名 ID:esLYL.R6 17/07/11(二)22:22:10 No.9449749 >>9449695硬要我選
我會選腳本語言
像是Javascript(Node.js), Ruby, Python這類的
不過就只是單純的習慣與喜好
無題 無名 ID:/x92cFtc 17/07/11(二)22:29:47 No.9449784 >>9449543不才想請教一下
這是否是架構沒寫好才有的問題
想要有suicide()的功能卻沒override 那麼為什麼要繼承他
無題 無名 ID:Bw0R7Hfk 17/07/11(二)22:37:34 No.9449825 >>9449695每次島上的程式串都會有人問這種問題
答案眾說紛紜,永遠沒有固定的答案
而我認為那是正常現象
因為每個人一輩子都只有一次機會從頭開始學習程式
學過一趟後再學下一個語言,感受就跟真正的菜鳥不一樣了
所以每個人都只能了解一種學習管道的好壞
根本沒有人可以體會過一遍所有的語言、所有的教材
當然也就沒有人真正知道哪種語言、管道是最好的了
像我是個C廚
我永遠只能推別人學C,我自己也不會C/C++以外的語言
C在後期開發大型程式時難度遠高過其他高階語言,是很多人說C難的原因
但在新手時期,我認為C可以很漂亮地表現出程式底層的邏輯
對於一個有野心要真正精通程式的人來說,這是非常重要的
不然你也可以參考附圖
雖然這張可能過時、可能也摻有作者自己的主觀意見
不過至少你可以從問題裡看出各個語言有怎樣的特色
>>9449784至少我自己不認為這跟架構好壞有關...
這問題發生在一個小型架構上,改架構能解決的話我早就改了
>>想要有suicide()的功能卻沒override 那麼為什麼要繼承他
我看不懂你的問題
我會有這個狀況是我希望使用suicide做效能優化
其實我只要固定使用killAll就可以安全地解決所有人
但如果所有該殺的人都能suicide,叫他們一個個suicide會更省資源
其實硬要實作的話,每個人都可以用killAll(this)來充當suicide
但我要做這東西就是為了在特定情況下節省效能,所以那樣沒意義
而每個ChildClass有自己的性質,有人生不出比killAll(this)還便宜的suicide應該不是件很奇怪的事吧
無題 無名 ID:klofynSg 17/07/11(二)22:42:39 No.9449853
無題 無名 ID:wY4IY2YY 17/07/11(二)22:52:26 No.9449925 >>9449543有些人可以suicide有些人不行
那你這個suicide方法就存在模稜兩可
原本設計上就有問題
>那個本來就是個optional的能力
那當初設計的時後就應該帶參數
suicide(int opt)
最好是用enum列舉各種死法
然後再各自實作死法
要不然就是想辦法優化killAll的效能
必須要有一個方法讓所有人死法標準化
不然怎麼改都不好
程式是很嚴謹的東西
當初的架構已經不符合後來的業務邏輯時
本來就該重新修改架構明確定義清楚邏輯
至於修改的幅度大小就看當初架構模組化的程度和業務邏輯更改的狀況
沒有什麼簡單改改就能萬用的程式 (不要給我小看寫程式這份工作啊!!)
一直糾結程式怎麼樣才簡潔、怎麼樣才能最小幅度修改架構、怎麼樣寫程式才會漂亮
這才是降低開發效率的元凶
為了讓程式看起來很漂亮簡潔而寫出定義模稜兩可、自相矛盾、偷雞摸狗的程式才真的是horse shit!
而且我一直都覺得 程式 沒有什麼漂亮不漂亮的
只有能跑跟不能跑的分別,再進階一點也就區分跑得快跟跑得慢的
會區分漂亮不漂亮的,不是自己看不懂別人程式
就是像宗教狂熱份子一樣,看別人不順眼就說別人是邪教!
無題 無名 ID:sU/UXlG6 17/07/11(二)22:58:24 No.9449958 想起之前有一串
一個簡單的猜數字遊戲然後一些島民分別用不同語言寫出來
感覺很有趣也可以同時認識不少語言
不知道還有沒有機會有第二串
無題 無名 ID:FWsa8Opo 17/07/11(二)23:01:07 No.9449977
無題 無名 ID:Bw0R7Hfk 17/07/11(二)23:07:37 No.9450005 >>9449925我認為你沒有看懂我的問題
我已經解釋過很多次了
會那樣做是為了效能
不管效能的話我就通通丟killAll就好了
而且那是已經解決了的問題
反正最後我得到了不能動態檢查override的結論後就乖乖用isSuicidable了
順便把他拿去做更多樣化的功能
只是拿來嚇嚇原PO,然後不小心聊開了而已
>>而且我一直都覺得 程式 沒有什麼漂亮不漂亮的
>>只有能跑跟不能跑的分別,再進階一點也就區分跑得快跟跑得慢的
我想那是因為你沒寫過大到自己無法記得全貌、需要用邏輯方式推敲舊code長怎樣的程式
你大概也沒寫過沿路寫髒code結果髒到最後整個code無從下手的程式
我不是會去評論別人code好不好看的機掰人
但我對自己的code有潔癖應該不是什麼可惡的事吧
無題 無名 ID:CddRqbXE 17/07/11(二)23:08:17 No.9450011 無題 無名 ID:8HGTUQB6 17/07/11(二)23:10:14 No.9450024 能跑不能跑
能改不能改
好維護不好維護
好看懂不好看懂
這都很重要好嗎
無題 無名 ID:sU/UXlG6 17/07/11(二)23:14:35 No.9450040
>>9450011其實還是可以貼出來玩玩看啊
上次不是就有不少島民跟你說你的程式有哪些地方有問題可以改
從中就可以學到不少東西
無題 無名 ID:wY4IY2YY 17/07/11(二)23:55:53 No.9450233
>>9450005>我認為你沒有看懂我的問題
問題最終還是行為不一致,功能定義模稜兩可不是嗎
不修改原架構而去用程式動態檢查程式結構或額外新增東西
我覺得只是增加特例來繞開問題而已
killAll也是讓所有人行為一致化的好方法
若無法再優化killAll的效能
我覺得還是必須要推翻之前的架構,重新定義好功能
>我想那是因為你沒寫過大到自己無法記得全貌、需要用邏輯方式推敲舊code長怎樣的程式
>你大概也沒寫過沿路寫髒code結果髒到最後整個code無從下手的程式
沒想到原本只是想說出我自己對程式設計的想法
卻會引發地圖砲式的盲目指責
各位島民真抱歉 我讓討論水準降低了.....
>>9450024縮得梅錯