Chinaunix首页 | 论坛 | 博客
  • 博客访问: 216424
  • 博文数量: 71
  • 博客积分: 481
  • 博客等级: 二等列兵
  • 技术积分: 530
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 09:07
文章分类

全部博文(71)

文章存档

2012年(71)

分类:

2012-05-06 23:17:42



刚写完的一个扫雷小游戏,编程思路很烂,但总算能玩。
历时6小时+1.5小时。
最开始是画了一个初始化的图,花了我6个小时才画完,发表于2008-7-20《类似于扫雷初始化的9X9的图》
后来食物中毒,一病不起,反而有了心思静下来想想思路。
等病好了用了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

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


阅读(794) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~