vue相关的2个综合案例,网页打字练习

news2024/11/28 3:49:01

for循环的应用

/* 1. 用for循环控制台打印0到100 */
for (var i = 0; i <= 100; i++) {
    console.log(i)
}
/* 2. 用for循环控制台打印100到0 */
for (var i = 100; i >= 0; i--) {
    console.log(i)
}

网页打字练习案例练习

<template>
    <div class="main">
    <div class="outer">
    <div class="score">当前分数: {{ score }}</div>
    <div class="timer">剩余时间: {{ time }}秒</div>
    </div>
    <div>
        <kbd v-for="(key, index) in currentKeys" :key="index">{{ key.toUpperCase() }}</kbd>
        </div>
    </div>
</template>

<script setup>
import { ref, onMounted } from 'vue';
const score = ref(0);
const time = ref(60);
const gameOver = ref(false);
const currentKeys = ref([]);
const words = ['hello', 'world', 'vue', 'js', 'java', 'python', 'javascript',
    'function', 'const', 'var', 'let', 'ref', 'computed', 'watch', 'v-for', 'v-if', 'v-on',
    'react', 'style', 'html', 'npm', 'run', 'dev', 'vim', 'C++', 'C#', '@',
    'template', 'script', 'event', 'reactive', '114514', '520', 'bigdata', 'hadoop', 'linux',
    'network', 'computer', 'class', 'dom', 'yarn', 'spark', 'scala', 'rust', 'golang', 'value',
    'expression', 'statement', 'boolean', 'string', 'nan', 'undefined', 'number', 'object', 'arrary', 'typeof', 'Math', 'english', 'random', 'push', 'pop', 'map', 'filter', 'foreach',
    'while', 'return', 'framework', 'vonneuman', 'turing', 'backend', 'frontend', 'web', '&',
    '~', '!', '(', ')', '{', '}', '/', '?','<','>',
    'console','log','timeout','window','document','css','vite','install','mustache','button','div',
    'v-bind','v-show','v-else','import','mounted','export','from','node'
];

const getRandomKey = () => {
    const randomWord = words[Math.floor(Math.random() * words.length)];
    currentKeys.value = randomWord.split('');
};

const handleKeyPress = (event) => {
    if (gameOver.value) {
        return;
    }

    if (event.key.toLowerCase() === currentKeys.value[0].toLowerCase()) {
        currentKeys.value.shift();

        if (currentKeys.value.length === 0) {
            score.value++;
            getRandomKey();
        }
    }
};

const startTimer = () => {
    const timer = setInterval(() => {
        time.value--;
        if (time.value === 0) {
            clearInterval(timer);
            gameOver.value = true;
        }
    }, 1000);
};

onMounted(() => {
    getRandomKey();
    startTimer();
    window.addEventListener('keydown', handleKeyPress);
});
</script>


<style scoped>
.main {
    width: 1000px;
    height: 800px;
}

.outer {
    display: flex;

    justify-content: space-between;
    align-items: center;
    height: 300px;
    font-size: 48px;
    margin-bottom: 60px;
    color: #000;
    /* Default text color for light mode */
}


kbd {
    display: inline-block;
    padding: 0.8em 1.6em;
    margin-bottom: 30px;
    margin-left: 15px;
    font-size: 2em;
    font-family: Arial Black, sans-serif;
    font-weight: bold;
    line-height: 1.4;
    color: #242729;
    text-shadow: 0 1px white;
    background: linear-gradient(to top, #ddd, #eee 8%, #fff 18%, #e3e3e3);
    border: 1px solid #ccc;
    border-radius: 3px;
    box-shadow:
        0 0 0 1px #fff inset,
        0 1px 0 #ddd,
        0 2px 0 #bbb,
        0 2px 10px rgba(0, 0, 0, 0.2),
        0 10px 20px rgba(0, 0, 0, 0.2);
    /* Add a larger shadow to make it look more 3D */
}

/* Styles for dark mode */
@media (prefers-color-scheme: dark) {
    .outer {
        color: #fff;
    }

    kbd {
        background-color: #555;
        border-color: #888;
    }
}
</style>

效果如下:

当敲对一个单词后就会消失一个,直到屏幕的单词都打完,会加一分,然后更新单词,再次练习。倒计时60秒,快去挑战自己的手速吧。

在这里插入图片描述

网页修饰

代码如下:

<template>
<div id="firstTop"><div id="piao"><img src="src\components\text.html\yh.png" class="moveRight"></div></div>
<body>   
<div class="background">
 
    <!-- 左侧侧边栏内容 -->
    <div id="b1">
        <div class="topLeftAndRight"></div>
    </div>
     <!-- 中间内容填充部分  -->
    <div id="b2">
       <div id="hang1">
         <iframe :src="externalHtmlUrl"></iframe>
       </div>
     
        <div id="hang15"></div>
            <div class="hang2">
                
                <div id="contain">
                    <div id="leftDoor"></div>
                    <div id="rightDoor"></div>
                </div> 
                <div id="left"></div>
                <div id="right"></div>
            </div>
        <div id="hang3">
            <div id="jieguo">
                <div class="outer">当前分数:{{ score }}</div>
                <div class="timer">剩余时间: {{ time }}秒</div> 
            </div>
            <div :class="{'time': atime}">
                <img src="src\components\text.html\time.png" >
            </div>
            <div class="neirong">
                <div :class="{'color1': aColor1}">
                    <span v-for="(key, index) in currentKeys" :key="index">{{ key.toUpperCase() }}</span>
                </div>
                
                <div :class="{'color2': aColor2}">
                    <span v-for="(key, index) in currentKeys2" :key="index">{{ key.toUpperCase() }}</span>
                </div>
                
                <div :class="{'color3': aColor3}">
                    <span v-for="(key, index) in currentKeys3" :key="index">{{ key.toUpperCase() }}</span>
                </div>
                <div :class="{'color4': aColor4}">
                    <span v-for="(key, index) in currentKeys4" :key="index">{{ key.toUpperCase() }}</span>
                </div>
            </div>
            <div class="overAgainGame"><button @click="overAgin">{{ start }}</button></div>
        </div>
    </div>
    <!-- 右边栏的内容 -->
    <div id="b3">
        <div class="topLeftAndRight"></div>
    </div>
</div>
</body>
</template>

<script>

export default {
    
    data () {
      return {
        externalHtmlUrl: './src/components/text.html/cs.html' // 外部HTML文件的链接地址
      }
    }
  }
</script>
<script setup>
import { ref, onMounted } from 'vue';
   
    const score = ref(0);
    const time = ref(60);
    const gameOver = ref(false);
    const start = ref("开始游戏")
    
    const currentKeys = ref([]);
    const currentKeys2 = ref([]);
    const currentKeys3 = ref([]);
    const currentKeys4 = ref([]);
    const words = ['hello', 'world', 'vue', 'js', 'java', 'python', 'javascript',
        'function', 'const', 'var', 'let', 'ref', 'computed', 'watch', 'v-for', 'v-if', 'v-on',
        'react', 'style', 'html', 'npm', 'run', 'dev', 'vim', 'C++', 'C#', '@',
    ];
    
    
    const getRandomKey = () => {
        const randomWord = words[Math.floor(Math.random() * words.length)];
        currentKeys.value = randomWord.split(',');
        
    };
    const getRandomKey2 = () => {
        const randomWord = words[Math.floor(Math.random() * words.length)];
        currentKeys2.value = randomWord.split(',');
        
    };const getRandomKey3 = () => {
        const randomWord = words[Math.floor(Math.random() * words.length)];
        currentKeys3.value = randomWord.split(',');
        
    };const getRandomKey4 = () => {
        const randomWord = words[Math.floor(Math.random() * words.length)];
        currentKeys4.value = randomWord.split(',');
        
    };
    const handleKeyPress = (event) => {
      const key = event.key;
      const wordPress = ref([])
      wordPress.value = key
      console.log(key)

     
      // 如果是删除键,则删除词汇的最后一个字符
      if (key === 'Backspace') {
        inputWord = inputWord.slice(0, -1);
      } else if (key === ' ') { // 如果是空格,则输出整个词汇并清空

        inputWord = '';
      } else if (key === 'Shift'){
        inputWord.replace('Shift', '')
    
      }else {
        inputWord += key; // 否则,将按键字符添加到词汇中
        if (inputWord.length > 0) {
          console.log('Input word:', inputWord);
          
          if (gameOver.value) {
            return;
        }
          if (inputWord.toLowerCase() === currentKeys.value[0].toLowerCase() || inputWord.toLowerCase() === currentKeys2.value[0].toLowerCase() || inputWord.toLowerCase() === currentKeys3.value[0].toLowerCase()|| inputWord.toLowerCase() === currentKeys4.value[0].toLowerCase()) {
            currentKeys.value.pop();
            if (currentKeys.value.length === 0) {
                score.value++;
                inputWord = '';
                getRandomKey();
                getRandomKey2();
                getRandomKey3();
                getRandomKey4();
            }
          }
        }
        aColor1.value = ref(false);
        aColor2.value = ref(false);
        aColor3.value = ref(false);
        aColor4.value = ref(false);
    
      }
    }
     

    const aColor1 = ref(false);
    const aColor2 = ref(false);
    const aColor3 = ref(false);
    const aColor4 = ref(false);
    const sumList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
    function toChangeColor() {
        const items = ref([]);
        let loopIndex = 0;
        const intervalDuration = 3000; // 每次循环的间隔时间(毫秒)
        const maxItems = 19; // 循环的最大次数
        for (let i = 0; i <= maxItems; i++) {
    
        setTimeout(() => {
        var chooseSum = sumList[Math.floor(Math.random() * maxItems)]
        
        console.log(chooseSum)
        if (chooseSum >= 0 && chooseSum <=4) {
            aColor1.value = !aColor1.value
            aColor2.value = ref(true);
            aColor3.value = ref(true);
            aColor4.value = ref(true);
        }else if (chooseSum >= 5 && chooseSum <=9){
            aColor2.value = !aColor2.value
            aColor1.value = ref(true);
            aColor3.value = ref(true);
            aColor4.value = ref(true);
        }else if (chooseSum >= 10 && chooseSum <=14){
            aColor3.value = !aColor3.value
            aColor2.value = ref(true);
            aColor1.value = ref(true);
            aColor4.value = ref(true);
        }else if (chooseSum >= 15 && chooseSum <=20){
            aColor4.value = !aColor4.value
            aColor2.value = ref(true);
            aColor3.value = ref(true);
            aColor1.value = ref(true);
        }else {
            aColor1.value = ref(true);
            aColor2.value = ref(true);
            aColor3.value = ref(true);
            aColor4.value = ref(true);
        }
      
          items.value.push(`Item ${loopIndex++}`);
        }, i * intervalDuration);
      }
    
    }
    const atime = ref(false)
    const startTimer = () => {
        const timer = setInterval(() => {
     
            time.value--;
            start.value = '重新开始'
            if (time.value === 0) {
                atime.value = false
                clearInterval(timer);
                gameOver.value = true;
                clearInterval(toChangeColor)
                aColor1.value = ref(false);
                aColor2.value = ref(false);
                aColor3.value = ref(false);
                aColor4.value = ref(false);
                start.value = '开始游戏'
            }else{
                atime.value = true
            }
        }, 1000);
    };
    
    
    let inputWord = '';
 

    function overAgin(){
        
        window.location.reload();
        timePass ()
        
        if (time === 0) {
            aColor1.value = ref(false);
            aColor2.value = ref(false);
            aColor3.value = ref(false);
            aColor4.value = ref(false);
 
        }
    
        
    }

    onMounted(() => {
        
        getRandomKey();
        getRandomKey2();
        getRandomKey3();
        getRandomKey4();
        startTimer();
        toChangeColor();
       
        window.addEventListener('keydown', handleKeyPress);

    });
      
</script>

<style scoped>
body{
    margin: 0;
    padding: 0;
}
.background{
    display: flex;

}
#firstTop{
    width: 1420px;
    height: 100px;
    background-color: aqua;
    background-image: url("https://img.pptjia.com/image/20181121/9e19f6fef989b1db9c1aa40417860c49.png");
    background-size: cover;
    background-repeat: no-repeat;
    
}
#moveRight{
    width: 150px; /* 设置图片宽度 */
    height: 80px;
    animation: moveRight 2s infinite; /* 应用动画 */
}
#piao{
    margin-left: 0px;
    animation: moveRight 2s infinite; /* 应用动画 */
}
@keyframes moveRight {
  0% {
    margin-left: -1200px; /* 动画开始时位置 */
  }
  100% {
    margin-left: 1300px; /* 动画结束时位置,这里是向右移动100px */
  }
}
/* 写左侧栏的样式 */
#b1{

    width: 300px;
    height: 1600px;
    border: 1px black;
    background-color: aqua;
    background-image: url("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fc-ssl.duitang.com%2Fuploads%2Fblog%2F201505%2F15%2F20150515203203_AihvS.thumb.400_0.gif&amp;refer=http%3A%2F%2Fc-ssl.duitang.com&amp;app=2002&amp;size=f9999,10000&amp;q=a80&amp;n=0&amp;g=0n&amp;fmt=auto?sec=1719239956&amp;t=5afb6cc097c9e071ca893956158847b6");
}
.topLeftAndRight{
    background-image: url("https://img.pptjia.com/image/20181121/9e19f6fef989b1db9c1aa40417860c49.png");
    width: 300px;
    height: 100px;
    background-size: cover;
    float: left;
}
#b2{

