精华内容
下载资源
问答
  • 概述今天主要分享下怎么用shell脚本来实现俄罗斯方块这个小游戏。testris.shtetris是整个游戏的核心,大概500多行,所以这里就不贴脚本了。keytest.shkeytest这个脚本主要是为了获取键盘#!/bin/bash GetKey() { aKey...

    概述

    今天主要分享下怎么用shell脚本来实现俄罗斯方块这个小游戏。


    testris.sh

    tetris是整个游戏的核心,大概500多行,所以这里就不贴脚本了。

    5867a5349bfe588683c8db6cda85ac22.png

    keytest.sh

    keytest这个脚本主要是为了获取键盘

    #!/bin/bash  GetKey() {  aKey=(0 0 0) #定义一个数组来保存3个按键   cESC=`echo -ne "033"`  cSpace=`echo -ne "040"`   while :  do read -s -n 1 key #读取一个字符,将读取到的字符保存在key中  #echo $key  #echo XXX   aKey[0]=${aKey[1]} #第一个按键  aKey[1]=${aKey[2]} #第二个按键  aKey[2]=$key #第三个按键   if [[ $key == $cESC && ${aKey[1]} == $cESC ]]  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
    35338456755d9924577e6e26e795d4dc.png

    draw.sh

    draw 负责画出图形界面部分。

    #!/bin/bash  #位置与大小 marginLeft=8 #边框左边距 marginTop=6 #边框上边距 ((mapLeft=marginLeft+2)) #棋盘左边距 ((mapTop=$marginTop+1)) #棋盘上边距 mapWidth=10 #棋盘宽度 mapHeight=15 #棋盘高度 #方块定义,7大类19种样式 #前8位为方块坐标,后2位为方块刚出现的时候的位置 box0_0=(0 0 0 1 1 0 1 1 0 4)  box1_0=(0 1 1 1 2 1 3 1 0 3) box1_1=(1 0 1 1 1 2 1 3 -1 3)  box2_0=(0 0 1 0 1 1 2 1 0 4) box2_1=(0 1 0 2 1 0 1 1 0 3)  box3_0=(0 1 1 0 1 1 2 0 0 4) box3_1=(0 0 0 1 1 1 1 2 0 4)  box4_0=(0 2 1 0 1 1 1 2 0 3) box4_1=(0 1 1 1 2 1 2 2 0 3) box4_2=(1 0 1 1 1 2 2 0 -1 3) box4_3=(0 0 0 1 1 1 2 1 0 4)  box5_0=(0 0 1 0 1 1 1 2 0 3) box5_1=(0 1 0 2 1 1 2 1 0 3) box5_2=(1 0 1 1 1 2 2 2 -1 3) box5_3=(0 1 1 1 2 0 2 1 0 4)  box6_0=(0 1 1 0 1 1 1 2 0 3) box6_1=(0 1 1 1 1 2 2 1 0 3) box6_2=(1 0 1 1 1 2 2 1 -1 3) box6_3=(0 1 1 0 1 1 2 1 0 4)   #绘制边框 DrawBorder() {  clear  local i y x1 x2  #显示边框  echo -ne "033[1m033[32m033[42m"  ((x1 = marginLeft + 1)) #左边框x坐标  ((x2 = x1 + 2 + mapWidth * 2)) #右边框x坐标  for ((i = 0; i < mapHeight; i++))  do ((y = i + marginTop + 2))  echo -ne "033[${y};${x1}H||" #绘制左边框  echo -ne "033[${y};${x2}H||" #绘制右边框  done  ((x1 = marginTop + mapHeight + 2))  for ((i = 0; i < mapWidth + 2; i++))  do ((y = i * 2 + marginLeft + 1))  echo -ne "033[${mapTop};${y}H==" #绘制上边框  echo -ne "033[${x1};${y}H==" #绘制下边框  done echo -ne "033[0m"}  DrawBox() {  local i x y xPos yPos  yPos=${box0_0[8]}  xPos=${box0_0[9]}  echo -ne "033[1m033[35m033[45m" for ((i = 0; i < 8; i += 2))  do (( y = mapTop + 1 + ${box0_0[$i]} + yPos ))  (( x = mapLeft + 1 + 2 * (${box0_0[$i + 1]} + xPos) ))  echo -ne "033[${y};${x}H[]" done echo -ne "033[0m"}  InitDraw() {  clear #清屏  DrawBorder #绘制边框  DrawBox  while :  do sleep 1  done}  InitDraw
    78f18d0a68064fa1d9a642946037de91.png

    实现效果:

    ./testris.sh

    d2ddf6da7e2daccc211a1edb71b747f2.png
    03fbe1dbcffa48c06705c83a45fd59b3.png

    领取方式

    这份有趣的俄罗斯方块脚本怎么领取呢?

    1.请在评论区评论+点赞+转发

    2.点击关注,关注本头条号

    3.进入头条号主页面,右上角有私信功能,私信小编:俄罗斯方块

    同时希望大家多多转发分享给更多的朋友哦!

    展开全文
  • 11 轻松一刻,玩玩 shell 命令不知不觉已经更新 10 篇文章了,我相信很多人看了都觉得这太基础了吧,还需要说吗?但是再怎么基础的东西,对于新手来说都是需要一步一步慢慢学习的,所以我前面 10 篇文章可谓是手把手...

    408c02a25981d91e935b9ee4ec7781ef.png

    11 轻松一刻,玩玩 shell 命令

    不知不觉已经更新 10 篇文章了,我相信很多人看了都觉得这太基础了吧,还需要说吗?但是再怎么基础的东西,对于新手来说都是需要一步一步慢慢学习的,所以我前面 10 篇文章可谓是手把手教你从安装 Ubuntu 系统,到简单的使用。到了现在,我相信有的同学已经觉得无聊死了,已经放弃了,又不能玩游戏,又没有什么特别的地方,非要说有,那就是超级的不人性化,不好用。而有的同学应该对 Linux 系统充满了好奇,觉得做什么都需要自己动手实践了,如果使用命令行和系统交互的话,就连切换文件夹,复制文件等都需要自己动手敲命令,再也不像 Windows 上那样,点点鼠标了。其实 Ubuntu 上这些基本的操作也是可以通过点击鼠标完成的。

    对于没有坚持下来的同学,我想对你说的是,你不适合学习使用 Linux 系统,太折腾了;对于坚持下来的同学,我要祝贺你,你已经站在 Linux 的门口张望了,正在探索门里面有什么宝藏;对于已经熟悉 Linux 系统的老手们,我想对你们说的是,我的目的是带新手入门,所以觉得我文章写得太简单的,你不看就是了。

    为了提高大家的兴趣,今天我介绍一个好玩的 shell 命令,其实它也是一款小软件,不过只能在命令行里面运行罢了。好了,废话不多说,现在看看效果图。

    de1fcf33a4e857bf4597a7f39e3139aa.gif

    上面的动图演示了 sl 这个小软件的安装和使用过程,也就是在终端页面上跑过一个小火车,是不是很好玩。别和 ls 命令搞混淆了哦,还有有人可能会问,为什么我在 sudo apt install ls 这条命令输入的时候这么快,其实很简单啦,先向我一样,鼠标选中,然后按鼠标中建就可以了。Linux 其实是可以玩游戏的,如果大家感兴趣,我后面可以给大家演示怎么在终端界面上 玩 2048 等小游戏。一定会别有一番风味的。

    好了,今天工作比较忙,所以没有给大家介绍实用的技术,就介绍这个小软件,一起开心一下吧。

    欢迎关注微信公众号:Linux 漫游之旅
    展开全文
  • 玩个石头剪刀布的小游戏吧,“I WANT PLAY A GAME” #!/bin/bash a=$[$RANDOM%3+1] read -p "输入1、2、3。1是剪刀,2是石头,3是布:" r if [ $a -eq 1 ];then if [ $r -eq 1 ] then echo "电脑出的剪刀,打成平手...

    玩个石头剪刀布的小游戏吧,“I WANT PLAY A GAME”

    #!/bin/bash
    a=$[$RANDOM%3+1]
    read -p "输入1、2、3。1是剪刀,2是石头,3是布:" r
    
    if [ $a -eq 1 ];then
    if [ $r -eq 1 ]
    then
    echo "电脑出的剪刀,打成平手"
    elif [ $r -eq 2 ];then
    echo "电脑出的剪刀,你赢了"
    else
    echo "电脑出的剪刀,你输了"
    fi
    fi
    
    
    if [ $a -eq 2 ];then
    if [ $r -eq 2 ]
    then
    echo "电脑出的石头,打成平手"
    elif [ $r -eq 3 ];then
    echo "电脑出的石头,你赢了"
    else
    echo "电脑出的石头,你输了"
    fi
    fi
    
    
    if [ $a -eq 3 ];then
    if [ $r -eq 3 ]
    then
    echo "电脑出的布,打成平手"
    elif [ $r -eq 1 ];then
    echo "电脑出的石头,你赢了"
    else
    echo "电脑出的剪刀,你输了"
    fi
    fi
    
    

    验证一下

    [root@localhost opt]# ./hardgame.sh 
    输入1231是剪刀,2是石头,3是布:1
    电脑出的石头,你赢了
    [root@localhost opt]# ./hardgame.sh 
    输入1231是剪刀,2是石头,3是布:2
    电脑出的石头,打成平手
    [root@localhost opt]# ./hardgame.sh 
    输入1231是剪刀,2是石头,3是布:3
    电脑出的布,打成平手
    
    
    展开全文
  • shell写的2048小游戏

    2018-04-28 14:30:15
    shell写的2048小游戏 支持多平台shell写的2048小游戏shell写的2048小游戏
  • shell之2048小游戏.zip

    2021-01-23 19:47:56
    Linux操作系统下,Shell语言编写2048小游戏
  • 主要为大家详细介绍了shell实现猜数字小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 小游戏 随机数猜测 一个较为简单的小游戏,使用shell书写

    小游戏

    随机数猜测

    #!/bin/bash
    # 使用内置变量生成随机数
    random=$(expr $RANDOM % 100)
    # 计数器
    count=0
    # 循环_死循环
    while true
    do
            # 从键盘输入
            read -p "输入您猜想的数字:" guess
            # 使用内置计算工具进行计数相加
    		let count++
    		# 开始判断 随机数是否等于猜想数
            if [ $guess -eq $random ]; then
    				# 猜对了进行输出
                    echo "数字猜对了,数字为$random"
                    # 输出猜测次数
    				echo "猜了 $count 次"
    				# 结束循环
                    exit 0
    		# 第二次判断 随机数是比猜想数大还是小并输出
            elif [ $guess -gt $random ];then
                    echo " 数字高了"
            else
                    echo "数字低了"
    
            fi
    done
    

    $RANDOM 命令
    一种较为简单易用的随机函数
    使用方法:
    $(expr $RANDOM % 100)
    100为自定义数字,表示随机数最大值

    展开全文
  • 使用Shell编写的扫雷小游戏,在虚拟机中运行通过,适合学习使用。
  • echo "游戏开始" while true do read -p "请b输入一个数: " num2 if [ $num1 -lt $num2 ]; then echo "这个数大了" elif [ $num1 -gt $num2 ]; then echo '这个数了' else echo '输入正确' break fi done done 11...
  • 主要介绍了Shell脚本实现的猜数字小游戏,本文的猜数字规则相对一般规则的猜数字可能难度要大不少,需要的朋友可以参考下
  • 首先要介绍一下,shell带有内置函数RANDOM,可以随机生成随机数,其范围为:0~32767 因此如果你想要生成一个1~100之间的数字,那么只需让结果模100加一即可,即$((RANDOM %100+1)) 完整的猜数字游戏代码如下: ...
  • Shell脚本实现俄罗斯方块小游戏(转自:http://blog.51cto.com/lizhenliang/1687612) #!/bin/bash APP_NAME="${0##*[\\/]}" APP_VERSION="1.0" #颜色定义 iSumColor=7 #颜色总数 cRed=1 #红色 cGreen=2 #绿色 ...
  • echo "这是一个猜数小游戏,可猜数字0--9" echo -e "请输入游戏次数,\n无限次游戏请输入forever,\n无限次游戏请输入forever,\n次游戏请输入n。\nn:\c" secrec_num=`expr $RANDOM % 10` read game_type if [ game_...
  • shell编程实现一些小游戏

    万次阅读 2018-08-02 10:50:32
    今天就把期间做的一些小游戏源码发上来吧 #!/bin/bash # 菜单 echo "欢迎来到虚空台,凡人,这里你可以得到匹敌世界的财富,拥有灭星的力量,只要...你能活下去" read mainmenu() #返回 {  ...
  • shell脚本实现猜数字小游戏创建脚本编写脚本运行脚本 创建脚本 # vim /root/caishuzi.sh 编写脚本 #/bin/bash sj_num=$(echo `expr $RANDOM % 100`) count=0 while : do read -p "请输入一个随机数:" num let ...
  • shell脚本猜数字小游戏要求:给用户三次机会,猜10以内的任意数字分析:10以内的随机数要用到RANDOM,循环给予用户三次机会,用if做判断是否等于RANDOM的值#脚本如下#!/bin/bash ###################### #shell脚本...
  • GreedySnake 一个用bash shell写的贪吃蛇小游戏
  • 重要变量 功能函数 退出处理 print_board generate_piece push_pieces apply_push check_moves key_react save_game和reload_game end_game 完整脚本 前言  最近在github上看到一个用bash shell实现2048小游戏的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 422
精华内容 168
关键字:

shell小游戏