📄 linkshuffle.java
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package Shuffle;/** *这个发牌方法发现有一个问题,最后一个几乎都是1,概率不平均 * @author DJ尐舞 */class CardNode{ int cardNum; CardNode next=null;}public class LinkShuffle { //构造函数 public LinkShuffle(){ createCardNode(); } CardNode headNote; public void createCardNode(){ for(int i=1;i<=52;i++){ CardNode temp; temp=new CardNode(); temp.cardNum=i; temp.next=headNote; headNote=temp; } } //删除节点,并返回删除节点的值 int deleteNode(int tag){ int count=0; int result; CardNode temp1=headNote; CardNode temp2=headNote; while(count<tag){ temp1=temp1.next; if(count!=0) temp2=temp2.next; count++; } if(count==1){ result=headNote.cardNum; headNote=headNote.next; } else{ result=temp1.cardNum; temp2.next=temp1.next; } return result; } String intToCard(int cardNum){ String cardType; switch(cardNum/13){ case 0:cardType="黑桃";break; case 1:cardType="红心";break; case 2:cardType="梅花";break; case 3:cardType="方块";break; default:return "输入的值有误"+cardNum; } switch(cardNum%13){ case 0:cardType+="K";break; case 1:cardType+="A";break; case 12:cardType+="Q";break; case 11:cardType+="J";break; default:cardType+=cardNum%13; } return cardType; } //发牌 public void showCard(){ CardNode temp=headNote; int Notelength=52; while(Notelength>0){ if(Notelength%13==0)System.out.print("\n\r"); System.out.print(intToCard(deleteNode((int)(Math.random()*Notelength))-1)+" "); Notelength--; } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -