博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell编程之俄罗斯方块
阅读量:4965 次
发布时间:2019-06-12

本文共 961 字,大约阅读时间需要 3 分钟。

按键获取:

向上  ^[[A

向下  ^[[B

向左  ^[[D

向右  ^[[C

其中  ^[为ESC键。

 

按键获取的具体shell代码如下所示:

#! /bin/bashGetKey(){    akey=(0 0 0)     #数组    cESC=`echo -ne "\033"`    #非打印字符    cSpace=`echo -ne "\040"`        while :    do        read -s -n 1 key        echo $key        echo XXX        akey[0]=${akey[1]}        akey[1]=${akey[2]}        akey[2]=${key}        if [[ $key == $cESC && ${akey[1]} == $cESC ]]        #双方括号  shell条件测试        then            MyExit        elif [[ ${akey[0]} == $cESC && ${akey[1]} == "[" ]]        then            if  [[  $key == "A" ]];then echo KEYUP            elif [[  $key == "B" ]];then echo KEYDOWN            elif [[  $key == "D" ]];then echo KEYLEFT            elif [[  $key == "C" ]];then echo KEYRIGHT            fi        fi    done}GetKey

 

俄罗斯方块棋盘绘制:

首先关注几个光标效果:

\033[0m    关闭所有属性            \033[1m      设置高亮度            \033[4m      下划线            \033[5m      闪烁            \033[7m      反显            \033[8m      消隐

\033[30m -- \033[37m  显示前景色

\033[40m -- \033[47m  显示背景色

 

转载于:https://www.cnblogs.com/wsw-seu/p/10825430.html

你可能感兴趣的文章
[Leetcode Week13]Search a 2D Matrix
查看>>
查看端口占用cmd命令
查看>>
2019.01.17王苛震作业
查看>>
清除浮动
查看>>
PayPal(贝宝)支付接口、文档、IPN
查看>>
ORACLE 10G R2_执行计划中cost cardinality bytes cpu_cost io_cost解释
查看>>
本地存储
查看>>
MP3的播放与停止
查看>>
牛客(59)按之字形顺序打印二叉树
查看>>
JavaScript 图表库 xCharts
查看>>
Android项目的目录结构
查看>>
C++中“引用”的底层实现
查看>>
Spring Cloud与微服务构建:微服务简介
查看>>
Babel 是干什么的
查看>>
cocos2dx-3.0(8)------Label、LabelTTF、LabelAtlas、LabelBMFont使用之法
查看>>
CODE[VS] 1842 递归第一次
查看>>
20180418小测
查看>>
数字三角形
查看>>
NGUI 减少drawcall规则
查看>>
三元表达,匿名函数
查看>>