@

前言

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

下面是源码

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);
}
//抽奖:添加power
if ((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++) {
// 先得到每一个power
Power 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);
//禁止重置大小z
this.setResizable(false);
//添加键盘监听器 KeyListener -->KeyAdapter
this.addKeyListener(new KeyAdapter() {
@Override
public 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);
}
}
@Override
public 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
**/
@Override
public 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 ~ 7
try {
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. java版飞机大战 实战项目详细步骤.md

    [toc] 分析 飞机大战 首先对这个游戏分析,在屏幕上的物体都是飞行物,我们可以把建一个类,让其他飞行物继承这个类.游戏中应有英雄机(也就是自己控制的飞机).敌人.而敌人应该分为打死给分的飞机(就是 ...

  2. python版飞机大战代码简易版

    # -*- coding:utf-8 -*- import pygame import sys from pygame.locals import * from pygame.font import ...

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

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

  4. 微信小游戏 demo 飞机大战 代码分析(四)(enemy.js, bullet.js, index.js)

    微信小游戏 demo 飞机大战 代码分析(四)(enemy.js, bullet.js, index.js) 微信小游戏 demo 飞机大战 代码分析(一)(main.js) 微信小游戏 demo 飞 ...

  5. 微信小游戏 demo 飞机大战 代码分析 (三)(spirit.js, animation.js)

    微信小游戏 demo 飞机大战 代码分析(三)(spirit.js, animation.js) 微信小游戏 demo 飞机大战 代码分析(一)(main.js) 微信小游戏 demo 飞机大战 代码 ...

  6. 微信小游戏 demo 飞机大战 代码分析 (二)(databus.js)

    微信小游戏 demo 飞机大战 代码分析(二)(databus.js) 微信小游戏 demo 飞机大战 代码分析(一)(main.js) 微信小游戏 demo 飞机大战 代码分析(三)(spirit. ...

  7. 微信小游戏 demo 飞机大战 代码分析 (一)(game.js, main.js)

    微信小游戏 demo 飞机大战 代码分析(一)(main.js) 微信小游戏 demo 飞机大战 代码分析(二)(databus.js) 微信小游戏 demo 飞机大战 代码分析(三)(spirit. ...

  8. java版第一个代码——HelloWorld!

    java版第一个代码--HelloWorld! 今天来接触一下java代码: 事前准备 jdk的配置(推荐jdk8或jdk11) notepad++或idea软件 开始编写 建立文件夹存放代码 建立j ...

  9. Python版飞机大战

    前面学了java用java写了飞机大战这次学完python基础后写了个python版的飞机大战,有兴趣的可以看下. 父类是飞行物类是所有对象的父类,setting里面是需要加载的图片,你可以换称自己的 ...

随机推荐

  1. linux centos 04

    1.python的虚拟环境 1.将当前机器上的解释器作为一个 本地,复制出的很多歌 虚拟解释器 物理机上的 本体解释器 ,什么事也不做 分身1:  解释器1:虚拟环境1     运行django  1 ...

  2. day30 Pyhton 复习模块

    一.模块 什么是模块. 模块就是我们把装有特定功能的代码进行归类的结果. 从代码编写的单位来看我们的程序, 从小到大的顺序: 一条代码 < 语句句块 < 代码块(函数, 类) < 模 ...

  3. python 不定长参数

    1 #不定长参数 * 元祖 ** 字典 2 def item(a,b,*c,**d): 3 print(a) 4 print(b) 5 print(c) 6 print(d) 7 8 item(11, ...

  4. 如何把C++的源代码改写成C代码?而C改C++只需一步!

    ★ 如何把C++的源代码改写成C代码? C++解释器比C语言解释器占用的存储空间要大,想要在某些特定场合兼容C++代码,同时为了节省有限的存储空间,降低成本,也为了提高效率,将用C++语言写的源程序用 ...

  5. spring boot:基于profile的多环境配置(spring boot 2.3.4)

    一,为什么要进行多环境配置? 1,没有人会在生产环境中进行开发和测试, 所以通常会有多个环境的划分: 工程师本地的开发环境 进行测试的测试环境 最终上线的生产环境 每个环境对应不同的数据库/缓存等数据 ...

  6. 通透,23 个问题 TCP 疑难杂症全解析

    每个时代,都不会亏待会学习的人. 在进入今天主题之前我先抛几个问题,这篇文章一共提出 23 个问题. TCP 握手一定是三次?TCP 挥手一定是四次? 为什么要有快速重传,超时重传不够用?为什么要有 ...

  7. 【应用服务 App Service】发布到Azure上的应用显示时间不是本地时间的问题,修改应用服务的默认时区

    问题情形 应用程序发布到App Service后,时间显示不是北京时间,默认情况为UTC时间,比中国时间晚 8 个小时. 详细日志 无 问题原因 Azure 上所有的服务时间都采用了 UTC 时间. ...

  8. uvalive6468,51cthink1419 Strange Antennas (离散化)

    题意: 在一个 n x n 的平面上,给定 m 个等腰直角三角形(各点均为整数),问该平面上被三角形覆盖奇数次的点有多少个. 思路: 由于 n 较大,不能模拟解决,故使用离散化思想. 考虑每一行有多少 ...

  9. frida框架hook常用字符串模板总结

    ArrayBuffer转String: 解决中文乱码(模板) function ab2str(buf) { return new Uint16Array(buf) // encodedString = ...

  10. maven 获取pom.xml的依赖---即仓库搜索服务

    常用仓库地址: http://repository.sonatype.org/    (https://repository.sonatype.org/)如下图: http://www.mvnrepo ...