width: 820px;
height: 1600px;
border: 1px black;
background-color: white;

}


/* 中间上边栏 */
#top{
    background-image: url("./src/assets/yun1.jpg");
    background-repeat: no-repeat;
    background-size: cover;
    width: 820px;
    height: 400px;
   
}
#logo{

    width: 500px;
    height: 240px;
    padding-top: 120px;
    margin-left: 160px;
    background-image: url("./src/assets/logo.png");
    background-repeat: no-repeat;
    background-position: center;
    
}

#hang1{
    width: 800px;
    height: 500px;
    border: 0px;
}
iframe {
  
  border: 0;
  width: 100%; /* takes precedence over the width set with the HTML width attribute */
  height: 100%;
}
   

#hang15{
    width: 820px;
    height: 160px;
    background-color: blue;
    margin-top: 30px;
    
    background-image: url("./src/assets/tou1.png");
    background-size: 820px 160px;
  

    
}
#contain {
            width: 410px;
            height: 310px;
            position: absolute;
            background-image: url("./src/assets/gz1.png");
            background-size: 410px 310px;
            perspective: 800px;
            transform-style: preserve-3d;
            margin-left: 410px;
            margin-top: 155px;
            transform: translateY(-50%) translateX(-50%);
            cursor: pointer;
            
        }
    
    
        #leftDoor {
            position: absolute;
            width: 50%;
            height: 100%;
            top: 0;
            left: 0;
            transition: .5s;
            background-image: url("./src/assets/hqq2.png");
            background-size: cover;
            backface-visibility: visible;
            transform-origin: left;
            /* 需要注意3D动画的 transform-orign 的改变 */
        }
        
    
        #rightDoor {
            position: absolute;
            width: 50%;
            height: 100%;
            right: 0;
            top: 0;
            transition: .5s;
            background-image: url("./src/assets/hqq3.png");
            background-size: cover;
            backface-visibility: visible;
            transform-origin: right;
        }
    
        #contain:hover #leftDoor {
            transform: rotateY(-120deg);
        }
    
        #contain:hover #rightDoor {
            transform: rotateY(120deg);
        }
    
        #leftDoor::before,
        #rightDoor::after {
            content: '';
            display: block;
            position: absolute;
            width: 10px;
            height: 10px;
            border-radius: 50%;
            border: 1px slategrey solid;
            top: 50%;
            transform: translateY(-50%);
            /* 当内部无元素时,两个伪元素指的是同一个 */
        }
    
        #leftDoor::before {
            right: 20px;
        }
    
        #rightDoor::after {
            left: 20px;
        }
