Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Heh, you guys know how much i resist gosubs right? Well
#1
I found my first program ever. Didn't know that loops and sub routines existed. It's pretty funny.

edit: Hey i did know what subs were, funny Tongue

Code:
DECLARE SUB Meny ()
CLS
SCREEN 12

Meny:
CALL Meny
DO

         COLOR 4: LOCATE 2, 13: PRINT ".::.cAs.::."
         COLOR 14: LOCATE 5, 3: PRINT "2 .:: Generera Personnummer ::."
         COLOR 14: LOCATE 6, 2: PRINT "3 .:: Kontrollera Personnummer ::."
         COLOR 14: LOCATE 4, 6: PRINT "1 .:: Exit this Shit ::."
         LOCATE 7, 13: INPUT "Your Choice ", choice
         SELECT CASE choice
            CASE 1
               SYSTEM
            CASE 2
               GOSUB Kalkylf
            CASE 3
               GOSUB Kalkylb
        END SELECT
LOOP



Kalkylf:

LOCATE 26, 47: INPUT Num$
  LOCATE 16, 32: PRINT "1. Man"
  LOCATE 17, 32: PRINT "2. Kvinna"
  LOCATE 15, 32: INPUT "K”n ", K

RANDOMIZE TIMER

A$ = MID$(Num$, 1, 1)
B$ = MID$(Num$, 2, 1)
C$ = MID$(Num$, 3, 1)
D$ = MID$(Num$, 4, 1)
E$ = MID$(Num$, 5, 1)
F$ = MID$(Num$, 6, 1)

G = INT(RND * 9) + 1
H = INT(RND * 9) + 1

SELECT CASE K
   CASE 1
      GOTO Man
   CASE 2
      GOTO Kvinna
END SELECT


Man:

D1 = INT(RND * 5) + 1

SELECT CASE D1
   CASE 1
      I = 1
   CASE 2
      I = 3
   CASE 3
      I = 5
   CASE 4
      I = 7
   CASE 5
      I = 9
END SELECT

GOTO Multi

Kvinna:

D1 = INT(RND * 5) + 1

SELECT CASE D1
   CASE 1
      I = 2
   CASE 2
      I = 4
   CASE 3
      I = 5
   CASE 4
      I = 6
   CASE 5
      I = 8
END SELECT

GOTO Multi

Multi:

n1 = 2 * VAL(A$)
n2 = 1 * VAL(B$)
n3 = 2 * VAL(C$)
n4 = 1 * VAL(D$)
n5 = 2 * VAL(E$)
n6 = 1 * VAL(F$)
n7 = 2 * G 'VAL(G$)
n8 = 1 * H 'VAL(H$)
n9 = 2 * I 'VAL(I$)

      
n1$ = STR$(n1)
n2$ = STR$(n2)
n3$ = STR$(n3)
n4$ = STR$(n4)
n5$ = STR$(n5)
n6$ = STR$(n6)
n7$ = STR$(n7)
n8$ = STR$(n8)
n9$ = STR$(n9)


b1$ = MID$(n1$, 2, 1)
b2$ = MID$(n1$, 3, 1)
b3$ = MID$(n2$, 2, 1)
b4$ = MID$(n2$, 3, 1)
b5$ = MID$(n3$, 2, 1)
b6$ = MID$(n3$, 3, 1)
b7$ = MID$(n4$, 2, 1)
b8$ = MID$(n4$, 3, 1)
b9$ = MID$(n5$, 2, 1)
b10$ = MID$(n5$, 3, 1)
b11$ = MID$(n6$, 2, 1)
b12$ = MID$(n6$, 3, 1)
b13$ = MID$(n7$, 2, 1)
b14$ = MID$(n7$, 3, 1)
b15$ = MID$(n8$, 2, 1)
b16$ = MID$(n8$, 3, 1)
b17$ = MID$(n9$, 2, 1)
b18$ = MID$(n9$, 3, 1)


