猜数小游戏
Tofloor
poster avatar
老陌
deepin
2018-08-27 05:10
Author
老陌有一段时间没发帖子了,最近迎接省检,天天加班干活,学习的时间大大减少了...
不过老陌还是偶尔抽出一段时间学习一小会儿。 今天学习了循环,费了九牛二虎之力做了一个猜数小游戏,作为练习。

不要见笑。

  1. #!/bin/bash

  2. TRUE=1

  3. echo "系统正在想一个数..."
  4. rand=$[$RANDOM % 100 + 1]
  5. sleep 1
  6. echo "已经想好了,请大虾开始猜吧"

  7. count=0

  8. while [ $TRUE ]; do
  9.     read -p "请猜(1-100):" v
  10.     if [ -z "$v" -o -n "$(echo $v | sed 's/[0-9]//g')" ]; then
  11.         echo "输入非法!!请输入1-100之间的一个数"
  12.         continue
  13.     fi

  14.     count=$[$count+1]

  15.     if [ "$v" -eq "$rand" ]; then
  16.         echo "恭喜猜对了"
  17.         echo "您一共猜了$count次"
  18.         exit 0
  19.     elif [ "$v" -gt "$rand" ]; then
  20.         echo "太大了"
  21.     else
  22.         echo "太小了"
  23.     fi

  24. done
Copy the Code


测试:




Reply Favorite View the author
All Replies
avatar
liuguangjingshang
deepin
2018-08-27 05:30
#1
老陌加油,你是我们的榜样
Reply View the author
avatar
187******69
deepin
2018-08-27 05:32
#2
一起学习,最近也在看 shell 的书。
Reply View the author
avatar
whoam1
deepin
2018-08-27 05:50
#3
厉害,学习的榜样
Reply View the author
avatar
老陌
deepin
2018-08-27 14:43
#4
https://bbs.deepin.org/post/167936
老陌加油,你是我们的榜样

就是瞎学,学着玩的。
Reply View the author
avatar
老陌
deepin
2018-08-27 14:43
#5
https://bbs.deepin.org/post/167936
一起学习,最近也在看 shell 的书。

我先粗线条走一遍,先了解个大概。
Reply View the author
avatar
老陌
deepin
2018-08-27 14:44
#6
https://bbs.deepin.org/post/167936
厉害,学习的榜样

和你没法比,你都是程序员了,我简单的shell,门还没入。
Reply View the author
avatar
海天鹰
deepin
2018-08-27 16:14
#7
这个经典入门不错
Reply View the author
avatar
Feelup
deepin
2018-08-27 17:07
#8
哇,真厉害,这个程序我之前刚开始写的时候踩了好多坑。现在看楼主写得确实不错,比我当时的强太多了
Reply View the author
avatar
158******41
deepin
2018-08-27 17:28
#9
我想在成功猜出一个数后,按某键重新开始猜数字,或者按其他键退出终端。

需要怎么改楼主的代码?
Reply View the author
avatar
21wmd
deepin
2018-08-27 19:28
#10
老哥玩的越来越溜了
Reply View the author
avatar
central_1
deepin
2018-08-27 19:59
#11
好厉害,顶一个,话说你看的是哪本书哇?
Reply View the author
avatar
许自强
deepin
2018-08-27 21:02
#12
呱唧呱唧
Reply View the author
avatar
y***8@gmail.com
deepin
2018-08-27 21:15
#13
这个游戏好经典啊 哈哈哈
Reply View the author
avatar
ritter
deepin
2018-08-28 01:14
#14
楼主是浮躁社会中的一股清流。
Reply View the author
avatar
158******41
deepin
2018-08-29 19:45
#15
  1. #!/bin/bash

  2. TRUE=1
  3. guessDone=1


  4. while [ $TRUE ]; do
  5.     if [ "$guessDone" -eq 1 ]; then
  6.         read -p "开始猜数字?是1/否0: " v
  7.         if [ "$v" -eq 1 ]; then
  8.                 count=0
  9.                 echo "系统正在想一个数..."
  10.                 rand=$[$RANDOM % 100 + 1]
  11.                 sleep 1
  12.                 echo "已经想好了,请大虾开始猜吧"
  13.                 guessDone=0
  14.         else
  15.                 exit 0
  16.         fi
  17.     fi
  18.             

  19.     read -p "请猜(1-100):" v
  20.     if [ -z "$v" -o -n "$(echo $v | sed 's/[0-9]//g')" ]; then
  21.         echo "输入非法!!请输入1-100之间的一个数"
  22.         continue
  23.     fi

  24.     count=$[$count+1]

  25.     if [ "$v" -eq "$rand" ]; then
  26.         echo "恭喜猜对了"
  27.         echo "您一共猜了$count次"
  28.         guessDone=1
  29.     elif [ "$v" -gt "$rand" ]; then
  30.         echo "太大了"
  31.     else
  32.         echo "太小了"
  33.     fi

  34. done
Copy the Code

感谢楼主的引导,我在runoob找到了linux shell编程的教程,经过一番学习,成功为这个小游戏增加了“再玩一次”的交互功能。
Reply View the author
avatar
老陌
deepin
2018-08-29 23:58
#16
https://bbs.deepin.org/post/167936
感谢楼主的引导,我在runoob找到了linux shell编程的教程,经过一番学习,成功为这个小游戏增加了“再玩一 ...

放出来学习一下。
Reply View the author