利用pokers文件夹中的图片,用纯JS生成的扑克牌依次排列到页面上

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>扑克牌</title>
</head>

<body>
    <div id="divcontainer"></div>
    <p>利用pokers文件夹中的图片,用纯JS生成的图片依次排列到页面上,不允许使用样式</p>
    <script>
        var div = document.getElementById("divcontainer");
        for (var i = 1; i <= 13; i++) {
            for (var j = 1; j <= 4; j++) {
                // 创建一个新的元素img
               var img = document.createElement("img");
               img.src = `pokers/${i}-${j}.png`;
            //    appendChild添加子节点
               div.appendChild(img);
               img.style.margin = "30px"
            }
        }
        
    </script>
</body>

</html>

效果图

乱序版:每次刷新,都打乱牌的顺序。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>扑克牌</title>
</head>

<body>
    <div id="divcontainer"></div>
    <p>利用pokers文件夹中的图片,用纯JS生成的图片依次排列到页面上,不允许使用样式</p>
    <script>
        var div = document.getElementById("divcontainer");
        var imgs = []; //数组接收
        for (var i = 1; i <= 13; i++) {
            for (var j = 1; j <= 4; j++) {
                imgs.push(createImg(`pokers/${i}-${j}.png`));
            }
        }
        imgs.push(createImg(`pokers/14-1.png`));
        imgs.push(createImg(`pokers/15-1.png`));
        imgs.sort(function () {
            return Math.random() - 0.5;
        });
        // 循环数组,添加图片
        imgs.forEach(function (img) {
            div.appendChild(img);
        });


        //函数:创造图片,把图片路径加进去
        function createImg(src) {
            var img = document.createElement("img");
            img.src = src; //写图片路径
            img.style.margin = "30px";
            return img;
        }
        
    </script>
</body>

</html>

图片百度找的用“fireworks“ 切的,切的不是很平整,做个小test凑活着用吧。
链接是图片素材
链接:https://pan.baidu.com/s/1Drrez7ky4JY-LTL2A78XtQ
提取码:ne5m*

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个比较复杂的Java项目,需要涉及到图形化界面和鼠标事件的处理,以下是一个简单的实现思路: 1. 导入扑克牌素材图片,可以使用Java的Image类进行导入和处理。 2. 创建一个扑克牌类,包括牌面、花色等属性,并且可以继承JLabel类,以便在界面上进行显示。 3. 在界面上创建一个扑克牌区域,并将所有扑克牌显示出来。 4. 添加鼠标监听器,当用户点击某张扑克牌时,将该牌移动到上方,表示选状态。 5. 再次点击该牌时,将其恢复至初始状态。 6. 添加洗牌功能,可以使用Java的Collections工具类进行随机排序,将所有扑克牌打乱位置。 以下是代码示例: ```java import javax.swing.*; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; import java.util.Collections; public class PokerGame extends JFrame { private JPanel cardPanel; // 扑克牌区域 private ArrayList<Poker> pokers; // 扑克牌列表 private boolean selected = false; // 是否选扑克牌 public PokerGame() { initUI(); initPokers(); } private void initUI() { setTitle("扑克牌游戏"); setSize(800, 600); setDefaultCloseOperation(EXIT_ON_CLOSE); cardPanel = new JPanel(); cardPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10)); add(cardPanel, BorderLayout.CENTER); setVisible(true); } private void initPokers() { // 导入扑克牌素材图片 ImageIcon[] images = new ImageIcon[52]; for (int i = 0; i < 52; i++) { images[i] = new ImageIcon("poker/" + i + ".png"); } // 创建扑克牌列表 pokers = new ArrayList<>(); for (int i = 0; i < 52; i++) { Poker poker = new Poker(images[i], i); pokers.add(poker); cardPanel.add(poker); // 添加鼠标监听器 poker.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { if (selected) { // 恢复至初始状态 poker.setLocation(poker.getX(), poker.getY() + 20); selected = false; } else { // 移动到上方,表示选状态 poker.setLocation(poker.getX(), poker.getY() - 20); selected = true; } } }); } } public void shuffle() { // 洗牌,打乱所有扑克牌位置 Collections.shuffle(pokers); for (int i = 0; i < 52; i++) { Poker poker = pokers.get(i); cardPanel.setComponentZOrder(poker, i); poker.setLocation(10 + i * 15, 10); } } public static void main(String[] args) { PokerGame game = new PokerGame(); game.shuffle(); } } // Poker类,继承JLabel类 class Poker extends JLabel { private int id; // 扑克牌ID public Poker(ImageIcon image, int id) { super(image); this.id = id; } public int getId() { return id; } } ``` 需要注意的是,本示例图片素材需要放在项目根目录下的poker文件夹才能正确导入。另外,洗牌功能可以通过调用shuffle()方法实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值