b1 = VAL(b1$)
b2 = VAL(b2$)
b3 = VAL(b3$)
b4 = VAL(b4$)
b5 = VAL(b5$)
b6 = VAL(b6$)
b7 = VAL(b7$)
b8 = VAL(b8$)
b9 = VAL(b9$)
b10 = VAL(b10$)
b11 = VAL(b11$)
b12 = VAL(b12$)
b13 = VAL(b13$)
b14 = VAL(b14$)
b15 = VAL(b15$)
b16 = VAL(b16$)
b17 = VAL(b17$)
b18 = VAL(b18$)


J = b1 + b2 + b3 + b4 + b6 + b7 + b8 + b9 + b10 + b11 + b12 + b13 + b14 + b15 + b16 + b17 + b18


SELECT CASE J
   CASE 0 TO 9
      GOTO T10

   CASE 10 TO 19
      GOTO T20

   CASE 20 TO 29
      GOTO T30

   CASE 30 TO 39
      GOTO T40

   CASE 40 TO 49
      GOTO T50

   CASE 50 TO 59
      GOTO T60

   CASE 60 TO 69
      GOTO T70

   CASE 70 TO 79
      GOTO T80

   CASE 80 TO 89
      GOTO T90

   CASE 90 TO 99
      GOTO T100

   CASE 100 TO 109
      GOTO T110
END SELECT
                                            

T10:
T = 10
GOTO Prin:

T20:
T = 20
GOTO Prin:

T30:
T = 30
GOTO Prin:

T40:
T = 40
GOTO Prin:

T50:
T = 50
GOTO Prin:

T60:
T = 60
GOTO Prin:

T70:
T = 70
GOTO Prin:

T80:
T = 80
GOTO Prin:

T90:
T = 90
GOTO Prin:

T100:
T = 100
GOTO Prin:

T110:
T = 110
GOTO Prin:


Prin:
J = T - J

G$ = STR$(G)
H$ = STR$(H)
I$ = STR$(I)
J$ = STR$(J)
G$ = LTRIM$(G$)
H$ = LTRIM$(H$)
I$ = LTRIM$(I$)
J$ = LTRIM$(J$)


LOCATE 26, 47: PRINT A$ + B$ + C$ + D$ + E$ + F$; "-"; G$ + H$ + I$ + J$
SLEEP
GOTO Meny

Kalkylb:

LOCATE 26, 47: INPUT Num$

A$ = MID$(Num$, 1, 1)
B$ = MID$(Num$, 2, 1)
C$ = MID$(Num$, 3, 1)
D$ = MID$(Num$, 4, 1)
E$ = MID$(Num$, 5, 1)
F$ = MID$(Num$, 6, 1)
G$ = MID$(Num$, 7, 1)
H$ = MID$(Num$, 8, 1)
I$ = MID$(Num$, 9, 1)
S$ = MID$(Num$, 10, 1)



n1 = 2 * VAL(A$)
n2 = 1 * VAL(B$)
n3 = 2 * VAL(C$)
n4 = 1 * VAL(D$)
n5 = 2 * VAL(E$)
n6 = 1 * VAL(F$)
n7 = 2 * VAL(G$)
n8 = 1 * VAL(H$)
n9 = 2 * VAL(I$)

    
n1$ = STR$(n1)
n2$ = STR$(n2)
n3$ = STR$(n3)
n4$ = STR$(n4)
n5$ = STR$(n5)
n6$ = STR$(n6)
n7$ = STR$(n7)
n8$ = STR$(n8)
n9$ = STR$(n9)


b1$ = MID$(n1$, 2, 1)
b2$ = MID$(n1$, 3, 1)
b3$ = MID$(n2$, 2, 1)
b4$ = MID$(n2$, 3, 1)
b5$ = MID$(n3$, 2, 1)
b6$ = MID$(n3$, 3, 1)
b7$ = MID$(n4$, 2, 1)
b8$ = MID$(n4$, 3, 1)
b9$ = MID$(n5$, 2, 1)
b10$ = MID$(n5$, 3, 1)
b11$ = MID$(n6$, 2, 1)
b12$ = MID$(n6$, 3, 1)
b13$ = MID$(n7$, 2, 1)
b14$ = MID$(n7$, 3, 1)
b15$ = MID$(n8$, 2, 1)
b16$ = MID$(n8$, 3, 1)
b17$ = MID$(n9$, 2, 1)
b18$ = MID$(n9$, 3, 1)


