主题:一个QB编的摇奖程序
次程序 需要 汉字显示 程序支持,用户存档 没加密, 代码也没优化,就是写着玩的
DECLARE SUB chushihua ()
DECLARE SUB zhanghu (huming$, jb&, jrtj)
DECLARE SUB bangzhu ()
DECLARE SUB yaojiang (duihao1$, duihao2$, pdh)
DECLARE SUB duijiang (duihao1$, duihao2$, cs%, jb1&, pdh)
DECLARE SUB xuanhao (duihao1$, duihao2$, jb&, huming$, jrtj)
DECLARE SUB shurushuzhi (dai, cd, kg, zbx, zby, pdh)
DECLARE SUB zf10 (zfdai$, cd, kg, zbx, zby, pdh)
jrtj = 5
OPEN "c:\caipiao.dat" FOR APPEND AS #8
x = LOF(8)
CLOSE #8
IF x < 4 THEN jrtj = 8
CALL zhanghu(huming$, jb&, jrtj)
caidan:
CALL chushihua
IF jrtj = 1 AND jb& < 2 OR jrtj = 4 AND jb& < 2 THEN
COLOR 6, 0: LOCATE 4, 40: PRINT "***** 游 戏 提 示 *****"
COLOR 7: LOCATE 6, 31: PRINT "你的运气也太差了!!!"
COLOR 7: LOCATE 8, 31: PRINT "----- 你帐户亏空了;游戏结束!!!"
COLOR 4: LOCATE 10, 40: PRINT "按任意键退出...."
DO
a$ = INKEY$
LOOP UNTIL a$ <> ""
jrtj = 0
GOTO quit
END IF
IF jrtj = 0 THEN GOTO quit
IF jrtj = 1 OR jrtj = 4 THEN
jjbb$ = LTRIM$(STR$(jb&))
COLOR 5: LOCATE 2, 41: PRINT SPC(30);
LOCATE 2, 41: PRINT huming$; " 的总金额:"; jjbb$
END IF
IF jrtj = 1 THEN CALL zhanghu(huming$, jb&, jrtj)
DO
wen$ = LCASE$(INKEY$)
LOOP UNTIL wen$ = "z" OR wen$ = "x" OR wen$ = "h" OR wen$ = "q"
SELECT CASE wen$
CASE "z"
jrtj = 3
CALL zhanghu(huming$, jb&, jrtj)
IF jrtj = 4 THEN
jjbb$ = LTRIM$(STR$(jb&))
COLOR 5: LOCATE 2, 41: PRINT SPC(30);
LOCATE 2, 41: PRINT huming$; " 的总金额:"; jjbb$
END IF
GOTO caidan
CASE "x"
IF jrtj <> 4 THEN
COLOR 6, 0: LOCATE 4, 40: PRINT "***** 游 戏 帮 助 *****"
COLOR 7: LOCATE 6, 31: PRINT "你没有帐户;请按 Z 键创建或载入"
COLOR 4: LOCATE 10, 40: PRINT "按任意键继续...."
DO
a$ = INKEY$
LOOP UNTIL a$ <> ""
GOTO caidan
END IF
CALL zhanghu(huming$, jb&, jrtj)
IF jrtj = 4 THEN
jjbb$ = LTRIM$(STR$(jb&))
COLOR 5: LOCATE 2, 41: PRINT SPC(30);
LOCATE 2, 41: PRINT huming$; " 的总金额:"; jjbb$
END IF
IF jrtj = 4 AND jb& < 2 THEN jrtj = 1: CALL zhanghu(huming$, jb&, jrtj)
CALL xuanhao(duihao1$, duihao$, jb&, huming$, jrtj)
GOTO caidan
CASE "h"
CALL bangzhu
GOTO caidan
CASE "q"
GOTO quit
END SELECT
quit:
OPEN "c:\lingshi.dat" FOR APPEND AS #9
CLOSE #9
KILL "c:\lingshi.dat"
SHELL "cls"
END
SUB bangzhu
COLOR 6: LOCATE 4, 40: PRINT "***** 游 戏 帮 助 *****"
COLOR 7: LOCATE 5, 31: PRINT "在游戏开始前,你必须按“Z”键创建一个用户名"
LOCATE 6, 27: PRINT "为了存放奖金;初始资金是1万;然后才可以按 X 键买你想"
LOCATE 7, 27: PRINT "要的号码,买好了会自动进入摇奖,10秒后会产生摇奖号码"
LOCATE 8, 27: PRINT "之后让你确认要不要对奖,按Y键对奖,如果按N或者ESC都"
LOCATE 9, 27: PRINT "返回主菜单了,那你就亏大了,哈哈。在对奖时,那一注号"
LOCATE 10, 27: PRINT "码中奖了都会提示你,并询问你要不要继续对奖,对奖结"
LOCATE 11, 27: PRINT "束了会累计你的金额,并打到你的帐号,呵呵,不会不会"
LOCATE 12, 27: PRINT "少你的钱拉!----------在游戏中按“ESC”返回主菜单"
LOCATE 14, 7: PRINT "在游戏中,你买多少彩票将扣除你帐户里的资金,帐户没钱了,就游戏结束了!"
LOCATE 15, 3: PRINT "中了三等奖以上都会有礼炮响,表示庆祝吧!"
LOCATE 17, 3: PRINT "奖金是这样安排的:"
LOCATE 18, 3: PRINT "特等奖 500 万元 | 一等奖 100 万元"
LOCATE 20, 3: PRINT "二等奖 5 万元 | 三等奖 0.1 万元"
LOCATE 22, 3: PRINT "四等奖 100 元 | 五等奖 10 元"
COLOR 4: LOCATE 22, 55: PRINT "按任意键返回主菜单....."
DO
a$ = INKEY$
LOOP UNTIL a$ <> ""
END SUB
SUB chushihua
CLS : COLOR 10
FOR i = 3 TO 77 STEP 2: LOCATE 3, i: PRINT "━": LOCATE 23, i: PRINT "━": LOCATE 13, i: PRINT "━": LOCATE 1, i: PRINT "━": NEXT
FOR i = 1 TO 22: LOCATE i, 1: PRINT "┃": LOCATE i, 79: PRINT "┃": NEXT
FOR i = 4 TO 12: LOCATE i, 25: PRINT "┃": NEXT
LOCATE 1, 1: PRINT "┏": LOCATE 1, 79: PRINT "┓"
LOCATE 23, 1: PRINT "┗": LOCATE 23, 79: PRINT "┛"
LOCATE 3, 25: PRINT "┳": LOCATE 13, 25: PRINT "┻"
LOCATE 1, 39: PRINT "┳": LOCATE 3, 39: PRINT "┻": LOCATE 2, 39: PRINT "┃"
LOCATE 13, 1: PRINT "┣": LOCATE 13, 79: PRINT "┫": LOCATE 3, 1: PRINT "┣": LOCATE 3, 79: PRINT "┫"
COLOR 4: LOCATE 2, 4: PRINT "*** 中国体育彩票 ***"
COLOR 6: LOCATE 4, 9: PRINT "主 菜 单"
COLOR 4: LOCATE 6, 7: PRINT "Z "; : COLOR 5: PRINT "帐户管理"
COLOR 4: LOCATE 8, 7: PRINT "X "; : COLOR 5: PRINT "选 号"
COLOR 4: LOCATE 10, 7: PRINT "H "; : COLOR 5: PRINT "游戏帮助"
COLOR 4: LOCATE 12, 7: PRINT "Q "; : COLOR 5: PRINT "退 出"
END SUB
SUB duijiang (duihao1$, duihao2$, cs%, jb1&, pdh)
FOR q = 14 TO 22: LOCATE q, 3: PRINT SPC(57); : NEXT q
COLOR 6: LOCATE 14, 30: PRINT "***** 对 奖 区 *****"
cc$ = ""
hao1$ = duihao1$
hao2$ = duihao2$
ii = 1
ce:
xx$ = MID$(hao1$, ii, 1)
yy$ = MID$(hao2$, ii, 1)
IF xx$ = yy$ THEN xx$ = "1": GOTO ce2
xx$ = "0"
ce2:
zz$ = xx$
cc$ = cc$ + zz$
ii = ii + 1
IF ii > 7 THEN GOTO ce3
GOTO ce
ce3:
c1$ = "1111111"
c2$ = "111111"
c3$ = "11111"
c4$ = "1111"
c5$ = "111"
c6$ = "11"
LOCATE 17, 3: PRINT SPC(57);
c1 = INSTR(1, cc$, c1$)
IF c1 > 0 THEN COLOR 6: LOCATE 17, 24: PRINT "中了特等奖 奖金 500 万元": jinbi = 5000000: GOTO lj
c2 = INSTR(1, cc$, c2$)
IF c2 > 0 THEN COLOR 6: LOCATE 17, 24: PRINT "中了一等奖 奖金 10 万元": jinbi = 100000: GOTO lj
c3 = INSTR(1, cc$, c3$)
IF c3 > 0 THEN COLOR 6: LOCATE 17, 24: PRINT "中了二等奖 奖金 5 万元": jinbi = 50000: GOTO lj
c4 = INSTR(1, cc$, c4$)
IF c4 > 0 THEN COLOR 6: LOCATE 17, 24: PRINT "中了三等奖 奖金 1000 元": jinbi = 1000: GOTO lj
c5 = INSTR(1, cc$, c5$)
IF c5 > 0 THEN COLOR 6: LOCATE 17, 24: PRINT "中了四等奖 奖金 100 元": jinbi = 100: GOTO lj
c6 = INSTR(1, cc$, c6$)
IF c6 > 0 THEN COLOR 6: LOCATE 17, 24: PRINT "中了五等奖 奖金 10 元": jinbi = 10: GOTO lj
GOTO jixu
lj:
jb1& = jb1& + jinbi
LOCATE 15, 3: PRINT "恭喜!恭喜!"
LOCATE 17, 3: PRINT "你第"; cs%; "注:"; " "; duihao2$
LOCATE 20, 3: PRINT "继续对奖吗?“N”返回主菜单 (Y,N):"
DO
wen$ = LCASE$(INPUT$(1))
IF wen$ <> "y" AND wen$ <> "n" AND wen$ <> CHR$(27) THEN PLAY "b15g20b20"
LOOP UNTIL wen$ = "y" OR wen$ = "n" OR wen$ = CHR$(27)
pdh = 0
IF wen$ = "n" OR wen$ = CHR$(27) THEN pdh = 1
jixu:
FOR q = 14 TO 22: LOCATE q, 3: PRINT SPC(57); : NEXT q
END SUB
SUB shurushuzhi (dai, cd, kg, zbx, zby, pdh)
pdh = 0
changdu = cd
x = zbx
y = zby
N = 0
b$ = ""
DO
IF LEN(b$) >= changdu THEN b$ = LEFT$(b$, changdu)
LOCATE x, y: PRINT SPC(N + 1);
LOCATE x, y: PRINT b$; "_"
DO
a$ = INPUT$(1)
IF a$ <> CHR$(27) AND a$ <> CHR$(13) AND a$ <> CHR$(8) AND a$ <> "0" AND a$ <> "1" AND a$ <> "2" AND a$ <> "3" AND a$ <> "4" AND a$ <> "5" AND a$ <> "6" AND a$ <> "7" AND a$ <> "8" AND a$ <> "9" THEN
PLAY "b15g20b20"
END IF
qaz% = 0
IF a$ = CHR$(27) OR a$ = CHR$(13) OR a$ = "0" OR a$ = "1" OR a$ = "2" OR a$ = "3" OR a$ = "4" OR a$ = "5" THEN qaz% = 1
IF a$ = "6" OR a$ = "7" OR a$ = "8" OR a$ = "9" OR a$ = CHR$(8) THEN qaz% = 1
LOOP UNTIL qaz% = 1
IF a$ = CHR$(27) THEN pdh = 1: EXIT DO
IF a$ <> CHR$(8) THEN
IF a$ = CHR$(13) AND kg = 1 THEN EXIT DO
IF a$ = CHR$(13) THEN GOTO ok1
b$ = b$ + a$
END IF
IF a$ = CHR$(8) THEN
N = LEN(b$)
IF N < 1 THEN N = 1
b$ = LEFT$(b$, N - 1)
END IF
ok1:
LOOP UNTIL a$ = CHR$(13) AND LEN(b$) = changdu
dai = VAL(b$)
END SUB
SUB xuanhao (duihao1$, duihao2$, jb&, huming$, jrtj)
jrtj = 1
COLOR 6: LOCATE 14, 30: PRINT "***** 选 号 区 *****"
x = 15
y = 1
LOCATE 15, 3: PRINT "你每期最多能买99注!"
LOCATE 16, 3: PRINT SPC(40);
LOCATE 16, 3: PRINT "你想买几注:": cd = 2: zbx = 16: zby = 15: kg = 1
CALL shurushuzhi(dai, cd, kg, zbx, zby, pdh)
IF pdh = 1 THEN GOTO jiexu1
xh% = dai
LOCATE 17, 3: PRINT SPC(40);
LOCATE 17, 3: PRINT "你需要花"; xh% * 2; "元"
jinb = xh% * 2
jb& = jb& - jinb
jjbb$ = STR$(jb&)
COLOR 5: LOCATE 2, 41: PRINT SPC(30);
LOCATE 2, 41: PRINT huming$; " 的总金额:"; jjbb$
DIM h$(xh%)
COLOR 6: LOCATE 18, 3: PRINT "要随机选号吗?“N”自己输入!(Y,N):"
DO
wen$ = LCASE$(INPUT$(1))
IF wen$ <> "y" AND wen$ <> "n" THEN PLAY "b15g20b20"
LOOP UNTIL wen$ = "y" OR wen$ = "n"
IF wen$ = "y" THEN GOTO zidong
FOR i = 1 TO xh%
LOCATE 22, 3: PRINT SPC(40);
LOCATE 22, 3: PRINT "输入第 注彩票号码:"
LOCATE 22, 9: PRINT y
cd = 7: zbx = 22: zby = 24: kg = 2
CALL shurushuzhi(dai, cd, kg, zbx, zby, pdh)
IF pdh = 1 THEN GOTO jiexu1
haoma$ = STR$(dai)
LOCATE 21, 3
h$(i) = haoma$
LOCATE x, 60: PRINT "第 注:"; h$(i)
LOCATE x, 62: PRINT y
x = x + 1
y = y + 1
IF x > 20 THEN x = 15
NEXT i
GOTO dj
zidong:
FOR i = 1 TO xh%
cx:
x1$ = STR$(CINT(RND * 9))
x2$ = STR$(CINT(RND * 9))
x3$ = STR$(CINT(RND * 9))
x4$ = STR$(CINT(RND * 9))
x5$ = STR$(CINT(RND * 9))
x6$ = STR$(CINT(RND * 9))
x7$ = STR$(CINT(RND * 9))
xian$ = x1$ + x2$ + x3$ + x4$ + x5$ + x6$ + x7$
haoma$ = MID$(STR$(VAL(xian$)), 2)
IF LEN(haoma$) < 7 THEN GOTO cx
LOCATE 21, 3
h$(i) = haoma$
LOCATE 22, 3: PRINT "随机第 注彩票号码为:"; h$(i)
LOCATE 22, 9: PRINT y
LOCATE x, 60: PRINT "第 注:"; h$(i)
LOCATE x, 62: PRINT y
x = x + 1
y = y + 1
IF x > 20 THEN x = 15
t = TIMER
DO
LOOP UNTIL TIMER - t > .1
NEXT i
dj:
pdh = 0
CALL yaojiang(duihao1$, duihao2$, pdh)
IF pdh = 1 THEN GOTO jiexu1
FOR i = 1 TO xh%
IF pdh = 1 THEN GOTO leiji
duihao2$ = h$(i)
cs% = i
CALL duijiang(duihao1$, duihao2$, cs%, jb1&, pdh)
NEXT i
leiji:
COLOR 5
FOR i = 15 TO 18: LOCATE i, 3: PRINT SPC(50); : NEXT i
LOCATE 17, 3: PRINT "你所有选的号码核对完毕!"
LOCATE 20, 3: PRINT "你总共得到的奖金是:"; jb1&
jb& = jb& + jb1&
jjbb$ = STR$(jb&)
COLOR 4: LOCATE 22, 53: PRINT "按任意键返回主菜单....."
DO
a$ = INKEY$
LOOP UNTIL a$ <> ""
COLOR 5: LOCATE 2, 41: PRINT SPC(30);
LOCATE 2, 41: PRINT huming$; " 的总金额:"; jjbb$
jiexu1:
ERASE h$
END SUB