java版飞机大战代码

  • 前言
  • Plane
  • PlaneStatus类
  • Power类
  • Gift
  • Diji
  • play类
  • over类
  • MainFrame主类
  • MyZiDan
  • DijiZiDan
  • Before

前言

很久之前整理的小东西,这个是从我个人博客网站拷过来的地址
下面是源码

Plane

package com.trhsy.cn.plane;import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.io.IOException;/*** @ClassName Plane* @Description todo* @Author Administrator* @Date 2020/3/24 002415:03**/
public class Plane {/*** @Author fan* @Description //TODO 定义一个飞机* @Date 15:07 2020/3/24 0024* @Param* @return**/Image planeImage = null;public int x = 300;public int y = 700;public int lifeCount = 5;/*** @return* @Author fan* @Description //TODO 给飞机附图片* @Date 15:19 2020/3/24 0024* @Param []**/public Plane() {try {planeImage = ImageIO.read(Plane.class.getClassLoader().getResourceAsStream("images/plane.png"));} catch (IOException e) {e.printStackTrace();}}public void draw(Graphics g) {// 画飞机图片g.drawImage(planeImage, x, y, null);// 飞机移动this.move();// 血条if (lifeCount > 0) {g.setColor(Color.WHITE);g.fillRect(20, 80, 100, 10);g.setColor(Color.red);g.fillRect(20, 80, (100 / 5) * lifeCount, 10);g.setColor(Color.blue);g.setFont(new Font("幼圆", Font.BOLD, 30));g.drawString("Score:" + Play.count, 20, 60);}}public void move() {if (isUP && !isDown && !isLeft && !isRight) {//上y = y - 5;} else if (!isUP && isDown && !isLeft && !isRight) {//下y = y + 5;} else if (!isUP && !isDown && isLeft && !isRight) {//左x = x - 5;} else if (!isUP && !isDown && !isLeft && isRight) {//右x = x + 5;} else if (isUP && !isDown && isLeft && !isRight) {//左上x = x - 5;y = y - 5;} else if (!isUP && isDown && isLeft && !isRight) {//左下x = x - 5;y = y + 5;} else if (isUP && !isDown && !isLeft && isRight) {//右上x = x + 5;y = y - 5;} else if (!isUP && isDown && !isLeft && isRight) {//右下x = x + 5;y = y + 5;}}boolean isUP = false;boolean isDown = false;boolean isLeft = false;boolean isRight = false;/*** @return void* @Author fan* @Description //TODO 按下* @Date 15:21 2020/3/24 0024* @Param [e]**/public void keyPressed(KeyEvent e) {int keyCode = e.getKeyCode();if (keyCode == KeyEvent.VK_RIGHT || keyCode == KeyEvent.VK_D) {isRight = true;} else if (keyCode == KeyEvent.VK_LEFT || keyCode == KeyEvent.VK_A) {isLeft = true;} else if (keyCode == KeyEvent.VK_UP || keyCode == KeyEvent.VK_W) {isUP = true;} else if (keyCode == KeyEvent.VK_DOWN || keyCode == KeyEvent.VK_S) {isDown = true;}}/*** @return void* @Author fan* @Description //TODO 松开* @Date 15:24 2020/3/24 0024* @Param [e]**/public void keyReleased(KeyEvent e) {int keyCode = e.getKeyCode();if (keyCode == KeyEvent.VK_RIGHT || keyCode == KeyEvent.VK_D) {isRight = false;} else if (keyCode == KeyEvent.VK_LEFT || keyCode == KeyEvent.VK_A) {isLeft = false;} else if (keyCode == KeyEvent.VK_UP || keyCode == KeyEvent.VK_W) {isUP = false;} else if (keyCode == KeyEvent.VK_DOWN || keyCode == KeyEvent.VK_S) {isDown = false;}}public Rectangle getRectangle() {return new Rectangle(x, y, planeImage.getWidth(null), planeImage.getHeight(null));}}

PlaneStatus类

package com.trhsy.cn.util;/*** @ClassName PlaneStatus* @Description todo 0 游戏开始前 1 第一关 -1 游戏结束* @Author Administrator* @Date 2020/3/24 002415:28**/
public class PlaneStatus {public static int roleNum = 1;public static int playStatus = 0;
}

Power类

package com.trhsy.cn.power;import javax.imageio.ImageIO;
import java.awt.*;
import java.io.IOException;/*** @ClassName Power* @Description todo 血瓶类* @Author Administrator* @Date 2020/3/24 002415:29**/
public class Power {Image PowerImage = null;//初始位置int x = 20;int y = 0;public Power() {this.x = (int) (Math.random() * 540) + 20;try {PowerImage = ImageIO.read(Gift.class.getClassLoader().getResourceAsStream("images/power.png"));} catch (IOException e) {e.printStackTrace();}}public void draw(Graphics g) {// 画血瓶图片g.drawImage(PowerImage, x, y, null);// 血瓶移动y++;}public Rectangle getRectangle() {return new Rectangle(x, y, PowerImage.getWidth(null), PowerImage.getHeight(null));}}

Gift

package com.trhsy.cn.power;import java.awt.Graphics;
import java.awt.Image;
import java.awt.Rectangle;
import java.io.IOException;
import javax.imageio.ImageIO;public class Gift {Image GiftImage = null;int x = 20;int y = 0;public Gift() {this.x = (int) (Math.random() * 540) + 20;try {GiftImage = ImageIO.read(Gift.class.getClassLoader().getResourceAsStream("images/blood.png"));} catch (IOException e) {e.printStackTrace();}}public void draw(Graphics g) {// 画血瓶图片g.drawImage(GiftImage, x, y, null);// 血瓶移动y++;}public Rectangle getRectangle() {return new Rectangle(x, y, GiftImage.getWidth(null), GiftImage.getHeight(null));}
}

Diji

package com.trhsy.cn.plane;import java.awt.Graphics;
import java.awt.Image;
import java.awt.Rectangle;
import java.io.IOException;
import javax.imageio.ImageIO;public class Diji {Image dijiImage = null;public int y = -20;/***20 ~ 760**/public int x = 10;int r;public Diji() {this.x = (int) (Math.random() * 540) + 40;try {r = (int) (Math.random() * 3) + 1;dijiImage = ImageIO.read(Diji.class.getClassLoader().getResourceAsStream("images/diji_" + r + ".png"));} catch (IOException e) {e.printStackTrace();}}public void draw(Graphics g) {//画 敌机图片g.drawImage(dijiImage, x, y, null);//敌机移动if (r == 1) {y += 4;} else if (r == 2) {y += 4;} else if (r == 3) {y += 7;}}public Rectangle getRectangle() {return new Rectangle(x, y, dijiImage.getWidth(null), dijiImage.getHeight(null));}
}

play类

package com.trhsy.cn.plane;import com.trhsy.cn.bullet.DijiZiDan;
import com.trhsy.cn.bullet.MyZiDan;
import com.trhsy.cn.power.Gift;
import com.trhsy.cn.power.Power;
import com.trhsy.cn.util.PlaneStatus;import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/*** @ClassName Play* @Description todo* @Author Administrator* @Date 2020/3/24 002415:40**/
public class Play {static int count = 0;Image bgImage = null;/*** @Author fan* @Description //TODO 战机* @Date 16:11 2020/3/24 0024* @Param* @return**/Plane plane = new Plane();/*** @Author fan* @Description //TODO 战机子弹* @Date 16:11 2020/3/24 0024* @Param* @return**/List<MyZiDan> mzds = new ArrayList<MyZiDan>();/*** @Author fan* @Description //TODO 敌机* @Date 16:11 2020/3/24 0024* @Param* @return**/List<Diji> dijis = new ArrayList<Diji>();/*** @Author fan* @Description //TODO 敌机子弹* @Date 16:11 2020/3/24 0024* @Param* @return**/List<DijiZiDan> dijizidans = new ArrayList<DijiZiDan>();/*** @Author fan* @Description //TODO 血瓶* @Date 16:11 2020/3/24 0024* @Param* @return**/List<Gift> gifts = new ArrayList<Gift>();List<Power> powers = new ArrayList<Power>();public Play() {try {bgImage = ImageIO.read(Play.class.getClassLoader().getResourceAsStream("images/bg_01.jpg"));} catch (IOException e) {e.printStackTrace();}}int bgY1 = 0;int bgY2 = -600;int fireTime = 0;boolean flag = false;public void draw(Graphics g) {// 画背景图片g.drawImage(bgImage, 0, bgY1, null);bgY1 += 5;bgY1 = 0;g.drawImage(bgImage, 0, bgY2, null);bgY2 += 5;if (bgY2 >= 0) {bgY2 = -600;}// 清理战机子弹for (int i = 0; i < mzds.size(); i++) {MyZiDan myZidan = mzds.get(i);if (myZidan.x > 800) {mzds.remove(i);}}// 添加子弹if (isFire1 == true && flag == false) {if (fireTime % 8 == 0) {mzds.add(new MyZiDan(plane.x + 25, plane.y + 0));}fireTime++;}if (isFire1 == true && flag == true) {if (fireTime % 4 == 0) {}mzds.add(new MyZiDan(plane.x + 8, plane.y + 0));mzds.add(new MyZiDan(plane.x + 52, plane.y + 0));}fireTime++;// 画战机子弹for (int i = 0; i < mzds.size(); i++) {MyZiDan myZidan = mzds.get(i);myZidan.draw(g);}// 清理敌机for (int i = 0; i < dijis.size(); i++) {Diji dj = dijis.get(i);if (dj.x < -100) {dijis.remove(i);}}// 抽奖:添加敌机dijis.add(new Diji());// 抽奖:添加血瓶if ((int) (Math.random() * 1000) == 5) {gifts.add(new Gift());}for (int i = 0; i < gifts.size(); i++) {Gift gift = gifts.get(i);gift.draw(g);}//抽奖:添加powerif ((int) (Math.random() * 1000) == 5) {powers.add(new Power());}for (int i = 0; i < powers.size(); i++) {Power power = powers.get(i);power.draw(g);}// 画敌机for (int i = 0; i < dijis.size(); i++) {Diji dj = dijis.get(i);dj.draw(g);}// 画飞机plane.draw(g);// 判断战机相撞for (int i = 0; i < dijis.size(); i++) {// 先得到每一个敌机Diji dj = dijis.get(i);Rectangle r1 = dj.getRectangle();Rectangle r2 = plane.getRectangle();if (r1.intersects(r2)) {dijis.remove(i);plane.lifeCount = plane.lifeCount - 1;if (plane.lifeCount > 0) {flag = false;}if (plane.lifeCount < 1) {PlaneStatus.playStatus = -1;}}// 判断战机和血瓶相撞for (int q = 0; q < gifts.size(); q++) {// 先得到每一个血瓶Gift gift = gifts.get(q);Rectangle rectangle = gift.getRectangle();Rectangle rectangle1 = plane.getRectangle();if (rectangle.intersects(rectangle1)) {gifts.remove(q);}if (plane.lifeCount < 5) {}plane.lifeCount = plane.lifeCount + 1; 判断战机和Power相撞for (int w = 0; w < powers.size(); w++) {// 先得到每一个powerPower power = powers.get(w);Rectangle rectangle2 = power.getRectangle();Rectangle rectangle3 = plane.getRectangle();if (rectangle2.intersects(rectangle3)) {powers.remove(w);flag = true;}}// 判断敌机在中弹for (int e = 0; e < mzds.size(); e++) {// 得到每个战机子弹MyZiDan myzidan = mzds.get(e);Rectangle rectangle2 = myzidan.getRectangle();for (int j = 0; j < dijis.size(); j++) {// 每一个敌机Diji diji = dijis.get(j);Rectangle rectangle3 = diji.getRectangle();if (rectangle2.intersects(rectangle3)) {mzds.remove(i);dijis.remove(j);count++;}}}}}}boolean isFire1 = false;boolean isFire2 = false;public void keyPressed(KeyEvent e) {plane.keyPressed(e);if (e.getKeyCode() == KeyEvent.VK_J) {isFire1 = true;} /*if (e.getKeyCode() == KeyEvent.VK_K) { isFire2 = true; }*/}public void keyReleased(KeyEvent e) {plane.keyReleased(e);if (e.getKeyCode() == KeyEvent.VK_J) {isFire1 = false;fireTime = 0;} /*if (e.getKeyCode() == KeyEvent.VK_K) { isFire2 = false; fireTime = 0; }*/if (e.getKeyCode() == KeyEvent.VK_P) {for (int i = 0; i < dijis.size(); i++) {dijis.remove(i);}}}
}

over类

package com.trhsy.cn.util;import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.io.IOException;/*** @ClassName Over* @Description todo* @Author Administrator* @Date 2020/3/24 002416:03**/
public class Over {Image obg=null;Image ng=null;public Over() {try {obg=ImageIO.read(Before.class.getClassLoader().getResourceAsStream("images/obg.jpg"));ng=ImageIO.read(Before.class.getClassLoader().getResourceAsStream("images/ng.png")); } catch (IOException e) {e.printStackTrace();}}public void draw(Graphics g){g.drawImage(obg, 0, 0, null);g.drawImage(ng, 120,100, null);g.setColor(Color.black);g.setFont(new Font("幼圆", Font.BOLD, 40));g.drawString("游戏结束啦!",200 ,600 );}public void keyPressed(KeyEvent e) {}public void keyReleased(KeyEvent e) {}
}

MainFrame主类

import com.trhsy.cn.plane.Play;
import com.trhsy.cn.util.Before;
import com.trhsy.cn.util.Over;
import com.trhsy.cn.util.PlaneStatus;import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;/*** @ClassName MainFrame* @Description todo* @Author Administrator* @Date 2020/3/24 002416:04**/
public class MainFrame extends JFrame{private static final long serialVersionUID = 1L;Before before =new Before();Play play = new Play();Over over = new Over();public MainFrame() {//设 置标题this.setTitle(" 让子弹飞一会~");//设置大小this.setSize(600, 800);//定位居中this.setLocationRelativeTo(null);//添加关闭操作this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//禁止重置大小zthis.setResizable(false);//添加键盘监听器 KeyListener -->KeyAdapterthis.addKeyListener(new KeyAdapter() {@Overridepublic void keyPressed(KeyEvent e) {if(PlaneStatus.playStatus == 0){before.keyPressed(e);}else if(PlaneStatus.playStatus ==1){play.keyPressed(e);}else if(PlaneStatus.playStatus==-1){over.keyPressed(e);}}@Overridepublic void keyReleased(KeyEvent e) {if(PlaneStatus.playStatus == 0){before.keyReleased(e);}else if(PlaneStatus.playStatus ==1){play.keyReleased(e);}else if(PlaneStatus.playStatus==-1){over.keyReleased(e);}}});//启 动一个线程:每隔20 毫秒执行一次new Thread(){public void run(){while(true){MainFrame.this.repaint();try {Thread.sleep(20);} catch (InterruptedException e) {e.printStackTrace();}}}}.start(); //显示this.setVisible(true);}Image bufferImage =null;/*** @Author fan* @Description //TODO 这个方法也是20毫秒执行一次* @Date 16:10 2020/3/24 0024* @Param [g]* @return void**/@Overridepublic void paint(Graphics g){if(bufferImage==null){bufferImage = this.createImage(600, 800);}Graphics g4Image = bufferImage.getGraphics();g4Image.setColor(Color.BLACK);g4Image.fillRect(0, 0, 600, 800);this.draw(g4Image);g.drawImage(bufferImage, 0, 0, null);}public void draw(Graphics g){if(PlaneStatus.playStatus == 0){before.draw(g);}else if(PlaneStatus.playStatus ==1){play.draw(g);}else if(PlaneStatus.playStatus==-1){over.draw(g);}}public static void main(String[] args) {new MainFrame();}}

MyZiDan

package com.trhsy.cn.bullet;import java.awt.Graphics;
import java.awt.Image;
import java.awt.Rectangle;
import java.io.IOException;
import javax.imageio.ImageIO;public class MyZiDan {Image zidanImage = null;public int x;public int y;public MyZiDan(int x, int y) {this.x = x;this.y = y;try {zidanImage = ImageIO.read(MyZiDan.class.getClassLoader().getResourceAsStream("images/zidan.png"));} catch (IOException e) {e.printStackTrace();}}public void draw(Graphics g) {// 画我军子弹图片g.drawImage(zidanImage, x, y, null);// 我的飞机子弹移动速度y -= 20;}public Rectangle getRectangle() {return new Rectangle(x, y, zidanImage.getWidth(null), zidanImage.getHeight(null));}
}

DijiZiDan

package com.trhsy.cn.bullet;import java.awt.Graphics;
import java.awt.Image;
import java.awt.Rectangle;
import java.io.IOException;
import javax.imageio.ImageIO;public class DijiZiDan {Image zidanImage = null;int x;int y;int fangxiang = 0;public DijiZiDan(int x, int y) {this.x = x;this.y = y;fangxiang = (int) (Math.random() * 5);//0 ~ 7try {zidanImage = ImageIO.read(DijiZiDan.class.getClassLoader().getResourceAsStream("images/dijizidan.jpg"));} catch (IOException e) {e.printStackTrace();}}public void draw(Graphics g) {//画 敌机子弹图片g.drawImage(zidanImage, x, y, null);//移动this.move();}public void move() {if (fangxiang == 0) {//下y = y + 2;} else if (fangxiang == 1) {//左x = x - 2;} else if (fangxiang == 2) {//右x = x + 2;} else if (fangxiang == 3) {//左下x = x - 2;y = y + 2;} else if (fangxiang == 4) {// 右下x = x + 2;y = y + 2;}}public Rectangle getRectangle() {return new Rectangle(x, y, zidanImage.getWidth(null), zidanImage.getHeight(null));}
}

Before

package com.trhsy.cn.util;import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyEvent;
import java.io.IOException;
import javax.imageio.ImageIO;/*** @Author fan* @Description //TODO 游戏开始之前加载* @Date 16:07 2020/3/24 0024* @Param* @return**/
public class Before {Image bg = null;Image wfeiji = null;Image kdiji1 = null;Image kdiji2 = null;Image kdiji3 = null;public Before() {try {bg = ImageIO.read(Before.class.getClassLoader().getResourceAsStream("images/bg.jpg"));wfeiji = ImageIO.read(Before.class.getClassLoader().getResourceAsStream("images/feiji_1.png"));kdiji1 = ImageIO.read(Before.class.getClassLoader().getResourceAsStream("images/kdiji_01.png"));kdiji2 = ImageIO.read(Before.class.getClassLoader().getResourceAsStream("images/kdiji_02.png"));kdiji3 = ImageIO.read(Before.class.getClassLoader().getResourceAsStream("images/kdiji_03.png"));} catch (IOException e) {e.printStackTrace();}}int time = 0;public void draw(Graphics g) {if (PlaneStatus.roleNum == 1) {// 画妹妹g.drawImage(bg, 0, 0, null);g.drawImage(wfeiji, 260, 600, null);g.drawImage(kdiji1, 200, 50, null);g.drawImage(kdiji1, 400, 50, null);g.drawImage(kdiji1, 150, 480, null);g.drawImage(kdiji1, 400, 480, null);g.drawImage(kdiji2, 100, 200, null);g.drawImage(kdiji2, 300, 100, null);g.drawImage(kdiji2, 480, 200, null);g.drawImage(kdiji3, 300, 300, null);g.drawImage(kdiji3, 70, 400, null);g.drawImage(kdiji3, 510, 400, null);//画回车符time++;g.setColor(Color.YELLOW);g.setFont(new Font("幼圆", Font.BOLD, 30));}if (time <= 10) {g.drawString("[Enter]>>", 50, 750);} else if (time <= 20) {g.drawString("[Enter] >>", 50, 750);} else if (time <= 30) {g.drawString("[Enter] >>", 50, 750);if (time == 30) {time = 0;}}}public void keyPressed(KeyEvent e) {int keyCode = e.getKeyCode();if (keyCode == KeyEvent.VK_ENTER) {}if (keyCode == KeyEvent.VK_LEFT || keyCode == KeyEvent.VK_RIGHT) {PlaneStatus.roleNum = 3 - PlaneStatus.roleNum;//1~2 互换}}public void keyReleased(KeyEvent e) {}}

java版飞机大战代码相关推荐

  1. python飞机大战源代码-python版飞机大战代码分享

    利用pygame实现了简易版飞机大战.源代码如下: # -*- coding:utf-8 -*- import pygame import sys from pygame.locals import ...

  2. 飞机大战java_java版飞机大战实战项目详细步骤

    本文为大家分享了java版飞机大战实战项目,供大家参考,具体内容如下 分析 飞机大战 首先对这个游戏分析,在屏幕上的物体都是飞行物,我们可以把建一个类,让其他飞行物继承这个类.游戏中应有英雄机(也就是 ...

  3. Java练习之坦克大战!!!复制可以直接用!!!文章最后有飞机大战代码!!!

    用Java写一个入门游戏--坦克大战! 源代码!!!复制可以直接用!!! 文章最后还有飞机大战代码!!! 本代码写的较为入门,有需要的铁铁们可以去看看!!! 在往期我们讲解了窗口.循环.数组和继承的一 ...

  4. 【Java】Java基础飞机大战小游戏完整代码

    Java基础飞机大战小游戏完整代码 先来展示一下代码实现结果图 主函数ShootGame 初始化游戏原始背景图片,游戏人物图片,游戏开始结束图片:构建产生敌人算法:产生英雄机算法:发射子弹算法:判断是 ...

  5. 基于Java的飞机大战游戏的设计与实现论文

    源码下载 http://www.byamd.xyz/hui-zong-1/ 摘 要 现如今,随着智能手机的兴起与普及,加上4G(the 4th Generation mobile communicat ...

  6. 基于Java的飞机大战游戏的设计与实现(含源文件)

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 基于Java的飞机大战游戏的设计与实现 摘   要 现如今,随着智能手机的兴起与普及,加上4G( ...

  7. 微信5.0 Android版飞机大战破解无敌模式手记

    微信5.0 Android版飞机大战破解无敌模式手记 转载: http://www.blogjava.net/zh-weir/archive/2013/08/14/402821.html 微信5.0 ...

  8. 基于Java的飞机大战游戏的设计与实现(论文+源码)

    毕业设计(论文)任务书 第1页 毕业设计(论文)题目:基于Java的飞机大战游戏的设计与实现毕业设计(论文)要求及原始数据(资料):1.综述基于Java的飞机大战游戏的现状:2.深入了解Java的设计 ...

  9. python版飞机大战

    python版飞机大战 用python几百行代码搞定飞机大站游戏. 我们利用pygame包进行飞机大战的游戏开发,所以大家首先得安装好pygame包,本游戏一共封装了8个类,大家可以在GitHub上下 ...

最新文章

  1. 观察者模式 Observer 发布订阅模式 源 监听 行为型 设计模式(二十三)
  2. 每天一道LeetCode-----将字符串的连续相同的字符合并成一个字符后加个数
  3. 计算机理论专业研究生论文课题,计算机理论方向论文选题 计算机理论论文标题如何定...
  4. 【转】C#中数组复制的4种方法
  5. Linux系统编程--2(环境变量,进程控制)
  6. 【转】数据库软考笔记(一)第一章 计算机硬件基础知识笔记总结
  7. MQTT在线测试网站
  8. android mysql 乱码_android POST数据遇到的UTF-8编码(乱码)问题解决办法
  9. 哪里找电商素材模板?
  10. python卸载_手把手教Python环境安装
  11. HDU1106 排序【字符串+整数+排序】
  12. 左手用R右手Python系列16——XPath与网页解析库
  13. android官网m魅族15,魅族15/Plus/Lite等机型现身Android官网:设计惊艳
  14. 基于Revit铝模板设计-区域配模
  15. 在Windows下使用Python编程
  16. 成年人的崩溃一触即发,掌握学习能力才能突破认知结界,干货满满!并带你分享你如何掉入互联网大佬的各种陷阱...
  17. 使用FrameWork发布IQD文件
  18. 巧妙下载校VOD电影
  19. 单例模式的几种实现方式详解以及原理
  20. 2022年系统集成项目管理工程师考试大纲

热门文章

  1. 被各种手机浏览器的推荐烦死,推荐一种干净、有效的浏览器操作
  2. XBee XTC/XTend 操作快速入门
  3. windows10系统还原
  4. 一道逻辑推理题的程序实现(纯属娱乐)
  5. OpenSSH创建秘钥的4种格式以及git多秘钥配置
  6. 关于sungard和博彦的笔试
  7. 阿里技术专家的编程方法论:如何写出一手漂亮的代码?
  8. Debian 11 “bullseye” 发布
  9. 国内首部《数字货币词典》在新莫干山会议上启动,巴比特智库担任主编单位...
  10. C#正则判断手机号 邮箱 网址 日期 IP 身份证等