b1 = VAL(b1$)
b2 = VAL(b2$)
b3 = VAL(b3$)
b4 = VAL(b4$)
b5 = VAL(b5$)
b6 = VAL(b6$)
b7 = VAL(b7$)
b8 = VAL(b8$)
b9 = VAL(b9$)
b10 = VAL(b10$)
b11 = VAL(b11$)
b12 = VAL(b12$)
b13 = VAL(b13$)
b14 = VAL(b14$)
b15 = VAL(b15$)
b16 = VAL(b16$)
b17 = VAL(b17$)
b18 = VAL(b18$)


J = b1 + b2 + b3 + b4 + b6 + b7 + b8 + b9 + b10 + b11 + b12 + b13 + b14 + b15 + b16 + b17 + b18


SELECT CASE J
   CASE 0 TO 9
      GOTO A10

   CASE 10 TO 19
      GOTO A20

   CASE 20 TO 29
      GOTO A30

   CASE 30 TO 39
      GOTO A40

   CASE 40 TO 49
      GOTO A50

   CASE 50 TO 59
      GOTO A60

   CASE 60 TO 69
      GOTO A70

   CASE 70 TO 79
      GOTO A80

   CASE 80 TO 89
      GOTO A90

   CASE 90 TO 99
      GOTO A100

  
   CASE 100 TO 109
      GOTO A110
END SELECT
                                          

A10:
T = 10
GOTO Ending

A20:
T = 20
GOTO Ending

A30:
T = 30
GOTO Ending

A40:
T = 40
GOTO Ending

A50:
T = 50
GOTO Ending

A60:
T = 60
GOTO Ending

A70:
T = 70
GOTO Ending

A80:
T = 80
GOTO Ending

A90:
T = 90
GOTO Ending

A100:
T = 100
GOTO Ending

A110:
T = 110
GOTO Ending


Ending:
LOCATE 26, 47: PRINT A$ + B$ + C$ + D$ + E$ + F$; "-"; G$ + H$ + I$ + S$; "ÿÿÿÿ"
J = T - J
S = VAL(S$)
Result = J EQV S
IF Result = -1 THEN
     LOCATE 7, 45: PRINT "Personnummret „r giltigt"
     SLEEP
     GOTO Meny
ELSE
    LOCATE 10, 45: PRINT "Personnumret „r inte giltigt"
    SLEEP
    GOTO Meny
END IF

SUB Meny
CLS
LINE (363, 397)-(620, 417), 1, B
END SUB
oship me and i will give you lots of guurrls and beeea
Reply
#2
Haha Blitz! Caught out in you own game Smile

So for those of who dont speak swedish,


what does it do?
Reply
#3
Seems like a game...dunno what to call it though :roll:
Reply
#4
Heehe, it calculates social security numbers. Social security numbers are based on a simple algorithm here.
oship me and i will give you lots of guurrls and beeea
Reply
#5
:o Ahhh!!! The EVIL GOTOs!!! ahh!!! :barf:

I'm sorry but gotos are evil and should be gone. I hate debugging those....

hehe a Social Security calculator in swedish in QB? Wow....That's awsome! :wink:
i]"But...it was so beautifully done"[/i]
Reply
#6
Once again the GOTO shit?

SHUTUP EVERYONE Big Grin (I'm sick, the "goto's are wrong" thing has been discussed like 60 times in this forum)
SCUMM (the band) on Myspace!
ComputerEmuzone Games Studio
underBASIC, homegrown musicians
[img]http://www.ojodepez-fanzine.net/almacen/yoghourtslover.png[/i
Reply
#7
It's ok sometimes i think, if anything else would have just complicated the code. But goto abuse is just abuse.
oship me and i will give you lots of guurrls and beeea
Reply
#8
Nath, I am about to pull out my hair now! GOTOs have been discussed since qbasic.com :evil:
Reply
#9
Ok, I'm going to leave it at that.

I'm new to this forum so I didn't know, sorry. :oops:

Don't pull out your hair, its not good.... :rotfl:
i]"But...it was so beautifully done"[/i]
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)