一、黄金思维圈

黄金思维圈真的非常重要,也是每个人应该内化的思维模型。

人是一种很奇怪的东西,做什么事情都会追问意义,尤其是长期坚持做一件事情,必然要搞清楚坚持的意义,否则肯定是坚持不下去,最好的坚持,必然是想清楚了坚持的理由、努力的方向。看的越清,行动就越坚定、有力

TED演讲者Simon Sinek在《伟大的领袖如何激励行动》中对这种对意义的追寻,总结为一个天才般的思考模型,即黄金思维圈。

  • why:为什么做,既是意义也是动机。
  • What:做成什么样,即目标。
  • how:怎么做,具体的策略、方法。

常规的思维模式是由外向内的,我们采用的是从清晰的what(目标)开始,然后到具体的how(方法),最后才是模模糊糊、隐隐约约的why(动机),但是激励型领袖、组织,他们的思维模式都是由内向外的。以训练营学习为例,如果你由外向内思考则是,what(目标)即学习训练营的知识,比如意志力策略,调节策略,心理知识,how(方法)即怎么学,比如和大家讨论,参与社群活动,积极交作业,等等,对于why(动机),则很少会有清晰的考虑。这种思维模式,其实是长期应试教育下的“最少思考”模式,这样,社群最多是以群体促进,积极的氛围,定期的作业,裹挟着你学习,你其实又经历了一次学校学习&#

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是基于 Eclipse 的黄金矿工游戏实现步骤: 1. 首先,在 Eclipse 中创建一个新的 Java 项目,并将其命名为“GoldMiner”。 2. 在 src 目录下创建一个名为“GoldMiner.java”的主类,并在其中添加以下代码: ```java import javax.swing.JFrame; public class GoldMiner extends JFrame { public GoldMiner() { // 设置窗口标题 setTitle("黄金矿工"); // 设置窗口大小 setSize(800, 600); // 设置窗口初始位置 setLocationRelativeTo(null); // 设置窗口关闭时退出程序 setDefaultCloseOperation(EXIT_ON_CLOSE); // 显示窗口 setVisible(true); } public static void main(String[] args) { new GoldMiner(); } } ``` 3. 运行程序,可以看到一个空白的窗口。 4. 接下来,在 src 目录下创建一个名为“GoldMinerPanel.java”的面板类,并在其中添加以下代码: ```java import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JPanel; import javax.swing.Timer; public class GoldMinerPanel extends JPanel implements ActionListener { private Image background; // 背景图片 private Timer timer; // 定时器 public GoldMinerPanel() { // 加载背景图片 background = Toolkit.getDefaultToolkit().getImage("resources/background.jpg"); // 创建定时器,每隔10毫秒触发一次actionPerformed方法 timer = new Timer(10, this); timer.start(); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); // 绘制背景图片 g.drawImage(background, 0, 0, getWidth(), getHeight(), this); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub } } ``` 5. 在 GoldMiner 类的构造方法中添加以下代码来创建 GoldMinerPanel 对象并添加到窗口中: ```java public GoldMiner() { // 设置窗口标题 setTitle("黄金矿工"); // 设置窗口大小 setSize(800, 600); // 设置窗口初始位置 setLocationRelativeTo(null); // 设置窗口关闭时退出程序 setDefaultCloseOperation(EXIT_ON_CLOSE); // 创建面板并添加到窗口 GoldMinerPanel panel = new GoldMinerPanel(); add(panel); // 显示窗口 setVisible(true); } ``` 6. 运行程序,可以看到背景图片已经显示在窗口中。 7. 接下来,我们需要添加一个小车和一些金块到窗口中。 8. 在 src 目录下创建一个名为“Car.java”的小车类,并在其中添加以下代码: ```java import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; public class Car { private int x; // 小车的横坐标 private int y; // 小车的纵坐标 private Image image; // 小车的图片 public Car() { // 设置小车的初始坐标和图片 x = 400; y = 500; image = Toolkit.getDefaultToolkit().getImage("resources/car.png"); } public void draw(Graphics g) { // 绘制小车图片 g.drawImage(image, x, y, null); } } ``` 9. 在 GoldMinerPanel 类中添加以下代码来创建 Car 对象并绘制到面板上: ```java private Car car; // 小车对象 public GoldMinerPanel() { // 加载背景图片 background = Toolkit.getDefaultToolkit().getImage("resources/background.jpg"); // 创建定时器,每隔10毫秒触发一次actionPerformed方法 timer = new Timer(10, this); timer.start(); // 创建小车对象 car = new Car(); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); // 绘制背景图片 g.drawImage(background, 0, 0, getWidth(), getHeight(), this); // 绘制小车 car.draw(g); } ``` 10. 运行程序,可以看到小车已经显示在窗口中。 11. 接下来,我们需要添加金块到窗口中。 12. 在 src 目录下创建一个名为“Gold.java”的金块类,并在其中添加以下代码: ```java import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; public class Gold { private int x; // 金块的横坐标 private int y; // 金块的纵坐标 private int type; // 金块的类型(1:大金块,2:中金块,3:小金块) private Image image; // 金块的图片 public Gold(int x, int y, int type) { // 设置金块的初始坐标和类型 this.x = x; this.y = y; this.type = type; // 加载金块图片 switch (type) { case 1: image = Toolkit.getDefaultToolkit().getImage("resources/big_gold.png"); break; case 2: image = Toolkit.getDefaultToolkit().getImage("resources/medium_gold.png"); break; case 3: image = Toolkit.getDefaultToolkit().getImage("resources/small_gold.png"); break; } } public void draw(Graphics g) { // 绘制金块图片 g.drawImage(image, x, y, null); } } ``` 13. 在 GoldMinerPanel 类中添加以下代码来创建一些金块对象并绘制到面板上: ```java private List<Gold> golds; // 金块列表 public GoldMinerPanel() { // 加载背景图片 background = Toolkit.getDefaultToolkit().getImage("resources/background.jpg"); // 创建定时器,每隔10毫秒触发一次actionPerformed方法 timer = new Timer(10, this); timer.start(); // 创建小车对象 car = new Car(); // 创建金块列表 golds = new ArrayList<>(); golds.add(new Gold(100, 100, 1)); golds.add(new Gold(200, 200, 2)); golds.add(new Gold(300, 300, 3)); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); // 绘制背景图片 g.drawImage(background, 0, 0, getWidth(), getHeight(), this); // 绘制小车 car.draw(g); // 绘制金块列表 for (Gold gold : golds) { gold.draw(g); } } ``` 14. 运行程序,可以看到金块已经显示在窗口中。 15. 最后,我们需要让小车能够移动并抓取金块。 16. 在 Car 类中添加以下代码来实现小车的移动: ```java public void moveLeft() { // 将小车向左移动10个像素 x -= 10; // 判断小车是否超出窗口左边界 if (x < 0) { x = 0; } } public void moveRight() { // 将小车向右移动10个像素 x += 10; // 判断小车是否超出窗口右边界 if (x > getWidth() - image.getWidth(null)) { x = getWidth() - image.getWidth(null); } } ``` 17. 在 GoldMinerPanel 类中添加以下代码来实现键盘监听和小车的移动: ```java @Override public void actionPerformed(ActionEvent e) { // 判断是否有金块与小车重叠 for (Gold gold : golds) { if (gold.x >= car.x && gold.x <= car.x + car.image.getWidth(null) && gold.y >= car.y && gold.y <= car.y + car.image.getHeight(null)) { // 从金块列表中移除该金块 golds.remove(gold); break; } } // 重新绘制面板 repaint(); } @Override protected void paintComponent(Graphics g) { // ... } @Override public void keyPressed(KeyEvent e) { switch (e.getKeyCode()) { case KeyEvent.VK_LEFT: car.moveLeft(); break; case KeyEvent.VK_RIGHT: car.moveRight(); break; } } @Override public void keyReleased(KeyEvent e) { // TODO Auto-generated method stub } @Override public void keyTyped(KeyEvent e) { // TODO Auto-generated method stub } public GoldMinerPanel() { // 加载背景图片 background = Toolkit.getDefaultToolkit().getImage("resources/background.jpg"); // 创建定时器,每隔10毫秒触发一次actionPerformed方法 timer = new Timer(10, this); timer.start(); // 创建小车对象 car = new Car(); // 创建金块列表 golds = new ArrayList<>(); golds.add(new Gold(100, 100, 1)); golds.add(new Gold(200, 200, 2)); golds.add(new Gold(300, 300, 3)); // 添加键盘监听器 addKeyListener(this); setFocusable(true); } public static void main(String[] args) { // 创建窗口对象 JFrame frame = new JFrame("黄金矿工"); frame.setSize(800, 600); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 创建面板对象 GoldMinerPanel panel = new GoldMinerPanel(); frame.add(panel); // 显示窗口 frame.setVisible(true); } ``` 18. 运行程序,可以使用左右方向键来控制小车移动,抓取金块。 这就是用 Eclipse 实现黄金矿工游戏的基本步骤。当然,这只是一个简单的示例,游戏的实现还需要更多的功能和细节处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值