#left{
    width: 212px;
    height: 310px;
    background-color: aqua;
    background-image: url("./src/assets/hqq1.png");
    background-size: 210px 310px;
    background-repeat: no-repeat;
}
#right{
 
    width: 210px;
    height: 310px;
    background-color: aqua;
    margin-left: 610px;
    margin-top: -312px;
    background-image: url("./src/assets/hqq4.png");
    background-size: 212px 310px;
    background-repeat: no-repeat;
}
#hang3{
    width: 820px;
    height: 600px;
    background-color: bisque;
}
#jieguo{
    width: 820px;
    height: 60px;
    background-color: aqua;
    
}
.time{
    width: 80px;
    height: 80px;

    animation: moveRight2 60s infinite; /* 应用动画 */
}

@keyframes moveRight2 {
  0% {
    margin-left: 790px; /* 动画开始时位置 */
  }
  100% {
    margin-left: -60px; /* 动画结束时位置,这里是向右移动100px */
  }
}
 /* 单词的样式 */
 span {
        display: inline-block;
        padding: 1.8em 2.6em;
        margin-bottom: 30px;
        margin-left: 15px;
        font-size: 15px;
        font-family: Arial Black, sans-serif;
        font-weight: 0px;
        line-height: 1.2;
        color: rgb(36, 41, 39);
    
        /* background: linear-gradient(to top, #ddd, #eee 8%, #fff 18%, #e3e3e3); */
        border-radius: 3px;
        box-shadow:
            0 2px 10px rgba(0, 0, 0, 0.2),
            0 10px 20px rgba(0, 0, 0, 0.2);
           
        /* Add a larger shadow to make it look more 3D */
    }

