[問題] 1A2B遊戲 B的判斷

作者: LeafLu (小葉)   2017-01-11 23:17:29
大家好
不好意思請問一下大家
如何判斷B的個數?
我想要讓2位使用者textbox輸入數字(4位數)讓對方來猜
模板:

(左上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
作者: te426odin (小胖老師)   2017-01-12 00:46:00
為什麼會是4B,照理說應該是2B而已目前只想到用迴圈一個一個判斷,位子不會就B++期待高手解題
作者: Phenomenon (Kuma)   2017-01-12 02:02:00
這個迴圈有判斷到B的時候就可以離開(break)了,不然後面第二次判斷到相同的又會B++
作者: pili100 (zelda)   2017-01-12 11:11:00
以前玩這個,印象數字不能重覆?
作者: smmoon (邦)   2017-01-13 09:07:00
p2number.Distinct().ToArray();
作者: testPtt (測試)   2017-01-13 14:43:00
先把a位置排除 再去算b這方法排除7777給到2a2b的回答
作者: jeffic0730 (重生)   2017-01-13 21:30:00
數字重複感覺會玩到天亮XD
作者: uranusjr (←這人是超級笨蛋)   2017-01-13 23:14:00
其實你 1P 直接 shuffle 一個 int[10] 就好了啊...int[] source = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};source.OrderBy(i => ran.Next()) 然後取前四個(忘了 var ran = new Random())
作者: Litfal (Litfal)   2017-01-16 10:02:00
怎麼會是4B...B的定義應該是有這個數字,但位置錯了吧7700 前兩個7是B,後兩個0沒中P[i]==Q[i] 時A++,否則P.Contains(Q[i])時B++
作者: ssas1115577 (Holey)   2017-01-25 05:49:00
可以參考看看 http://tinyurl.com/zclx9rw

Links booklink

Contact Us: admin [ a t ] ucptt.com