看板 C_Sharp 關於我們 聯絡資訊
大家好 不好意思請問一下大家 如何判斷B的個數? 我想要讓2位使用者textbox輸入數字(4位數)讓對方來猜 模板:http://imgur.com/a/3X6M2 (左上textBox1 右上textBox2 左中textBox3 右中textBox4) 用到了 int A=0,B=0; char[] guess=new char[4]; guess=textBox3.Text.ToCharArray(); char[] p2number=new char[4] p2number=textBox2.Text.ToCharArray(); 爬文看到的都是數字不能重複的範例 請問一下有甚麼辦法判斷完重複的數字就決定(B)個數? EX: 設定的數字是1177 猜的數字7700 現在想到的是用迴圈一個一個判斷 第一個7跟後面兩個7重複=>2B 第二個7也跟後面2個7重複=>2B 顯示出的是4B -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.139.63.53 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1484147852.A.837.html ※ 編輯: LeafLu (223.138.45.242), 01/11/2017 23:22:43
te426odin: 為什麼會是4B,照理說應該是2B而已 01/12 00:46
te426odin: 目前只想到用迴圈一個一個判斷,位子不會就B++ 01/12 00:47
te426odin: 期待高手解題 01/12 00:47
Phenomenon: 這個迴圈有判斷到B的時候就可以離開(break)了,不然 01/12 02:02
Phenomenon: 後面第二次判斷到相同的又會B++ 01/12 02:02
pili100: 以前玩這個,印象數字不能重覆? 01/12 11:11
因為想做1P或2P模式 1P用亂數 想說保全一點.. 問了一下別人說 相同的話把陣列的元素清掉 EX: guess={7,7,0,0}; p2number={1,1,7,7}; 逐步檢查 guess[0]=p2number[3] ==>B+1==>p2number={1,1,7} guess[1]=p2number[3] ==>B+1==>p2number={1,1} 結果:0A2B 請問一下如何把陣列相同的東西完全清除掉? 用了Array.Clear好像只是把它變成0 陣列大小一樣 ※ 編輯: LeafLu (140.123.225.131), 01/12/2017 17:49:18
smmoon: p2number.Distinct().ToArray(); 01/13 09:07
testPtt: 先把a位置排除 再去算b 01/13 14:43
testPtt: 這方法排除7777給到2a2b的回答 01/13 14:59
jeffic0730: 數字重複感覺會玩到天亮XD 01/13 21:30
uranusjr: 其實你 1P 直接 shuffle 一個 int[10] 就好了啊... 01/13 23:14
uranusjr: int[] source = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; 01/13 23:18
uranusjr: source.OrderBy(i => ran.Next()) 然後取前四個 01/13 23:21
uranusjr: (忘了 var ran = new Random()) 01/13 23:22
Litfal: 怎麼會是4B...B的定義應該是有這個數字,但位置錯了吧 01/16 10:02
Litfal: 7700 前兩個7是B,後兩個0沒中 01/16 10:03
Litfal: P[i]==Q[i] 時A++,否則P.Contains(Q[i])時B++ 01/16 10:05
ssas1115577: 可以參考看看 http://tinyurl.com/zclx9rw 01/25 05:49