[問題] 用C++寫桌遊程式(變色龍)

看板C_and_CPP作者 (`U2665 我得不到的東西)時間6年前 (2017/11/05 15:45), 編輯推噓11(11039)
留言50則, 9人參與, 6年前最新討論串1/1
開發平台(Platform): (Ex: Win10, Linux, ...) WIN10 如題,小弟最近在練習用c++寫桌遊 是很簡陋的那一種 基本上就是把規則架設好 剩下的AI都用隨機亂數決定出牌 但是問題來了 程式很容易執行到一半就停止 也不是當機就是一直沒跑出下個指令 通常出現在 AI拿取牌後發生 或是AI拿取牌後卻改了兩個BOOL值 小弟進行了單元測試都沒問題 但是和在一起就GG了 這是部分程式而已還沒完成 懇請指點一下迷津 是不是因為隨機亂數產生需要時間呢? 程式碼(Code):(請善用置底文網頁, 記得排版) http://codepad.org/yAzkV6Gz 補充說明(Supplement): 程式的邏輯為 move決定抽牌或收牌 收過牌的該玩家 _take_card 會變成true 被收過的那列 card_taken 會變成 true 並重置值 直到四個玩家都變成true 在重回第一步 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.247.20 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1509867939.A.E96.html

11/05 16:18, 6年前 , 1F
608行: put_CardOnRow是char吧
11/05 16:18, 1F

11/05 16:19, 6年前 , 2F
然後cardcolor 用字串陣列的話就不用那麼多if了
11/05 16:19, 2F

11/05 16:20, 6年前 , 3F
不能用char存隨機亂數嗎?
11/05 16:20, 3F

11/05 17:48, 6年前 , 4F
是可以啊
11/05 17:48, 4F

11/05 17:50, 6年前 , 5F
實際跑一遍發現:cardtakenA=true時,會直接continue
11/05 17:50, 5F

11/05 17:50, 6年前 , 6F
然後就無限迴圈了
11/05 17:50, 6F

11/05 18:10, 6年前 , 7F
原來如此 是那邊出問題嗎? 感謝大大 我這就去看看
11/05 18:10, 7F

11/05 18:20, 6年前 , 8F
小弟資質駑鈍 可以提示一下哪行嗎?
11/05 18:20, 8F

11/05 18:30, 6年前 , 9F
是邏輯問題,不是指令有誤
11/05 18:30, 9F

11/05 18:31, 6年前 , 10F
A是true之後,就沒看BCD直接continue ,然後又回到A
11/05 18:31, 10F

11/05 18:31, 6年前 , 11F
我大概知道是哪行了 可是我的邏輯有錯嗎? continue 後
11/05 18:31, 11F

11/05 18:31, 6年前 , 12F
回到上面不是會重新得到一個rand嗎?
11/05 18:31, 12F

11/05 18:33, 6年前 , 13F
喔喔喔喔喔喔 我看到了 那我該怎麼改好呢?我有點想不太
11/05 18:33, 13F

11/05 18:33, 6年前 , 14F
11/05 18:33, 14F

11/05 18:37, 6年前 , 15F
不要使用continue ,沒有規劃好別用這東西
11/05 18:37, 15F

11/05 18:39, 6年前 , 16F
抱歉,自學的新手QQ
11/05 18:39, 16F

11/05 18:39, 6年前 , 17F
大大可不可以給我更實質的建議呢?拜託了 我已經想這問
11/05 18:39, 17F

11/05 18:39, 6年前 , 18F
題兩天了
11/05 18:39, 18F

11/05 18:48, 6年前 , 19F
就if(!A){}elseif(!B){}elseif......這樣啊
11/05 18:48, 19F

11/05 18:50, 6年前 , 20F
好的,等等馬上改看看
11/05 18:50, 20F

11/05 18:50, 6年前 , 21F
之後還有問題可以寄站內問您嗎?
11/05 18:50, 21F

11/05 18:52, 6年前 , 22F
我不熟C++,很多問題我不見得會。
11/05 18:52, 22F

11/05 18:53, 6年前 , 23F
邏輯問題建議自己在紙上走一次再開始寫
11/05 18:53, 23F

11/05 23:03, 6年前 , 24F
感覺重複的地方太多了 可以多用函式
11/05 23:03, 24F

11/05 23:03, 6年前 , 25F
然後switch可以取代只會有一種結果的一堆if else
11/05 23:03, 25F

11/05 23:06, 6年前 , 26F
然後等學到物件導向之後試著把AI用物件導向的方式重寫
11/05 23:06, 26F

11/05 23:06, 6年前 , 27F
一次吧 收穫會挺多的
11/05 23:06, 27F

11/07 13:53, 6年前 , 28F
這讓我想起我的嵌入式專題用thread寫玩家輪流呢
11/07 13:53, 28F

11/07 16:20, 6年前 , 29F
116?
11/07 16:20, 29F

11/14 18:56, 6年前 , 30F
仁暐的學生轟XD
11/14 18:56, 30F

11/14 22:18, 6年前 , 31F
甲班計概?
11/14 22:18, 31F

11/16 14:09, 6年前 , 32F
原來github上面那個是樓上學長的,哈哈,還以為是外
11/16 14:09, 32F

11/16 14:11, 6年前 , 33F
國人
11/16 14:11, 33F

11/16 23:01, 6年前 , 34F
所以那個star的是樓上嗎ww,可是那個寫的很爛還沒寫完(X
11/16 23:01, 34F

11/16 23:01, 6年前 , 35F
而且我也不是修甲班計概(X
11/16 23:01, 35F

11/30 01:15, 6年前 , 36F
厲害 自學的新手可以寫到2000多行XDDD
11/30 01:15, 36F

11/30 01:16, 6年前 , 37F
不過就是土法煉鋼而已XDD 想到什麼寫什麼 用最簡單的
11/30 01:16, 37F

11/30 01:16, 6年前 , 38F
方式 一步一步寫出來~~~
11/30 01:16, 38F

11/30 01:18, 6年前 , 39F
countine的部分可以看一下教學 會比較清楚~~~
11/30 01:18, 39F

11/30 01:18, 6年前 , 40F
看到你好像都只有用if...else的用法!! 不知道你自學
11/30 01:18, 40F

11/30 01:19, 6年前 , 41F
是學到哪裡學到多少,上面有人提到的switch是一個蠻好
11/30 01:19, 41F

11/30 01:19, 6年前 , 42F
使用的方法!!! 可以幫助你解少很多行的程式碼!!!
11/30 01:19, 42F

11/30 01:21, 6年前 , 43F
這部分 可以小小提供我自己看過的資料可以去看
11/30 01:21, 43F

11/30 01:22, 6年前 , 44F

11/30 01:22, 6年前 , 45F
它裡面的流程控制 應該可以幫助妳很多~~~
11/30 01:22, 45F

11/30 01:22, 6年前 , 46F
至於邏輯的部分 如果你對語言的架構跟使用很清楚的話!
11/30 01:22, 46F

11/30 01:23, 6年前 , 47F
我自己的方法會是 在紙上 先寫出 假設判斷好了 要用
11/30 01:23, 47F

11/30 01:23, 6年前 , 48F
if 還是while還是還是哪些方法 會先寫出來 在看怎麼跑
11/30 01:23, 48F

11/30 01:23, 6年前 , 49F
會來的直接打程式碼 一直想他是怎樣 會來的比較好~~
11/30 01:23, 49F

11/30 01:24, 6年前 , 50F
雖然我懂得也不多 也是還在自學 一起加油吧!!!
11/30 01:24, 50F
文章代碼(AID): #1P_i6ZwM (C_and_CPP)