.neirong{
    display: flex;
    margin-left: -6px;
    margin-top: 100px;
    height: 500px;
}



/* 开始游戏按钮的样式 */
.overAgainGame{
    margin-top: -200px;
}
 button {
     
     --bg: #e74c3c;
     --text-color: #fff;
     position: relative;
     width: 200px;
     height: 80px;
     border: none;
     background: var(--bg);
     color: var(--text-color);
     padding: 1em;
     font-size: 30px;
     font-weight: bold;
     text-transform: uppercase;
     transition: 0.2s;
     border-radius: 5px;
     opacity: 0.8;
     letter-spacing: 1px;
     box-shadow: #c0392b 0px 7px 2px, #000 0px 8px 5px;
     padding-top: 20px;
     margin-top: -220px;
   }
    
   button:hover {
     opacity: 1;
   }
    
   button:active {
     top: 4px;
     box-shadow: #c0392b 0px 3px 2px,#000 0px 3px 5px;
   } 

   /* 覆盖物 */
   .color1{
      
      width: 500px;
      float: left;
      margin-left: 10px;
      background-image:url("https://gd-hbimg.huaban.com/f7edc6d1befd31a5ff3facac33fda064c710b73342fff-V45epE_fw658"); /* 红色背景 */
    transition: background-color 0s ease; /* 背景色变化的过渡效果 */
    background-repeat: no-repeat;
    background-size: 100%;
  }  
    .color2 {
        width: 500px;
        float: left;
        margin-left: 10px;
      background-image:url("https://gd-hbimg.huaban.com/f7edc6d1befd31a5ff3facac33fda064c710b73342fff-V45epE_fw658"); /* 红色背景 */
      transition: background-color 0s ease; /* 背景色变化的过渡效果 */
      background-repeat: no-repeat;
      background-size: 100%;
    }
    .bg-blink-enter-from,
    .bg-blink-leave-to {
      background-color: transparent; /* 初始/结束时的背景色 */
    }
    .bg-blink-enter-active,
    .bg-blink-leave-active {
      transition: background-color 0s ease; /* 过渡效果 */
    }
    .color3{
    
        width: 500px;
        float: left;
        margin-left: 10px;
        background-image:url("https://gd-hbimg.huaban.com/f7edc6d1befd31a5ff3facac33fda064c710b73342fff-V45epE_fw658"); /* 红色背景 */
      transition: background-color 0s ease; /* 背景色变化的过渡效果 */
      background-repeat: no-repeat;
      background-size: 100%;
    }
    .color4{
        width: 500px;
        float: left;
        margin-left: 10px;
        background-image:url("https://gd-hbimg.huaban.com/f7edc6d1befd31a5ff3facac33fda064c710b73342fff-V45epE_fw658"); /* 红色背景 */
      transition: background-color 0s ease; /* 背景色变化的过渡效果 */
      background-repeat: no-repeat;
      background-size: 100%;
    }

   /* 右边栏 */
