如何添加可以在我的生命游戏程序中获得生成的功能?

2023-12-28

我试图让我的程序显示(首先在控制台中测试)单元格改变其形式的每个步骤的计数。因此计数应该从 0 开始,并在每次单元格改变其形式时递增。我尝试了这个,使用 count++ 但它不会增加 1,而是给我随机数。任何帮助都感激不尽。

import java.awt.Color;
import java.util.Timer;
import java.util.TimerTask;
import java.awt.Image;
import java.awt.Graphics;
import javax.swing.SwingUtilities;

public class GameOfLife extends javax.swing.JFrame {

final int wid = 100, hei = 50;
public static int count;
boolean[][] currentMove = new boolean[hei][wid], nextMove = new boolean[hei][wid];
boolean play;
Image offScrImg;
Graphics offScrGraph;

public GameOfLife() {
    initComponents();
    offScrImg = createImage(jPanel1.getWidth(), jPanel1.getHeight());
    offScrGraph = offScrImg.getGraphics();
    Timer time = new Timer();
    TimerTask task = new TimerTask(){
        public void run(){
            if(play){
                System.out.println(count);
                for(int i = 0; i < hei; i++){
                    for(int j = 0; j < wid; j++){
                        nextMove[i][j] = decide(i,j);

                    }
                }
                for(int i = 0; i < hei; i++){
                    for(int j = 0; j < wid; j++){
                        currentMove[i][j] = nextMove[i][j];

                    }
                }
                repain();
            }
        }
    };
    time.scheduleAtFixedRate(task, 0, 100);
    repain();
}

private boolean decide(int i, int j){
    int neighbors = 0;

    // top-left row-1,col-1

    if (currentMove[getTopRow(i - 1)][getLeftCol(j - 1)]) neighbors++;  //Uses getTopRow and getLeftCol methods to determine the indices of the top left cell

    // left row,col-1
    if (currentMove[i][getLeftCol(j - 1)]) neighbors++;

    // bottom left row+1,col-1
    if (currentMove[getBottomRow(i + 1)][getLeftCol(j - 1)] ) neighbors++;

    // bottom row+1,col
    if (currentMove[getBottomRow(i + 1)][j]) neighbors++;

    // bottom right row+1,col+1
    if (currentMove[getBottomRow(i + 1)][getRightCol(j + 1)]) neighbors++;

    // right row,col+1
    if (currentMove[i][getRightCol(j + 1)]) neighbors++;

    // top-right row-1,col+1
    if (currentMove[getTopRow(i - 1)][getRightCol(j + 1)])neighbors++;

    // top row-1, col
    if(currentMove[getTopRow(i - 1)][j]) neighbors++;


    if(neighbors == 3) {       
        count++;
        return true;                
    }
    if(currentMove[i][j] && neighbors == 2){   
        count++;
        return true;         
    }
    return false;
}
private int getLeftCol(int neighbourCol) {
    return neighbourCol < 0 ? (wid-1) : neighbourCol;   //If the index of leftCol is less than 0, it uses the right most col (columns - 1)
}

private int getRightCol(int neighbourCol) {
    return neighbourCol > (wid-1) ? 0 : neighbourCol;
}

private int getTopRow(int neighbourRow) {
    return neighbourRow < 0 ? (hei - 1) : neighbourRow; //If the index of topRow is less than 0, it uses the bottom last row (rows - 1)
}

private int getBottomRow(int neighbourRow) {
    return neighbourRow > (hei - 1) ? 0 : neighbourRow;
}

private void repain(){
    offScrGraph.setColor(Color.RED);
    offScrGraph.fillRect(0, 0, jPanel1.getWidth(), jPanel1.getHeight());
    for(int i = 0 ; i < hei ; i++){
        for(int j = 0 ; j < wid; j++){
            if(currentMove[i][j]){
                offScrGraph.setColor(Color.GREEN);
                int x = j * jPanel1.getWidth()/wid;
                int y = i * jPanel1.getHeight()/hei;
                offScrGraph.fillRect(x, y, jPanel1.getWidth()/wid, jPanel1.getHeight()/hei);
            }
        }
    }
    offScrGraph.setColor(Color.BLACK);
    for(int i = 1; i < hei;i++){
        int y = i * jPanel1.getHeight()/hei;
        offScrGraph.drawLine(0, y, jPanel1.getWidth(), y);
    }
    for(int j = 1; j < wid;j++){
        int x = j * jPanel1.getWidth()/wid;
        offScrGraph.drawLine(x, 0, x, jPanel1.getHeight());
    }
    jPanel1.getGraphics().drawImage(offScrImg, 0, 0, jPanel1);
}

@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {

    jPanel1 = new javax.swing.JPanel();
    jButton1 = new javax.swing.JButton();
    jButton2 = new javax.swing.JButton();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    jPanel1.setBackground(new java.awt.Color(102, 102, 102));
    jPanel1.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
        public void mouseDragged(java.awt.event.MouseEvent evt) {
            jPanel1MouseDragged(evt);
        }
    });
    jPanel1.addMouseListener(new java.awt.event.MouseAdapter() {
        public void mouseClicked(java.awt.event.MouseEvent evt) {
            jPanel1MouseClicked(evt);
        }
    });
    jPanel1.addComponentListener(new java.awt.event.ComponentAdapter() {
        public void componentResized(java.awt.event.ComponentEvent evt) {
            jPanel1ComponentResized(evt);
        }
    });

    javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
    jPanel1.setLayout(jPanel1Layout);
    jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 0, Short.MAX_VALUE)
            );
    jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 293, Short.MAX_VALUE)
            );

    jButton1.setText("Play");
    jButton1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton1ActionPerformed(evt);
        }
    });

    jButton2.setText("Reset");
    jButton2.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton2ActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                    .addContainerGap()
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addGroup(layout.createSequentialGroup()
                                    .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 81, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 323, Short.MAX_VALUE)
                                    .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 81, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addContainerGap())
            );
    layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jButton1)
                            .addComponent(jButton2))
                    .addContainerGap())
            );

    pack();
}// </editor-fold>//GEN-END:initComponents

