• 游戏脚本


    #!/bin/bash
    #author:zhengning
    #date:20170729
    #version 1.1
    #运动会比赛脚本,同等耗时,谁奔跑的距离远谁获胜
    #脚本运行方法:直接运行脚本名(sh game.sh)
    
    title='第一届长跑运动会!'   #运动会标题设定
    User=(小红 小明 小刚 张三 李四)  #数组:所有的运动员,运动员可随意添加,数量无限制
    
    BEGIN_Y=6                        #初始行Y轴定位
    BEGIN_X=20                       #初始行X轴定位
    ENG_Y=$[$BEGIN_Y+${#User[@]}+2]  #结束行Y轴定位
    Time=1                           #频次间隔
    Long=5                           #执行20次奔跑
    
    echo -e "33[2J"                #清屏
    echo -e "33[2;2H$title"        #输出运动会标题
    
    #奔跑脚本
    function run(){
    echo -e "33[6;0H运动员:" 
    for ((i=1;i<=${#User[@]};i++));do
        User_num=$[$i-1]
        User_X=$BEGIN_X
        User_Y=$[$BEGIN_Y+$i]
    
        echo -e "33[${User_Y};5H${User[$User_num]}:"
    
        {
        echo -e "33[${User_Y};${User_X}HO"       #图形位置初始定位
        sleep 3                                    #频次间隔
        for ((j=1;j<=$Long;j++));do
            echo -e "33[${User_Y};${User_X}H "   #清除之前显示
            Step=$[$RANDOM%3+2]                    #步伐大小范围(3-5)
            User_X=$[$Step+$User_X]                #更新随机一次步伐后X轴位置
            echo -e "33[${User_Y};${User_X}HO"   #图形位置定位
            sleep $Time                            #频次间隔
        done
        Tmp[$User_num]=$User_X                     #运动员最终距离 Tmp[]数组赋值;即最终X轴距离  /////有问题
        echo -e "$User_num	$User_X" >>tmp.game
        }&
    
    done
    }
    
    #Ready  go!!! 
    echo -e "33[4;2H Ready" ; sleep 1      #显示准备
    echo -e "33[4;2H      " ; run          #清楚准备,执行奔跑脚本
    echo -e "33[4;2H 3"     ; sleep 1      #倒计时3
    echo -e "33[4;2H 2"     ; sleep 1      #倒计时2
    echo -e "33[4;2H 1"     ; sleep 1      #倒计时1
    echo -e "33[4;2H go!!!"                #倒计时, 开始
    sleep $[$Long+1]        #等待后台执行的子进程(run)执行完成
    wait
    
    #名次排序
    #Order=`echo ${Tmp[*]} |tr ' ' '
    ' |cat -n |sort -k2nr |awk '{print$1-1}'`
    #Order=`sort -k2nr tmp.game|awk '{print$1}'`
    m=0
    echo -e "33[$ENG_Y;0H名次:"
    for i in `awk '{print$2}' tmp.game|sort -run`;do
        echo -en "	第$[++m]名:"
    
        for j in `awk -v aa=$i '$2==aa{print$1}' tmp.game`;do
            echo -ne "${User[$j]}、"
        done
    
        echo -e " "
    done
    
    rm tmp.game -f
    echo "Game over!"
  • 相关阅读:
    OO系统分析员之路用例分析系列(3)业务建模之涉众
    Case study—Courseware Management System
    Creating the Use Case Diagram
    ODBC
    Class Diagram
    OO系统分析员之路用例分析系列(2)用例的类型与粒度
    Cache Object Script语言(转载)
    无法在web服务器上启动调试.
    Abbreviation
    发布订阅原理
  • 原文地址:https://www.cnblogs.com/pzzning/p/7257980.html
Copyright © 2020-2023  润新知