#b3{

width: 300px;
height: 1600px;
border: 1px black;
background-color: red;
background-image: url("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fc-ssl.duitang.com%2Fuploads%2Fblog%2F201505%2F15%2F20150515203203_AihvS.thumb.400_0.gif&amp;refer=http%3A%2F%2Fc-ssl.duitang.com&amp;app=2002&amp;size=f9999,10000&amp;q=a80&amp;n=0&amp;g=0n&amp;fmt=auto?sec=1719239956&amp;t=5afb6cc097c9e071ca893956158847b6");
}


</style>

修饰后网页效果如下

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1816095.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安灯(andon)系统如何帮助工厂流水线实现精益生产

在当今竞争激烈的制造业领域&#xff0c;实现精益生产已成为众多工厂追求的目标。而安灯&#xff08;Andon&#xff09;系统在这一过程中发挥着至关重要的作用。 安灯&#xff08;Andon&#xff09;系统通过及时反馈和沟通机制&#xff0c;让生产过程中的问题能够迅速被察觉和解…

【面向就业的Linux基础】从入门到熟练,探索Linux的秘密(二)

主要内容介绍可tmux和vim的一些常用操作&#xff0c;可以当作笔记需要的时候进来查就行。 文章目录 前言 一、tmux和vim 二、Linux系统基本命令 1.tmux教程 2. vim教程 3.练习 总结 前言 主要内容介绍可tmux和vim的一些常用操作&#xff0c;可以当作笔记需要的时候进来查就行…

清远mes系统开发商 盈致科技

清远MES系统开发商盈致科技为企业提供专业的MES系统解决方案&#xff0c;帮助企业实现生产过程的数字化管理和优化。盈致科技的服务范围包括但不限于以下方面&#xff1a;MES系统定制开发&#xff1a;盈致科技可以根据清远企业的实际需求定制开发适合的MES系统&#xff0c;满足…

大神出新品,吴恩达开源机器翻译智能体项目

节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学。 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 合集&#x…

2 程序的灵魂—算法-2.4 怎样表示一个算法-2.4.2 用流程图表示算法

流程图表示算法&#xff0c;直观形象&#xff0c;易于理解。 【例 2.6】将例 2.1 求 5!的算用流程图表示。 【例 2.7】将例 2.2 的算用流程图表示。 【例 2.8】将例 2.3 判定闰年的算用流程图表示。

双非本科一年20w,已是人中龙凤了

大家好&#xff0c;我是白露啊。 “双非本科一年20w已经是人中龙凤了”……吗&#xff1f; 牛客上刷到这条帖子&#xff0c;我一开始以为是一个钓鱼、引战贴。看完才觉得他说的很对&#xff0c;现在在求职选择工作的时候&#xff0c;网上都觉得得40万、50万&#xff0c;但当真…

SpringSecurity入门(一)

1、引入依赖 spring-boot版本2.7.3&#xff0c;如未特殊说明版本默认使用此版本 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><dependency><g…

新书速览|Autodesk Inventor 2024入门与案例实战:视频教学版

《Autodesk Inventor 2024入门与案例实战&#xff1a;视频教学版》 本书内容 《Autodesk Inventor 2024入门与案例实战&#xff1a;视频教学版》以Autodesk Inventor 2024为平台&#xff0c;重点介绍Autodesk Inventor 2024中文版的各种操作方法及其在工程设计领域的应用。《Au…