private void jPanel1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jPanel1MouseClicked

}//GEN-LAST:event_jPanel1MouseClicked

private void jPanel1ComponentResized(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_jPanel1ComponentResized
    offScrImg = createImage(jPanel1.getWidth(), jPanel1.getHeight());
    offScrGraph = offScrImg.getGraphics();
    repain();
}//GEN-LAST:event_jPanel1ComponentResized

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
    play = !play;
    if(play) jButton1.setText("Pause");
    else jButton1.setText("Play");
    repain();
}//GEN-LAST:event_jButton1ActionPerformed

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
    currentMove = new boolean[hei][wid];
    repain();
}//GEN-LAST:event_jButton2ActionPerformed

private void jPanel1MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jPanel1MouseDragged
    int j = wid * evt.getX() / jPanel1.getWidth();
    int i = hei * evt.getY() / jPanel1.getHeight();
    if(SwingUtilities.isLeftMouseButton(evt)){
        currentMove[i][j] = true;
    }else currentMove[i][j] = false;
    repain();
}//GEN-LAST:event_jPanel1MouseDragged

public static void main(String args[]) {
    //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
    /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
     * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
     */
    try {
        for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())) {
                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                break;
            }
        }
    } catch (ClassNotFoundException ex) {
        java.util.logging.Logger.getLogger(GameOfLife.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (InstantiationException ex) {
        java.util.logging.Logger.getLogger(GameOfLife.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (IllegalAccessException ex) {
        java.util.logging.Logger.getLogger(GameOfLife.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (javax.swing.UnsupportedLookAndFeelException ex) {
        java.util.logging.Logger.getLogger(GameOfLife.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    }
    //</editor-fold>

    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new GameOfLife().setVisible(true);
        }
    });
}

// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JPanel jPanel1;
// End of variables declaration//GEN-END:variables
}

这就是使用a来完成的方法相关代码示例 https://stackoverflow.com/a/8200046/418556.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Random;

public class GameOfLife extends JPanel {

    private int row, col;
    private boolean isLiving;
    private static int generation = 0;

    public static Random random = new Random();

    public GameOfLife(int r, int c) {
        this.row = r;
        this.col = c;
        MouseListener listener = new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
                isLiving = !isLiving;
                repaint();
            }
        };
        this.addMouseListener(listener);
        isLiving = random.nextBoolean();
    }

    public boolean isAlive(int neighbors) {
        boolean alive = false;
        if (this.isLiving) {
            if (neighbors < 2) {
                alive = false;
            } else if (neighbors == 2 || neighbors == 3) {
                alive = true;
            } else if (neighbors > 3) {
                alive = false;
            }
        } else {
            if (neighbors == 3) {
                alive = true;
            }
        }
        return alive;
    }

    public void setAlive(boolean alive) {
        isLiving = alive;
    }

    public boolean isLiving() {
        return this.isLiving;
    }

    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        if (this.isLiving) {
            g.fillRect(0, 0, getWidth() - 1, getHeight() - 1);
        } else {
            g.drawRect(0, 0, getWidth() - 1, getHeight() - 1);
        }
    }

    public static void main(String[] args) {
        final int s = 40;
        JPanel ui = new JPanel(new BorderLayout(4, 4));
        final JLabel generationLabel = new JLabel("0", JLabel.CENTER);
        ui.add(generationLabel, BorderLayout.PAGE_START);

        final GameOfLife[][] biosphere = new GameOfLife[s][s];
        final JPanel gui = new JPanel(new GridLayout(s, s, 2, 2));
        ui.add(gui);
        for (int ii = 0; ii < s; ii++) {
            for (int jj = 0; jj < s; jj++) {
                GameOfLife cell = new GameOfLife(ii, jj);
                cell.setPreferredSize(new Dimension(10, 10));
                gui.add(cell);
                biosphere[ii][jj] = cell;
            }
        }

        ActionListener al = new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
                boolean[][] living = new boolean[s][s];
                for (int ii = 0; ii < s; ii++) {
                    for (int jj = 0; jj < s; jj++) {
                        int top = (jj > 0 ? jj - 1 : s - 1);
                        int btm = (jj < s - 1 ? jj + 1 : 0);
                        int lft = (ii > 0 ? ii - 1 : s - 1);
                        int rgt = (ii < s - 1 ? ii + 1 : 0);
                        int neighbors = 0;
                        if (biosphere[ii][top].isLiving()) {
                            neighbors++;
                        }
                        if (biosphere[ii][btm].isLiving()) {
                            neighbors++;
                        }
                        if (biosphere[lft][top].isLiving()) {
                            neighbors++;
                        }
                        if (biosphere[lft][btm].isLiving()) {
                            neighbors++;
                        }
                        if (biosphere[lft][jj].isLiving()) {
                            neighbors++;
                        }
                        if (biosphere[rgt][jj].isLiving()) {
                            neighbors++;
                        }
                        if (biosphere[rgt][top].isLiving()) {
                            neighbors++;
                        }
                        if (biosphere[rgt][btm].isLiving()) {
                            neighbors++;
                        }
                        living[ii][jj] = biosphere[ii][jj].isAlive(neighbors);
                    }
                }
                for (int ii = 0; ii < s; ii++) {
                    for (int jj = 0; jj < s; jj++) {
                        biosphere[ii][jj].setAlive(living[ii][jj]);
                    }
                }
                generationLabel.setText("Generation: " + generation++);
                gui.repaint();
            }
        };

        Timer timer = new Timer(50, al);
        timer.start();

        JOptionPane.showMessageDialog(null, ui);
        timer.stop();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何添加可以在我的生命游戏程序中获得生成的功能? 的相关文章

  • 线程“main”java.lang.UnsatisfiedLinkError中出现异常:java.library.path中没有opencv_java249

    我目前正在尝试在我的 32 位笔记本电脑上设置 OpenCV 但我不断收到一条令我困惑的错误消息 Exception in thread main java lang UnsatisfiedLinkError no opencv java2
  • @OneToMany 与 @JoinTable 错误

    我试图理解 OneToMany with JoinTable 对于这样的场景 我正在使用 JPA 2 1 Hibernate 5 0 4 和 Oracle 11 XE 当我打电话时userDao save user 下面的代码 我有 jav
  • 正确使用 JDBC 连接池 (Glassfish)

    我需要在 Java Web 服务中作为会话 bean 实现数据库连接 但我不确定我这样做是否正确 我创建了一个类 public final class SQLUtils private static DataSource m ds null
  • 如何在 Struts 2 OGNL 中将参数传递给方法调用

    我想使用属性作为对象方法的参数
  • 用 java 编写解释器时的 switch 或 if 语句

    当前的作业需要我编写一个程序 以一种非常微小且基本的编程语言 行为有点像 FORTRAN 来读取包含指令的文件并执行这些指令 基本上它是我猜的语言的简单解释器 它是完全线性的 所有语句都是按顺序定义的 并且只有字符串和整数变量 我需要查找和
  • 从关卡堆栈中获取相对比例的数学

    为这个可怕的标题道歉 我花了 10 分钟试图用一句话来解释这一点 但失败了 虽然提示这个问题的应用程序是用Java Android 编写的 但我认为它非常通用并且适用于任何语言 欢迎使用伪代码 或简单的英语 回复 我不确定是否应该标记所有通
  • C# 中的协变和逆变

    首先我要说的是 我是一名正在学习 C 编程的 Java 开发人员 因此 我会将我所知道的与我正在学习的进行比较 我已经使用 C 泛型几个小时了 我已经能够在 C 中重现我在 Java 中知道的相同内容 除了几个使用协变和逆变的示例 我正在读
  • 从 sbt 程序集运行 uber jar 会导致错误:无法找到或加载主类

    我有一个使用 sbt 程序集插件打包为 uber jar 的 Spark 作业 这build sbt指定一个可运行的 main 作为生成的 uber jar 的目标 mainClass in assembly Some com foo Ba
  • 如何使用 Guava 连接字符串?

    我写了一些代码来连接字符串 String inputFile for String inputLine list inputFile inputLine trim 但我不能使用 连接 所以我决定使用 Guava 所以我需要使用Joiner
  • 抽象类或接口。哪种方式是正确的?

    有两种方法可以选择抽象类或接口 微软解决方案和Oracle解决方案 微软 设计指南 请使用抽象 在 Visual Basic 中为 MustInherit 类而不是接口来将协定与实现分离 http msdn microsoft com en
  • 使用Java开发跨平台,不同平台字体缩放不同

    我正在为我的大学制作一些软件 需要一个 GUI 在它的第一个版本中 我让它使用系统外观 因此它看起来像 Linux Mac Windows 中的本机应用程序 我发现这很麻烦 因为我必须根据操作系统使所有 JLabel 具有不同的大小 无论分
  • 战争库中的罐子爆炸

    我们可以将分解的 jar 文件放入 war web inf 库中吗 它在 JBOSS 4 2 中对我不起作用 我收到以下错误并且无法部署应用程序 Caused by javax management RuntimeOperationsExc
  • 我们可以有虚假中断吗?

    我正在创建一个任务轮询器 每分钟都会查找任务 它看起来像这样 public class Poller private final ExecutorService e Executors newSingleThreadExecutor pub
  • 读/写带有特殊字符的.txt文件

    I open Notepad Windows 并写 Some lines with special characters Special 并前往另存为 someFile txt 与Encoding set to UTF 8 在Java中我有
  • Google Cloud Messaging - 立即收到或长时间延迟收到的消息

    我在大学最后一年的项目中使用谷歌云消息传递 一切正常 但我在使用 GCM 时遇到了一些麻烦 通常 消息要么几乎立即传递 要么有很大的延迟 我读过这篇文章 但我真的认为它不适用于这种情况 GCM 通常会在消息发送后立即传送消息 然而 这并不总
  • JMockit - 初始化问题

    当我使用以下测试时 我收到警告 警告 JMockit 是按需初始化的 这可能会导致某些测试失败 请检查文档以获取更好的初始化方法 这是我的测试实现 package test import static mockit Mockit impor
  • 编写自定义 Eclipse 调试器

    EDIT 一定有某种方法可以解决这个问题 而无需编写全新的调试器 我目前正在研究在现有 java 调试器之上构建的方法 如果有人对如何获取 Java 调试器已有的信息 有关堆栈帧 变量 原始数据等 有任何想法 那将非常有帮助 我想要做的是我
  • 使用 Runtime.getRuntime().exec() 进行重定向不起作用

    我需要从程序执行命令 命令行是可以的 我在终端试了一下 但是在程序中不行 我从我的代码中添加一个副本 File dir new File videos String children dir list if children null Ei
  • java.io.EOFException:没有更多可用数据 - 预期结束标记 关闭开始标记

    我正在使用 xmpp 开发一个聊天应用程序 根据我们的要求 我们有三台服务器 Apache Tomcat 7 ejabbered 2 1 11 和 mysql 5 5 to run xmppbot on tomcat used below
  • Integer.parseInt 引发的 NumberFormatException

    嘿 我在学校上编码课 但老师没有很好地解释 所以我们必须在网上查找我所做的信息 但我无法找到代码中的错误 你能帮我吗 char end s do System out println Tipo de boleto char boleto c

