hp39gs吧 关注:899贴子:3,324

HP39gs开源游戏贴

只看楼主收藏回复

分享一些用HP-BASIC编写的游戏,开放源代码。


IP属地:福建1楼2017-09-03 02:39回复
    HAHA.
    简介:这个程序给了你的计算器一个嘲笑你的机会。
    来源:Alex Seifert hpcalc
    源码:
    HP39AscD 4 HaHa0\|>A:
    DO
    A+1\|>A:
    DISP A;"Ha Ha Ha Ha Ha Ha Ha":
    UNTIL A==2000
    END:
    ERASE:
    DISP 1; "You got laughed at ":
    DISP 2;A*7 " times by your":
    DISP 3;"own calculator!":
    DISP 4;"That's pitiful!":
    FREEZE:
    将程序命名为“HaHa0000.000”,拷进计算器中即可使用,不然手工抄进计算器也是可以的。


    IP属地:福建2楼2017-09-03 03:05
    回复
      stock master
      简介:一个简易的炒股游戏。
      来源:Alex seifert hpcalc
      源码:
      HP39AscD 12 Stock Master
      500\|>P:
      1\|>O:
      0\|>M:
      0\|>L:
      0\|>K:
      0\|>I:
      RANDSEED(Time):
      FLOOR(RANDOM*40)+80\|>Z:
      FLOOR(RANDOM*40)+80\|>Y:
      FLOOR(RANDOM*40)+80\|>X:
      FLOOR(RANDOM*40)+80\|>J:
      DO
      1\|>A:CHOOSE A;
      "Stock Master";
      "Stock Info.";
      "Buy Stocks";
      "Sell Stocks";
      "Information";
      "Net Worth";
      "Next Year";
      "Quit":
      CASE
      IF A==1
      THEN DO
      1\|>B:CHOOSE B;
      "Stock Info.";
      "AOL $"Z;
      "MSFT $"Y;
      "IBM $"X;
      "EXXN $"J;
      "Main Menu":
      CASE
      IF B==1
      THEN MSGBOX "America Online:
      $"Z" per share
      $0 dividend":
      END
      IF B==2
      THEN MSGBOX "Microsoft:
      $"Y" per share
      $6 dividend":
      END
      IF B==3
      THEN MSGBOX "IBM:
      $"X" per share
      $2 dividend":
      END
      IF B==4
      THEN MSGBOX "Exxon:
      $"J" per share
      $1 dividend":
      END
      END
      UNTIL B==5
      END
      END
      IF A==2
      THEN DO
      1\|>C:CHOOSE C;
      "BUY STOCK";
      "AOL $"Z;
      "MSFT $"Y;
      "IBM $"X;
      "EXXN $"J;
      "Main Menu":
      CASE
      IF C==1
      THEN
      IF P<Z
      THEN MSGBOX "You don't have enough money to buy AOL!":
      END:
      INPUT W; "Number of Shares";
      "Shares *10";
      "Price Per Share=$"Z;1:ERASE:
      Z*W\|>Q:
      IF P<Q
      THEN MSGBOX "Can't afford to buy "W" shares of AOL!":
      ELSE P-Q\|>P:
      M+W\|>M:
      END
      END
      IF C==2
      THEN
      IF P<Y
      THEN MSGBOX "You don't have enough money to buy MSFT!":
      END:
      INPUT V; "Number of Shares";
      "Shares *10";
      "Price Per Share=$"Y;1:ERASE:
      Y*V\|>Q:
      IF P<Q
      THEN MSGBOX "Can't afford to buy "V" shares of MSFT!":
      ELSE P-Q\|>P:
      L+V\|>L:
      END
      END
      IF C==3
      THEN
      IF P<X
      THEN MSGBOX "You don't have enough money to buy IBM!":
      END:
      INPUT U; "Number of Shares";
      "Shares *10";
      "Price Per Share=$"X;1:ERASE:
      X*U\|>Q:
      IF P<Q
      THEN MSGBOX "Can't afford to buy "U" shares of IBM!":
      ELSE P-Q\|>P:
      K+U\|>K:
      END
      END
      IF C==4
      THEN
      IF P<J
      THEN MSGBOX "You don't have enough money to buy EXXN!":
      END:
      INPUT H; "Number of Shares";
      "Shares *10";
      "Price Per Share=$"J;1:ERASE:
      J*H\|>Q:
      IF P<Q
      THEN MSGBOX "Can't afford to buy "H" shares of EXXN!":
      ELSE P-Q\|>P:
      I+H\|>I:
      END
      END
      END
      UNTIL C==5
      END
      END
      IF A==3
      THEN DO
      1\|>D:CHOOSE D;
      "SELL STOCK";
      "AOL $"Z;
      "MSFT $"Y;
      "IBM $"X;
      "EXXN $"J;
      "Main Menu":
      CASE
      IF D==1
      THEN INPUT T; "Number of Shares";
      "Shares *10";
      "Price Per Share=$"Z;1:ERASE:
      IF M<T
      THEN MSGBOX "You don't have "T" shares of AOL to sell!":
      ELSE M-T\|>M:
      T*Z\|>Q:
      Q+P\|>P:
      END
      END
      IF D==2
      THEN INPUT S; "Number of Shares";
      "Shares *10";
      "Price Per Share=$"Y;1:ERASE:
      IF L<S
      THEN MSGBOX "You don't have "S" shares of MSFT to sell!":
      ELSE L-S\|>L:
      S*Y\|>Q:
      Q+P\|>P:
      END
      END
      IF D==3
      THEN INPUT R; "Number of Shares";
      "Shares *10";
      "Price Per Share=$"X;1:ERASE:
      IF K<R
      THEN MSGBOX "You don't have "R" shares of IBM to sell!":
      ELSE K-R\|>K:
      R*X\|>Q:
      Q+P\|>P:
      END
      END
      IF D==4
      THEN INPUT G; "Number of Shares";
      "Shares *10";
      "Price Per Share=$"J;1:ERASE:
      IF I<G
      THEN MSGBOX "You don't have "G" shares of EXXN to sell!":
      ELSE I-G\|>I:
      G*J\|>Q:
      Q+P\|>P:
      END
      END
      END
      UNTIL D==5
      END
      END
      IF A==4
      THEN MSGBOX "Year "O" $"P"
      AOL="M"0 Shares
      MSFT="L"0 Shares
      IBM="K"0 Shares
      EXXN="I"0 Shares":
      END
      IF A==5
      THEN M*Z\|>Q:
      L*Y\|>F:
      K*X\|>E:
      Q+F+E+P\|>N:
      MSGBOX "Net Worth:
      $"N:
      END
      IF A==6
      THEN O+1\|>O:
      Z+FLOOR(RANDOM*30)+FLOOR(RANDOM*30)-20\|>Z:
      Y+FLOOR(RANDOM*10)-2\|>Y:
      X+FLOOR(RANDOM*30)-10\|>X:
      J+FLOOR(RANDOM*40)-15\|>J:
      IF Z\>=150
      THEN M*2\|>M:
      FLOOR(Z/2)\|>Z:
      END:
      IF Y\>=150
      THEN L*2\|>L:
      FLOOR(Y/2)\|>Y:
      END:
      IF X\>=150
      THEN K*2\|>K:
      FLOOR(X/2)\|>X:
      END:
      IF J\>=150
      THEN I*2\|>I:
      FLOOR(J/2)\|>J:
      END:
      IF Z\<=0
      THEN 0\|>M:
      END:
      IF Y\<=0
      THEN 0\|>L:
      END:
      IF X\<=0
      THEN 0\|>K:
      END:
      IF J\<=0
      THEN 0\|>I:
      END:
      IF Y\>=50
      THEN
      6*L\|>Q:
      Q+P\|>P:
      END:
      IF X\>=50
      THEN
      2*K\|>Q:
      Q+P\|>P:
      END:
      IF J\>=50
      THEN
      1*I\|>Q:
      Q+P\|>P:
      END:
      IF Z==0
      THEN MSGBOX "AOL went bankrupt! All shares have been lost!":
      0\|>M:
      END:
      IF Y==0
      THEN MSGBOX "MSFT went bankrupt! All shares have been lost!":
      0\|>L:
      END:
      IF X==0
      THEN MSGBOX "IBM went bankrupt! All shares have been lost!":
      0\|>K:
      END:
      IF J==0
      THEN MSGBOX "EXXN went bankrupt! All shares have been lost!":
      0\|>I:
      END:
      P+M+L+K+I\|>Q:
      IF Q==0
      THEN MSGBOX "You went bankrupt!
      GAME OVER!!":
      500\|>P:
      ELSE
      MSGBOX "You have $"P:
      END
      END
      IF A==7
      THEN DO
      1\|>E:CHOOSE E;
      "Are You Sure?";
      "No";
      "Yes":
      CASE
      IF E==1
      THEN 2\|>E:
      0\|>A:
      END
      IF E==2
      THEN
      ADDROW M5;[P];1:
      MSGBOX "Stock Master
      by Alex Seifert
      basford@4dv.net":
      END
      END
      UNTIL E==2
      END
      END
      END
      UNTIL A==7
      END
      代码很长,建议直接copy下来,将文件名写为"STOCKMAS.000"并导入计算器。


      IP属地:福建3楼2017-09-03 03:26
      收起回复
        Decomposition
        简介:一套运行于便携式通用智能集成式运算及存储设备的高级线性分解正实数非合数因数人机交互语言集合。
        来源:柜里猫
        源码:
        HP39AscD 13
        CLRVAR L1:
        0 \|> D:
        2 \|> B:
        PROMPT A:
        A \|> C:
        A^(1/2) \|> E:(这里的意思是根号A-> E)
        ERASE:
        DISP 1;A:
        WHILE B <= E
        REPEAT
        IF INT(A/B)-A/B
        THEN
        B+1\|>B:
        DISP 2;B:
        ELSE
        A/B\|>A:
        A^(1/2)\|>E:
        CONCAT({B},L1)\|>L1:
        END:
        END:
        IF A≠1
        THEN
        CONCAT({A},L1)\|>L1:
        END:
        MSGBOX L1:
        作为对HP39gs欠缺功能的补充,这个程序跑得还是很快的。


        IP属地:福建5楼2017-09-03 04:09
        收起回复
          guess
          简介:猜数游戏。随机一个数,让玩家猜。如果猜大了或者猜小了,提示玩家。猜中了可以获得精美昂贵的礼品(玩家自己筹备)。
          来源:柜里猫
          源码:
          HP39AscD 5 guess
          0\|>B:
          0\|>D:
          INT(RANDOM*100)\|>C:
          WHILE B≠1
          REPEAT
          D + 1\|> D:
          PROMPT A:
          IF A > C:
          THEN
          MSGBOX "TOO BIG":
          ELSE
          IF A < C
          THEN
          MSGBOX "TOO SMALL":
          ELSE
          MSGBOX "YOU GOT IT! " D " STEPS":
          1\|> B:
          END:
          END:
          简介抄了教程的,不过真心觉得猜数和零食是绝配。


          IP属地:福建6楼2017-09-03 04:19
          回复
            piano
            简介:简化版的钢琴,音效和音域没有一个一个音写的那种好,但是优点就是简单。
            来源:柜里猫
            源码:
            HP39AscD 5 piano
            0\|>B:
            1\|>A:
            WHILE B≠41.1
            REPEAT
            GETKEY B:
            IF B - INT(B/10)*10≠1.1
            THEN
            BEEP INT(B²/5);.1*A:
            END:
            ELSE
            ABS(INT(B/10-4))\|>A:
            END:
            END:
            有些地方的符号可能和计算器的编码不同,直接拷会坏,如果坏了就只好手写啦。


            IP属地:福建7楼2017-09-03 04:29
            回复(3)
              支持


              IP属地:广东来自Android客户端8楼2017-09-03 15:10
              回复
                支持


                IP属地:北京10楼2017-10-14 13:42
                回复
                  想问网上的游戏是用什么工具编写的?


                  IP属地:广东11楼2017-11-01 13:43
                  回复(1)
                    崇拜


                    IP属地:广东来自Android客户端12楼2017-11-03 23:49
                    回复

                      这样是不是哪里不对,,.,我第一次接触图计


                      IP属地:山东13楼2017-12-19 20:18
                      收起回复
                        不错😯


                        IP属地:浙江来自iPhone客户端14楼2018-05-24 09:47
                        回复
                          呀,不好意思,在下忘记说明了,\|>就是计算器里的sto键,在电脑的文本文档里打开只会显示为 ‘\|>’
                          还有,在下消失的这段时间其实是在写一个游戏,之后会抄在HP39gs模拟器上面发出来。工期估计会很长,请大家谅解。


                          IP属地:福建15楼2018-06-17 01:44
                          回复
                            有人吗


                            IP属地:广西17楼2018-11-11 21:13
                            回复
                              没有人


                              IP属地:安徽来自Android客户端18楼2018-12-30 20:51
                              回复