TOGAF架构介绍

框架组件 软件开发过程中通用能力的集合。 一个完整的框架包括&#xff1a;异常处理组件&#xff0c;数据访问组件&#xff0c;日志组件&#xff0c;错误码组件。

韩顺平0基础学java——第21天

p430-440 enum昨日剩余 enum常用方法&#xff1a; 1.toString已经重写过了&#xff0c;返回的是当前对象名。子类可以重写 2.name&#xff1a;返回当前对象名&#xff08;常量名&#xff09;&#xff0c;子类中不能重写 3.ordinal&#xff1a;返回当前对象的位置号。默认从…

LVGL欢乐桌球游戏(LVGL+2D物理引擎学习案例)

LVGL欢乐桌球游戏&#xff08;LVGL2D物理引擎学习案例&#xff09; 视频效果&#xff1a; https://www.bilibili.com/video/BV1if421X7DL

webshell获取总结(cms获取方法、非cms获取方法、中间件拿Webshell方法)

目录 前期准备&#xff1a; 1、cookices靶场网站搭建&#xff1a; 2、dedecms靶场环境搭建&#xff1a; 获取Webshell方法总结&#xff1a; 一、CMS获取Webshell方法 二、非CMS获取Webshell方法 1、数据库备份获取Webshell 例如&#xff1a; 2、抓包上传获取Webshell 3、…

SPI 配置寄存器程序

/************************************************** * **************************************************/ module zhm_mspi #( parameter C_SPI_CPHA 1 ,// clock phase &#xff0c;0&#xff0c;在 SCLK 的第一个跳变沿进行采样&#xff1b;1&…

Linux - 复盘一次句柄数引发的故障

文章目录 Pre&#xff08;内核、用户、进程&#xff09;句柄数设置问题 shell修复 Pre Linux - 深入理解/proc虚拟文件系统&#xff1a;从基础到高级 &#xff08;内核、用户、进程&#xff09;句柄数设置 在Linux系统中&#xff0c;进程打开的最大句柄数可以通过多种方式配置…

0605 实际集成运算放大器的主要参数和对应用电路的影响

6.5.1 实际集成运放的主要参数 6.5.2 集成运放应用中的实际问题 6.5.2 集成运放应用中的实际问题

【启程Golang之旅】网络编程与反射

欢迎来到Golang的世界&#xff01;在当今快节奏的软件开发领域&#xff0c;选择一种高效、简洁的编程语言至关重要。而在这方面&#xff0c;Golang&#xff08;又称Go&#xff09;无疑是一个备受瞩目的选择。在本文中&#xff0c;带领您探索Golang的世界&#xff0c;一步步地了…

FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt

《FFmpeg开发实战&#xff1a;从零基础到短视频上线》一书的“10.2 FFmpeg推流和拉流”提到直播行业存在RTSP和RTMP两种常见的流媒体协议。除此以外&#xff0c;还有比较两种比较新的流媒体协议&#xff0c;分别是SRT和RIST。 其中SRT全称为Secure Reliable Transport&#xf…

微信小程序毕业设计-驾校管理系统项目开发实战(附源码+论文)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;微信小程序毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计…

WEB基础--Mybatis

了解Mybatis 什么是Mybatis 市面上最流行的技术架构&#xff1a;SSM 他们代表了 Spring业务层框架&#xff0c;SpringMvc WEB层框架以及MyBatis数据库持久层框架。 MyBatis 作为一个数据库持久层框架&#xff0c;是基于ORM规范(对象关系映射) 。类似我们以前的JDBC 和 JPA。…

【目标检测】基于深度学习的车牌识别管理系统(含UI界面)【python源码+Pyqt5界面 MX_002期】

系统简介&#xff1a; 车牌识别技术作为经典的机器视觉任务&#xff0c;具有广泛的应用前景。通过图像处理方法&#xff0c;车牌识别技术能够对车牌上的字符进行检测、定位和识别&#xff0c;从而实现计算机对车牌的智能化管理。在现实生活中&#xff0c;车牌识别系统已在小区停…