随机推荐

  • Outlook Web 应用程序的任务窗格插件

    通过命令加载项 任务窗格将出现在 Outlook 桌面应用程序的右侧 同样 是否可以让任务窗格显示在 Outlook Web 应用程序的右侧 提前致谢 跟进这个 插件命令 https blogs msdn microsoft com exc
  • 将数组颠倒过来?

    我不是在谈论array flip 我想反转一个没有数字 字母基础的数组 只是倒挂 Example array music television hollywood Will be array hollywood television mus
  • 为 Azure 警报配置电子邮件模板

    有没有办法 我可以为 Azure 警报配置电子邮件模板 我已为指标创建了电子邮件警报 并且需要在指标值超过阈值时发送自定义电子邮件 无法自定义 Azure 警报的电子邮件模板 作为解决方法 你可以在 Azure 警报上配置 Webhook
  • Android如何以编程方式获取使用whats app应用程序的联系人列表

    我在此应用程序中使用小型 Android 应用程序 我尝试获取使用 Whats App 应用程序的联系人 并在联系人更新他 她的个人资料图片和状态时 从我的应用程序中提醒我选择的 Whats App 联系人 您可以查询内容光标以查看联系人具
  • 如何使用相同的模型对象初始化 JavaFX 控制器?

    Scenario 我正在创建一个 GUI 其中多个视图引用同一模型对象 我习惯什么 在 Swing 中 如果我希望所有视图都引用同一模型 我会将模型传递到构造函数中 我目前在做什么 在 JavaFX 中 在加载每个视图 控制器后 我通过在视
  • iOS 模拟器:如何在 Mac 笔记本电脑上进行 2 指单击?

    在iOS模拟器中 如何在mac笔记本电脑上模拟2指单击 按住 Option alt 键的同时单击
  • 更新 mongoengine 中的嵌入文档列表

    我正在努力解决 mongoengine 语法 我有以下型号 class Post EmbeddedDocument uid StringField required True text StringField required True w
  • 如何将ImageSource转换为Byte数组?

    我使用 LeadTools 进行扫描 我想将扫描图像转换为字节 void twainSession AcquirePage object sender TwainAcquirePageEventArgs e ScanImage e Imag
  • git 告诉我我的文件已更改,但我看不到任何区别

    我刚刚安装了最新的 Git 1 9 5 突然它告诉我我的工作树不干净 更改未暂存 但我在任何 diff 工具中都看不到任何文件中的任何更改 我尝试了内置的 Tortoise 和 Visual Studio 当我运行 git status 时
  • 带 getter 的 Kotlin 属性。我可以不指定初始值吗?

    我想创建一个单例类 但不幸的是 Android 几乎任何东西都需要 Context 所以我需要它来创建一个实例 所以我只是假设用户调用init 然后返回实例 如下所示 如果 instance为null 会抛出异常 所以get方法不能返回 n
  • iOS Swift FIRebase:将数据移动到另一个 firebase ref

    我有一个简单的购物清单应用程序 由 firebase 支持 同步 并且由多个用户添加项目 我已经为 GroceryItem 和 Users 创建了数据结构 我的应用程序的一个功能是 您可以单击单元格 它会在项目旁边放置一个复选标记 并将 已
  • Android 设备对压力敏感度的支持程度如何?

    我想编写一个应用程序 对用户手指施加的压力做出反应 具体来说 我想用它来改变所绘制线条的粗细 我很高兴能够对手指触摸屏幕的表面积做出反应 MotionEvent getSize 和 MotionEvent getPressure 函数看起来
  • 实现 C++ 模板,用于生成给定范围的索引序列

    所以 C 14提供了structmake index sequence
  • 将 100 与 BigDecimal 相乘时哪种方法更好?

    这里我在使用Java BigDecimal时遇到一个问题 当我想为 BigDecimal 对象乘以 100 时 哪种方法会更好 10 乘以 2 次 向右移动点 2 按十次幂缩放 2 还有其他办法吗 如果有请告诉我 顺便说一句 它将用于商业计
  • 在代码中设置 Far Future Expires 标头 - ASP.NET

    有没有一种方法可以使用 ASP NET 在代码中以编程方式设置 Expires 标头 具体来说 我需要在整个文件夹和所有子文件夹上设置它 并且该文件夹仅包含静态文件 JavaScript CSS 图像等 而不包含aspx文件 因此我不能只向
  • Java Date toString 包含时区...为什么?

    我今天用 VB6 编写了一些代码 它可以获取自 1970 年 1 月 1 日以来的毫秒数 这样我就可以将值发送到 java 应用程序 该应用程序将解析该值 例如new Date Long parse milliseconds 据我所知 日期
  • Ng5 Karma Jasmine 测试渲染组件而不是结果页面

    假设我有一个非常简单的 创建 单元测试 这样ng cli为您生成 describe MyComponent gt let component MyComponent let fixture ComponentFixture
  • AWS 中的“承担”角色到底是什么?

    Question 在 AWS 中 担任 角色到底意味着什么 哪里提供了明确的定义 背景 承担一个角色经常使用并试图理解其定义及其实际含义 我想当委托人 IAM 用户 在 EC2 实例中运行的应用程序等调用操作来访问 AWS 资源 需要调用操
  • NHibernate 一对一 vs 2 多对一

    在他的博客中 http ayende com blog 2381 nhibernate one to one Ayende 建议使用一对一可能不是实现传统 1 1 对象关系的最佳方式 例如 customer Name name Custom
  • 如何添加可以在我的生命游戏程序中获得生成的功能?

    我试图让我的程序显示 首先在控制台中测试 单元格改变其形式的每个步骤的计数 因此计数应该从 0 开始 并在每次单元格改变其形式时递增 我尝试了这个 使用 count 但它不会增加 1 而是给我随机数 任何帮助都感激不尽 import jav