日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 麻将的发牌与洗牌_JAVA程序设计(11)-----面对对象初级设计 麻将 创建麻将牌 然后洗牌 发牌~ 恩 就这样...

發布時間:2024/3/7 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 麻将的发牌与洗牌_JAVA程序设计(11)-----面对对象初级设计 麻将 创建麻将牌 然后洗牌 发牌~ 恩 就这样... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

zzzzZZZZ

1.開始還想貼圖的 實在太懶了…… 這是一張麻將

package com.lovo;

import java.awt.Graphics;

import java.awt.Image;

/**

* 類 : 麻將牌

* @author Abe 屬性:花色 點數 圖片

*/

public class Mahjong {

private Suite suite;

private int face;

private Image image;

/**

* 構造器

*

* @param suits

* @param face

* @param image

*/

public Mahjong(Suite suits, int face/*, Image image*/) {

this.suite = suits;

this.face = face;

//this.image = image;

}

/**

* 繪制一張牌

*/

public void draw(Graphics g,int x ,int y){

g.drawImage(image, x, y, 50, 100, null);

}

/**

* 輸出一張牌的點數和花色

*/

public String toString(){

String str = "";

switch (suite) {

case CIRCLE:

str += face + "筒";

break;

case BAMBOO:

str += face + "條";

break;

case CHARACTER:

str += face + "萬";

break;

}

return str;

}

/**

* 獲得花色 和 點數

* @return

*/

public Suite getSuits() {

return suite;

}

public int getFace() {

return face;

}

}2.一副麻將

package com.lovo;

import java.awt.Image;

import javax.swing.ImageIcon;

/**

* 類:一副麻將牌(108張)

*

* @author Abe 屬性:牌面圖片 一副牌 第多少張

*/

public class Mahjongs {

//private static Image[] images = new Image[36];

private Mahjong[] mah = new Mahjong[108];

private int sheet = 0;

//static {// 靜態加載器

//for (int i = 0; i < images.length; i++) {

//ImageIcon icon = new ImageIcon("mahjong/" + (i + 1) + ".jpg");

//for(int j = 0 ; j < 4 ; j++){

//images[i * 4 + j] = icon.getImage();

//}

//}

//}

/**

* 構造器 初始化

*/

public Mahjongs() {

Suite[] suites = {Suite.CIRCLE , Suite.BAMBOO , Suite.CHARACTER};

int[] faces = {1,2,3,4,5,6,7,8,9};

for (int i = 0 ; i < mah.length; i++ ){

mah[i] = new Mahjong(suites[i / 36], faces[i % 9]/*, images[i]*/);

}

}

/**

* 行為 : 洗牌

*/

public void stuffle(){

for (int n = 0; n < 500; n++) {

int i = (int) (Math.random() * 108);

int j = (int) (Math.random() * 108);

Mahjong temp;

temp = mah[i];

mah[i] = mah[j];

mah[j] = temp;

}

}

/**

* 行為: 發牌

*/

public Mahjong deal(){

return sheet < mah.length ? mah[sheet++] : null; //這句還是有點模糊 要在輸出sheet之后再++的么?

}

public Mahjong[] getAll(){

return mah;

}

}

3.打印

package com.lovo;

/**

* 麻將

* @author Abe

*

*/

public class TestMah {

public static void main(String[] args) {

Mahjongs mahj = new Mahjongs();

Mahjong one = null;

mahj.stuffle();

for(int i = 0 ; i < 108 ; i++){

one = mahj.deal();

System.out.print(one + "\t");

if(i % 9 == 8){

System.out.println("");

}

}

}

}妥妥的~

總結

以上是生活随笔為你收集整理的java 麻将的发牌与洗牌_JAVA程序设计(11)-----面对对象初级设计 麻将 创建麻将牌 然后洗牌 发牌~ 恩 就这样...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。