[問題] 如何切割陣列與排序?

看板C_Sharp作者 (平安又有錢才是福)時間7年前 (2017/05/21 21:41), 編輯推噓4(4016)
留言20則, 6人參與, 最新討論串1/1
新手剛學C# 有些問題想請教板上高手 string e = "玩家A = ", k = "玩家B = ", g = "玩家C = ", u = "玩家D = "; int[] a = new int[53]; Random rnd = new Random(); for(int i=1;i<a.Length;i++) { a[i] = rnd.Next(1, a.Length); for (int j = 0; j < i; j++) { while (a[j] == a[i]) { j = 0; a[i] = rnd.Next(1, a.Length); } } Console.Write(a[i] + " "); if (i % 13 == 0) { Console.WriteLine(); //第二位玩家 Console.Write(k); k = ""; } if (i % 26 == 0) { //第三位玩家 Console.Write(g); g = ""; } if (i % 39 == 0) { //第四位玩家 Console.Write(u); } } 我想將陣列a[i]切成4份,但不知道該用什麼指令? 然後想將4份陣列各自排序,由小排到大,不知道該怎麼寫?我用 Array.Sort(a)會變成a陣列全部排序,不知道該怎樣才能把它分 成4段各自排序? 撲克牌的4種花色不知道要怎麼加? 我只上過5堂C#的課,所知有限,只能想到這裡,希望有高手可以指點。 如果違反板規我會自刪,感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.242.103.187 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1495374099.A.776.html

05/21 21:58, , 1F
你的變數命名可以給他一個有意義的名字嗎QQ
05/21 21:58, 1F

05/21 22:01, , 2F
目前粗略看起來,這是想洗牌後發牌給四人,並幫他們拿到
05/21 22:01, 2F

05/21 22:01, , 3F
的手牌各自按照牌的大小排序,是這樣嗎?
05/21 22:01, 3F

05/21 22:37, , 4F
嗯嗯,像s大說的那樣,想了一整天想不出來。
05/21 22:37, 4F

05/21 22:55, , 5F
一些毛病、初學者就不吐槽了,不過至少變數命名習慣請養好
05/21 22:55, 5F

05/21 23:01, , 6F
分四份的話,你要宣告4個13張的陣列,然後跑迴圈用洗好牌
05/21 23:01, 6F

05/21 23:02, , 7F
的a把他們填滿阿。雖然可以用LINQ簡單解決,不過初學者先
05/21 23:02, 7F

05/21 23:02, , 8F
練好迴圈和陣列吧
05/21 23:02, 8F

05/21 23:07, , 9F
我的話會直接亂洗一個陣列 然後拆4份給其他玩家
05/21 23:07, 9F

05/21 23:39, , 10F
M大說的就是我想要的,只是我不知道怎麼拆?
05/21 23:39, 10F

05/21 23:40, , 11F
喔喔!謝謝L大和其他大大的建議。
05/21 23:40, 11F

05/21 23:41, , 12F
可是我不知道怎麼把洗好的陣列,塞到其他陣列。
05/21 23:41, 12F

05/21 23:46, , 13F
然後變數名稱是課堂上的老師這樣教的,我盡量改,謝謝各
05/21 23:46, 13F

05/21 23:46, , 14F
位。
05/21 23:46, 14F

05/21 23:53, , 15F
你可以google =>C# split array
05/21 23:53, 15F

05/21 23:53, , 16F
然後找個你看得懂的方法
05/21 23:53, 16F

05/22 12:24, , 17F
Array.Coby(a,起點,玩家,起點,長度);
05/22 12:24, 17F

05/22 12:32, , 18F
分四份的動作建議在迴圈外面作
05/22 12:32, 18F

05/22 12:32, , 19F
再來就是建議思考一下怎麼更有效率的洗牌
05/22 12:32, 19F

05/22 22:20, , 20F
謝謝樓上各位的建議。
05/22 22:20, 20F
文章代碼(AID): #1P8PaJTs (C_Sharp)