• 一个扫雷小游戏(高手请指教)


    http://bbs.chinaunix.net/thread-1223775-1-1.html

    刚写完的一个扫雷小游戏,编程思路很烂,但总算能玩。
    历时6小时+1.5小时。
    最开始是画了一个初始化的图,花了我6个小时才画完,发表于2008-7-20《类似于扫雷初始化的9X9的图》http://bbs.chinaunix.net/thread-1218190-1-1.html
    后来食物中毒,一病不起,反而有了心思静下来想想思路。
    等病好了用了1个半小时就写完了剩下的三分之二o(∩_∩)o...
    不求完美,但求是这样一个小东西,能玩就行,于是草草收场。

    玩法:
    左:h
    右:l
    上:k
    下:j
    扫雷:a

    放代码:
    1. #!/bin/bash

    2. x2=81
    3. #A=()
    4. #################################################################################
    5. now_i=0
    6. x=0
    7. y=0
    8. sum_lei=0
    9. sum_dianji=0
    10. ################################################


    11. print_lei()  {
    12. clear
    13. for((i=0;i
    14. do
    15.         if [ $((i%9)) -eq 0 ] && [ $i -ne 0 ];then
    16.                 echo
    17.         fi
    18.         if [ ${A[$i]} -ge 10 ];then
    19.                 echo -n "# "
    20.         else
    21.                 echo -n "${A[$i]} "
    22.         fi
    23. done
    24. echo
    25. }



    26. for((i=0;i
    27. do
    28.         A[$i]=$(($RANDOM%10))
    29. done


    30. for((i=0;i
    31. do
    32.         if [ ${A[$i]} -eq 9 ];then
    33.                 continue
    34.         fi
    35.         lei_num=0
    36.         for var in -10 -9 -8 -1 1 8 9 10
    37.         do
    38.                 if [ $((i+var)) -lt 0 ] || [ $((i+var)) -gt 80 ];then
    39.                         continue
    40.                 fi
    41.                 if [ $((i%9)) -eq 0 ];then
    42.                         case $var in
    43.                                 -10|-1|8)
    44.                                         continue;;
    45.                         esac
    46.                 fi
    47.                 if [ $((i%9)) -eq 8 ];then
    48.                         case $var in
    49.                                 -8|1|10)
    50.                                         continue;;
    51.                         esac
    52.                 fi
    53.                 if [ ${A[$((i+var))]} -eq 9 ];then
    54.                         ((lei_num++))
    55.                 fi
    56.         done
    57.         A[$i]=$lei_num
    58. done

    59. for((i=0;i
    60. do
    61.         if [ ${A[$i]} -eq 9 ];then
    62.                 ((sum_lei++))
    63.         fi
    64.         ((A[$i]+=10))
    65. done


    66. print_lei




    67. #####################################################################

    68. tput cup $x $y
    69. stop_out() {
    70.         if [ $x -eq -1 ];then
    71.                 x=8
    72.                 ((now_i+=81))
    73.         elif [ $x -eq 9 ];then
    74.                 x=0
    75.                 ((now_i-=81))
    76.         elif [ $y -eq -2 ];then
    77.                 y=16
    78.                 ((now_i+=9))
    79.         elif [ $y -eq 18 ];then
    80.                 y=0
    81.                 ((now_i-=9))
    82.         fi
    83. }
    84. leftmove() {
    85.         ((y-=2))
    86.         ((now_i--))
    87.         stop_out
    88.         print_lei
    89.         tput cup $x $y
    90. }
    91. rightmove() {
    92.         ((y+=2))
    93.         ((now_i++))
    94.         stop_out
    95.         print_lei
    96.         tput cup $x $y
    97. }
    98. upmove() {
    99.         ((x--))
    100.         ((now_i-=9))
    101.         stop_out
    102.         print_lei
    103.         tput cup $x $y
    104. }
    105. downmove() {
    106.         ((x++))
    107.         ((now_i+=9))
    108.         stop_out
    109.         print_lei
    110.         tput cup $x $y
    111. }
    112. dianji() {
    113.         if [ ${A[$now_i]} -eq 19 ];then
    114.                 print_lei
    115.                 echo "You failure"
    116.                 exit 0
    117.         elif [ ${A[$now_i]} -ge 10 ];then
    118.                 ((A[$now_i]-=10))
    119.                 ((sum_dianji++))
    120.         fi
    121. }
    122. success() {
    123.         ((sum=sum_lei+sum_dianji))
    124.         if [ $sum -eq 81 ];then
    125.                 print_lei
    126.                 echo "You win!"
    127.                 exit 0
    128.         fi
    129. }
    130. while [ 0 ]
    131. do
    132.         read -s -n1 fx
    133.         case $fx in
    134.         h)
    135.         leftmove;;
    136.         l)
    137.         rightmove;;
    138.         j)
    139.         downmove;;
    140.         k)
    141.         upmove;;
    142.         a)
    143.         dianji;;
    144.         esac
    145. success
    146. done

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


    <script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
    阅读(511) | 评论(0) | 转发(2) |
    给主人留下些什么吧!~~
    评论热议
  • 相关阅读:
    声明方法java实际开发中泛型使用需要注意的一些问题
    动态代理代理静态代理与动态代理
    方法返回在android手机开机后,在工程模式下的短信自注册开关默认开启
    打开关闭android如何默认打开小区广播?
    nullnullandroid Bound Services 绑定服务
    nullnullAndroid Interface Definition Language (AIDL) 接口描述语言
    nullnullContent Provider Basics 内容提供者的基本操作
    工程文件辉哥opencv学习之路【三】——opencv运行别人程序
    程序输入幸运数
    批处理相对路径51CTO自动领豆(Python)
  • 原文地址:https://www.cnblogs.com/ztguang/p/12647802.html
Copyright © 2020-2023  润新知