[問題] ASP.NET 發牌重複問題

看板Web_Design作者 (十四度)時間17年前 (2006/11/14 22:42), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
下面是我在網路上找到的範例 發牌給四個人 當然牌不能重複 他的亂數發牌是用下面的程式達成的 但是小的才疏學淺 看不懂 有沒有哪位高手可以幫我解釋一下 為什麼這樣就可以達到C(I)完全不會重複? FOR I = 1 TO 104 X = INT(RND * 52) Y = INT(RND * 52) Temp=C(X) C(X)=C(Y) C(Y)=Temp NEXT I --------------------------------------------------- <!-- ASP.NET 程式名稱: 亂數發牌 Author: 姚奉緒 --> <!-- This Program Needs 4 graph flies: T0.jpg/T1.jpg/T2.jpg/T3.jpg --> <%@ Page Language="VB" Debug="true" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OleDb" %> <%@ Import Namespace="System.Web.Mail" %> <HTML> <BODY BgColor="#FFFFFF"> <Form runat="server"> <b>請按鈕發牌:</b> <asp:Button runat="server" Text="發牌" OnClick="Button_Click" /><P><HR> <asp:Label runat="server" Text="" id="East" /><P> <asp:Label runat="server" Text="" id="North" /><P> <asp:Label runat="server" Text="" id="West" /><P> <asp:Label runat="server" Text="" id="South" /><P> </Form> </BODY> </HTML> <script Language="VB" runat="server"> Sub Button_Click(sender As Object, e As EventArgs) Dim C(52) as Integer Dim I,J,X,Y,Temp as Integer Dim card(4) as String Dim R() ={"A","2","3","4","5","6","7","8","9","T","J","Q","K"} FOR I = 0 TO 51 C(I) = I NEXT I FOR I = 1 TO 104 X = INT(RND * 52) Y = INT(RND * 52) Temp=C(X) C(X)=C(Y) C(Y)=Temp NEXT I FOR I = 0 TO 3 FOR J = 0 TO 12 X = C(J + I * 13) MOD 13 Y = C(J + I * 13) \ 13 card(i)=card(i)+ "<img src=T" & Y & ".jpg>" & R(X) & " " NEXT J NEXT I East.Text="東家: " +card(0) North.Text="北家: " +card(1) West.Text="西家: " +card(2) South.Text="南家: " +card(3) End Sub </script> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.230.171
文章代碼(AID): #15MTN09J (Web_Design)
文章代碼(AID): #15MTN09J (Web_Design)