اطلاعیه

Collapse
No announcement yet.

پرژه بازی با avr

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    پرژه بازی با avr

    این بازی رو به زبان بیسیک نوشتم.
    شما میتونید مدار شبیه سازی شدش رو تو نرم افزار Proteus نسخه 7 به بالا اجرا کنید.
    از همه ی دوستان میخوام که این بازی رو تکمیل کنن
    هر کس میتونه یه چیزی به این بازی اضافه کنه!!! :nerd:
    اینم لینک دانلودش:http://persiandrive.com/496865
    لینک دوم:http://parsaspace.com/files/04772288...990s).rar.html
    اینم عکسش:


    نــــ_ـــمـــ_ــــیــــ_ـــدونـــــ_ــم.....

    #2
    پاسخ : پرژه بازی با avr

    اینم برنامش:

    'name: Ricochet game
    'www.mjs1990s.blogfa.com
    'mojtaba jabari
    '******************************************** **********************************
    $regfile = "m16def.dat"
    $crystal = 16000000
    Config Graphlcd = 240 * 128 , Dataport = Porta , Controlport = Portc , Ce = 2 _
    , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8
    '******************************************** **********************************
    Dim A As Byte
    Dim B As Byte
    Dim F As Byte
    Dim G As Byte
    Dim I As Byte
    Dim K As Byte
    Dim I1 As Byte
    Dim J As Byte
    Dim H As Byte
    Dim D As Byte
    Dim C As Byte
    Dim E As Byte
    Dim S1 As Integer
    Dim X1 As Byte
    Dim X2 As Byte
    Dim X3 As Byte
    Dim X4 As Byte
    Dim X5 As Byte
    Dim X6 As Byte
    Dim Y1 As Byte
    Dim Y2 As Byte
    Dim Y3 As Byte
    '--------------------------------------
    U:
    Locate 7 , 5
    Lcd "M J S 1990 S"
    Waitms 800
    Cls
    Locate 9 , 5
    Lcd "START"
    Waitms 800
    Cls
    '--------------------------------------
    S1 = 3
    S:
    Config Portd = Input
    Config Portb.0 = Output
    Cursor Off
    Line(175 , 0) -(175 , 128) , 255
    Line(176 , 0) -(176 , 128) , 255
    A = 90
    B = 120
    C = 2
    J = 0
    I = 0
    E = 0
    F = 0
    G = 0
    H = 0
    K = 2
    I1 = 1
    '--------------------------------------
    Locate 2 , 23
    Lcd "score:"
    Locate 4 , 25
    Lcd "00000"
    Locate 7 , 23
    Lcd "level:"
    Locate 9 , 26
    Lcd " 01"
    Locate 12 , 23
    Lcd "ion"
    Locate 13 , 23
    Lcd "spheres:"
    Locate 15 , 26
    Lcd " 0"
    Locate 15 , 28
    Lcd S1
    '--------------------------------------
    X1 = 80
    Y1 = 127
    X2 = X1 + 20
    Y2 = 126
    Y3 = 125
    '--------------------------------------
    Line(175 , 0) -(175 , 128) , 255
    Line(176 , 0) -(176 , 128) , 255
    Line(181 , 1) -(240 , 1) , 255
    Line(181 , 2) -(240 , 2) , 255
    Line(181 , 126) -(240 , 126) , 255
    Line(181 , 127) -(240 , 127) , 255
    '------------------------------------
    Line(1 , 01) ,(166 , 01) , 255
    Line(1 , 02) ,(166 , 02) , 255
    Line(1 , 03) ,(166 , 03) , 255
    Line(1 , 04) ,(166 , 04) , 255
    Line(1 , 05) ,(166 , 05) , 255
    Line(1 , 06) ,(166 , 06) , 255
    Line(1 , 07) ,(166 , 07) , 255
    Line(1 , 08) ,(166 , 08) , 255
    Line(1 , 09) ,(166 , 09) , 255
    Line(1 , 10) ,(166 , 10) , 255
    Line(1 , 11) ,(166 , 11) , 255
    Line(1 , 12) ,(166 , 12) , 255
    Line(1 , 13) ,(166 , 13) , 255
    Line(1 , 14) ,(166 , 14) , 255
    Line(1 , 15) ,(166 , 15) , 255
    Line(1 , 16) ,(166 , 16) , 255
    Line(1 , 17) ,(166 , 17) , 255
    Line(1 , 18) ,(166 , 18) , 255
    Line(1 , 19) ,(166 , 19) , 255
    Line(1 , 20) ,(166 , 20) , 255
    Line(1 , 21) ,(166 , 21) , 255
    Line(1 , 22) ,(166 , 22) , 255
    Line(1 , 23) ,(166 , 23) , 255
    Line(1 , 24) ,(166 , 24) , 255
    Line(1 , 25) ,(166 , 25) , 255
    Line(1 , 26) ,(166 , 26) , 255
    Line(1 , 27) ,(166 , 27) , 255
    Line(1 , 28) ,(166 , 28) , 255
    Line(1 , 29) ,(166 , 29) , 255
    Line(1 , 30) ,(166 , 30) , 255
    Line(1 , 31) ,(166 , 31) , 255
    Line(1 , 32) ,(166 , 32) , 255
    Line(1 , 33) ,(166 , 33) , 255
    Line(1 , 34) ,(166 , 34) , 255
    Line(1 , 35) ,(166 , 35) , 255
    Line(1 , 36) ,(166 , 36) , 255
    Line(1 , 37) ,(166 , 37) , 255
    Line(1 , 38) ,(166 , 38) , 255
    Line(1 , 39) ,(166 , 39) , 255
    Line(1 , 40) ,(166 , 40) , 255
    Line(1 , 41) ,(166 , 41) , 255
    Line(1 , 42) ,(166 , 42) , 255
    Line(1 , 43) ,(166 , 43) , 255
    Line(1 , 44) ,(166 , 44) , 255
    Line(1 , 45) ,(166 , 45) , 255
    Line(1 , 46) ,(166 , 46) , 255
    Line(1 , 47) ,(166 , 47) , 255
    Line(1 , 48) ,(166 , 48) , 255
    Line(1 , 49) ,(166 , 49) , 255
    Line(1 , 50) ,(166 , 50) , 255
    Line(1 , 51) ,(166 , 51) , 255
    Line(1 , 52) ,(166 , 52) , 255
    Line(1 , 53) ,(166 , 53) , 255
    Line(1 , 54) ,(166 , 54) , 255
    Line(1 , 55) ,(166 , 55) , 255
    Line(1 , 56) ,(166 , 56) , 255
    Line(1 , 57) ,(166 , 57) , 255
    Line(1 , 58) ,(166 , 58) , 255
    Line(1 , 59) ,(166 , 59) , 255
    Line(1 , 60) ,(166 , 60) , 255
    Line(1 , 61) ,(166 , 61) , 255
    Line(1 , 62) ,(166 , 62) , 255
    Line(1 , 63) ,(166 , 63) , 255
    Line(1 , 64) ,(166 , 64) , 255
    Line(1 , 65) ,(166 , 65) , 255
    Line(1 , 66) ,(166 , 66) , 255
    Line(1 , 67) ,(166 , 67) , 255
    Line(1 , 68) ,(166 , 68) , 255
    Line(1 , 69) ,(166 , 69) , 255
    Line(0 , Y1) -(179 , Y1) , 0
    Line(0 , Y2) -(179 , Y2) , 0
    Line(0 , Y3) -(179 , Y3) , 0
    Line(x1 , Y1) -(x2 , Y1) , 255
    Line(x1 , Y2) -(x2 , Y2) , 255
    Line(x1 , Y3) -(x2 , Y3) , 255
    '--------------------------------------
    If Pind.1 = 1 Then
    Incr X1
    Incr X1
    Incr X1
    Incr X2
    Incr X2
    Incr X2
    End If

    If Pind.2 = 1 Then
    Decr X1
    Decr X2
    Decr X1
    Decr X2
    Decr X1
    Decr X2
    End If
    '---------------------------------------
    Circle(a , B) , 4 , 255
    Circle(a , B) , 3 , 255
    Circle(a , B) , 2 , 255
    Circle(a , B) , 1 , 255
    Circle(a , B) , 0 , 255
    Circle(a , B) , 5 , 0
    Circle(a , B) , 6 , 0
    Circle(a , B) , 7 , 0
    Circle(a , B) , 8 , 0
    '++++++++++++++++++++++++++++++++++++++
    If C = 2 Then
    Do
    If Pind.3 = 1 Then
    C = 1
    Goto L
    End If
    Loop
    L:
    End If

    If C = 1 Then
    Do
    A = A + K
    B = B - 2
    I = 1
    J = 0
    Line(0 , Y1) -(179 , Y1) , 0
    Line(0 , Y2) -(179 , Y2) , 0
    Line(0 , Y3) -(179 , Y3) , 0
    Line(x1 , Y1) -(x2 , Y1) , 255
    Line(x1 , Y2) -(x2 , Y2) , 255
    Line(x1 , Y3) -(x2 , Y3) , 255

    Circle(a , B) , 4 , 255
    Circle(a , B) , 3 , 255
    Circle(a , B) , 2 , 255
    Circle(a , B) , 1 , 255
    Circle(a , B) , 0 , 255
    Circle(a , B) , 5 , 0
    Circle(a , B) , 6 , 0
    Circle(a , B) , 7 , 0
    Circle(a , B) , 8 , 0
    If Pind.1 = 1 Then
    If X2 < 165 Then
    Incr X1
    Incr X1
    Incr X1
    Incr X2
    Incr X2
    Incr X2
    End If
    End If
    If Pind.2 = 1 Then
    If X1 > 2 Then
    Decr X1
    Decr X2
    Decr X1
    Decr X2
    Decr X1
    Decr X2
    End If
    End If
    If A > 160 Then
    B = B - I1
    Goto M0
    End If
    Loop
    End If
    '======================================
    M0:
    If A > 160 Then
    E = 1
    End If

    If E = 1 Then 'ok
    If J = 1 Then
    B = B - I1
    Do
    A = A - K
    B = B + 2
    If A < 5 Then
    I = 0
    J = 1
    Goto M1
    Elseif B < 5 Then
    I = 0
    J = 1
    Goto M2
    Elseif B > 123 Then
    I = 0
    J = 1
    Goto M3
    End If
    Line(0 , Y1) -(179 , Y1) , 0
    Line(0 , Y2) -(179 , Y2) , 0
    Line(0 , Y3) -(179 , Y3) , 0
    Line(x1 , Y1) -(x2 , Y1) , 255
    Line(x1 , Y2) -(x2 , Y2) , 255
    Line(x1 , Y3) -(x2 , Y3) , 255

    Circle(a , B) , 4 , 255
    Circle(a , B) , 3 , 255
    Circle(a , B) , 2 , 255
    Circle(a , B) , 1 , 255
    Circle(a , B) , 0 , 255
    Circle(a , B) , 5 , 0
    Circle(a , B) , 6 , 0
    Circle(a , B) , 7 , 0
    Circle(a , B) , 8 , 0
    If Pind.1 = 1 Then
    If X2 < 165 Then
    Incr X1
    Incr X1
    Incr X1
    Incr X2
    Incr X2
    Incr X2
    End If
    End If
    If Pind.2 = 1 Then
    If X1 > 2 Then
    Decr X1
    Decr X2
    Decr X1
    Decr X2
    Decr X1
    Decr X2
    End If
    End If

    Loop
    End If

    If J = 0 Then
    B = B + I1
    Do
    A = A - K
    B = B - 2
    If A < 5 Then
    I = 0
    J = 0
    Goto M1
    Elseif B < 5 Then
    I = 0
    J = 0
    Goto M2
    Elseif B > 123 Then
    I = 0
    J = 0
    Goto M3
    End If
    Line(0 , Y1) -(179 , Y1) , 0
    Line(0 , Y2) -(179 , Y2) , 0
    Line(0 , Y3) -(179 , Y3) , 0
    Line(x1 , Y1) -(x2 , Y1) , 255
    Line(x1 , Y2) -(x2 , Y2) , 255
    Line(x1 , Y3) -(x2 , Y3) , 255

    Circle(a , B) , 4 , 255
    Circle(a , B) , 3 , 255
    Circle(a , B) , 2 , 255
    Circle(a , B) , 1 , 255
    Circle(a , B) , 0 , 255
    Circle(a , B) , 5 , 0
    Circle(a , B) , 6 , 0
    Circle(a , B) , 7 , 0
    Circle(a , B) , 8 , 0
    If Pind.1 = 1 Then
    If X2 < 165 Then
    Incr X1
    Incr X1
    Incr X1
    Incr X2
    Incr X2
    Incr X2
    End If
    End If
    If Pind.2 = 1 Then
    If X1 > 2 Then
    Decr X1
    Decr X2
    Decr X1
    Decr X2
    Decr X1
    Decr X2
    End If
    End If

    Loop
    End If

    End If 'ok
    '=====================================
    M1:
    If A < 5 Then
    F = 1
    End If
    If F = 1 Then
    If J = 1 Then
    B = B - I1
    Do
    A = A + K
    B = B + 2
    If A > 160 Then
    I = 1
    J = 1
    Goto M0
    Elseif B < 5 Then
    I = 1
    J = 1
    Goto M2
    Elseif B > 123 Then
    I = 1
    J = 1
    Goto M3
    End If
    Line(0 , Y1) -(179 , Y1) , 0
    Line(0 , Y2) -(179 , Y2) , 0
    Line(0 , Y3) -(179 , Y3) , 0
    Line(x1 , Y1) -(x2 , Y1) , 255
    Line(x1 , Y2) -(x2 , Y2) , 255
    Line(x1 , Y3) -(x2 , Y3) , 255

    Circle(a , B) , 4 , 255
    Circle(a , B) , 3 , 255
    Circle(a , B) , 2 , 255
    Circle(a , B) , 1 , 255
    Circle(a , B) , 0 , 255
    Circle(a , B) , 5 , 0
    Circle(a , B) , 6 , 0
    Circle(a , B) , 7 , 0
    Circle(a , B) , 8 , 0
    If Pind.1 = 1 Then
    If X2 < 165 Then
    Incr X1
    Incr X1
    Incr X1
    Incr X2
    Incr X2
    Incr X2
    End If
    End If
    If Pind.2 = 1 Then
    If X1 > 2 Then
    Decr X1
    Decr X2
    Decr X1
    Decr X2
    Decr X1
    Decr X2
    End If
    End If

    Loop
    End If

    If J = 0 Then
    B = B + I1
    Do
    A = A + K
    B = B - 2
    If A > 160 Then
    I = 1
    J = 0
    Goto M0
    Elseif B < 5 Then
    I = 1
    J = 0
    Goto M2
    Elseif B > 123 Then
    I = 1
    J = 0
    Goto M3
    End If
    Line(0 , Y1) -(179 , Y1) , 0
    Line(0 , Y2) -(179 , Y2) , 0
    Line(0 , Y3) -(179 , Y3) , 0
    Line(x1 , Y1) -(x2 , Y1) , 255
    Line(x1 , Y2) -(x2 , Y2) , 255
    Line(x1 , Y3) -(x2 , Y3) , 255

    Circle(a , B) , 4 , 255
    Circle(a , B) , 3 , 255
    Circle(a , B) , 2 , 255
    Circle(a , B) , 1 , 255
    Circle(a , B) , 0 , 255
    Circle(a , B) , 5 , 0
    Circle(a , B) , 6 , 0
    Circle(a , B) , 7 , 0
    Circle(a , B) , 8 , 0
    If Pind.1 = 1 Then
    If X2 < 165 Then
    Incr X1
    Incr X1
    Incr X1
    Incr X2
    Incr X2
    Incr X2
    End If
    End If
    If Pind.2 = 1 Then
    If X1 > 2 Then
    Decr X1
    Decr X2
    Decr X1
    Decr X2
    Decr X1
    Decr X2
    End If
    End If

    Loop
    End If

    End If
    '=====================================
    M2:
    If B < 5 Then
    G = 1
    End If

    If G = 1 Then
    If I = 1 Then
    A = A - I1
    Do
    A = A + K
    B = B + 2
    If A > 160 Then
    I = 1
    J = 1
    Goto M0
    Elseif A < 5 Then
    I = 1
    J = 1
    Goto M1
    Elseif B > 123 Then
    I = 1
    J = 1
    Goto M3
    End If
    Line(0 , Y1) -(179 , Y1) , 0
    Line(0 , Y2) -(179 , Y2) , 0
    Line(0 , Y3) -(179 , Y3) , 0
    Line(x1 , Y1) -(x2 , Y1) , 255
    Line(x1 , Y2) -(x2 , Y2) , 255
    Line(x1 , Y3) -(x2 , Y3) , 255

    Circle(a , B) , 4 , 255
    Circle(a , B) , 3 , 255
    Circle(a , B) , 2 , 255
    Circle(a , B) , 1 , 255
    Circle(a , B) , 0 , 255
    Circle(a , B) , 5 , 0
    Circle(a , B) , 6 , 0
    Circle(a , B) , 7 , 0
    Circle(a , B) , 8 , 0
    If Pind.1 = 1 Then
    If X2 < 165 Then
    Incr X1
    Incr X1
    Incr X1
    Incr X2
    Incr X2
    Incr X2
    End If
    End If
    If Pind.2 = 1 Then
    If X1 > 2 Then
    Decr X1
    Decr X2
    Decr X1
    Decr X2
    Decr X1
    Decr X2
    End If
    End If

    Loop
    End If

    If I = 0 Then
    A = A + I1
    Do
    A = A - K
    B = B + 2
    If A > 160 Then
    I = 0
    J = 1
    Goto M0
    Elseif A < 5 Then
    I = 0
    J = 1
    Goto M1
    Elseif B > 123 Then
    I = 0
    J = 1
    Goto M3
    End If
    Line(0 , Y1) -(179 , Y1) , 0
    Line(0 , Y2) -(179 , Y2) , 0
    Line(0 , Y3) -(179 , Y3) , 0
    Line(x1 , Y1) -(x2 , Y1) , 255
    Line(x1 , Y2) -(x2 , Y2) , 255
    Line(x1 , Y3) -(x2 , Y3) , 255

    Circle(a , B) , 4 , 255
    Circle(a , B) , 3 , 255
    Circle(a , B) , 2 , 255
    Circle(a , B) , 1 , 255
    Circle(a , B) , 0 , 255
    Circle(a , B) , 5 , 0
    Circle(a , B) , 6 , 0
    Circle(a , B) , 7 , 0
    Circle(a , B) , 8 , 0
    If Pind.1 = 1 Then
    If X2 < 165 Then
    Incr X1
    Incr X1
    Incr X1
    Incr X2
    Incr X2
    Incr X2
    End If
    End If
    If Pind.2 = 1 Then
    If X1 > 2 Then
    Decr X1
    Decr X2
    Decr X1
    Decr X2
    Decr X1
    Decr X2
    End If
    End If

    Loop
    End If

    End If
    '=====================================
    M3:
    If B > 123 Then
    H = 1
    If B > 128 Then
    R:
    S1 = S1 - 1
    Circle(a , B) , 4 , 0
    Circle(a , B) , 3 , 0
    Circle(a , B) , 2 , 0
    Circle(a , B) , 1 , 0
    Circle(a , B) , 0 , 0
    Circle(a , B) , 5 , 0
    Circle(a , B) , 6 , 0
    Circle(a , B) , 7 , 0
    Circle(a , B) , 8 , 0
    If S1 = -1 Then
    Cls Graph
    Locate 12 , 5
    Lcd "GAME OVER"
    Wait 5
    Goto U
    End If
    Locate 12 , 5
    Lcd " L O S S "
    Wait 2
    Locate 12 , 5
    Lcd " "
    Goto S
    End If

    End If
    '-------------------------------------
    X3 = X1 + 7 'chap+
    X4 = X3 + 6 'markaz+
    X5 = X4 + 7 'rast+
    '-------------------------------------
    If A => X1 Then
    If A =< X5 Then
    If A => X1 Then
    If A < X3 Then
    K = 3
    I1 = 2
    Goto R2
    End If
    End If
    If A => X3 Then
    If A =< X4 Then
    K = 2
    I1 = 1
    Goto R2
    End If
    End If
    If A > X4 Then
    If A =< X5 Then
    K = 3
    I1 = 2
    Goto R2
    End If
    End If
    End If
    End If
    If A < X1 Then
    Goto R
    Elseif A > X5 Then
    Goto R
    End If

    R2:
    If H = 1 Then
    If I = 1 Then
    A = A - I1
    Do
    A = A + K
    B = B - 2
    If A > 160 Then
    I = 1
    J = 0
    Goto M0
    Elseif A < 5 Then
    I = 1
    J = 0
    Goto M1
    Elseif B < 5 Then
    I = 1
    J = 0
    Goto M2
    End If
    Line(0 , Y1) -(179 , Y1) , 0
    Line(0 , Y2) -(179 , Y2) , 0
    Line(0 , Y3) -(179 , Y3) , 0
    Line(x1 , Y1) -(x2 , Y1) , 255
    Line(x1 , Y2) -(x2 , Y2) , 255
    Line(x1 , Y3) -(x2 , Y3) , 255

    Circle(a , B) , 4 , 255
    Circle(a , B) , 3 , 255
    Circle(a , B) , 2 , 255
    Circle(a , B) , 1 , 255
    Circle(a , B) , 0 , 255
    Circle(a , B) , 5 , 0
    Circle(a , B) , 6 , 0
    Circle(a , B) , 7 , 0
    Circle(a , B) , 8 , 0
    If Pind.1 = 1 Then
    If X2 < 165 Then
    Incr X1
    Incr X1
    Incr X1
    Incr X2
    Incr X2
    Incr X2
    End If
    End If
    If Pind.2 = 1 Then
    If X1 > 2 Then
    Decr X1
    Decr X2
    Decr X1
    Decr X2
    Decr X1
    Decr X2
    End If
    End If

    Loop
    End If

    If I = 0 Then
    A = A + I1
    Do
    A = A - K
    B = B - 2
    If A > 160 Then
    I = 0
    J = 0
    Goto M0
    Elseif A < 5 Then
    I = 0
    J = 0
    Goto M1
    Elseif B < 5 Then
    I = 0
    J = 0
    Goto M2
    End If
    Line(0 , Y1) -(179 , Y1) , 0
    Line(0 , Y2) -(179 , Y2) , 0
    Line(0 , Y3) -(179 , Y3) , 0
    Line(x1 , Y1) -(x2 , Y1) , 255
    Line(x1 , Y2) -(x2 , Y2) , 255
    Line(x1 , Y3) -(x2 , Y3) , 255

    Circle(a , B) , 4 , 255
    Circle(a , B) , 3 , 255
    Circle(a , B) , 2 , 255
    Circle(a , B) , 1 , 255
    Circle(a , B) , 0 , 255
    Circle(a , B) , 5 , 0
    Circle(a , B) , 6 , 0
    Circle(a , B) , 7 , 0
    Circle(a , B) , 8 , 0
    If Pind.1 = 1 Then
    If X2 < 165 Then
    Incr X1
    Incr X1
    Incr X1
    Incr X2
    Incr X2
    Incr X2
    End If
    End If
    If Pind.2 = 1 Then
    If X1 > 2 Then
    Decr X1
    Decr X2
    Decr X1
    Decr X2
    Decr X1
    Decr X2
    End If
    End If

    Loop
    End If

    End If
    '+++++++++++++++++++++++++++++++++++++
    End 'end program
    '******************************************** **********************************
    نــــ_ـــمـــ_ــــیــــ_ـــدونـــــ_ــم.....

    دیدگاه


      #3
      پاسخ : پرژه بازی با avr

      سلام
      کسی میدونه چطور میتونم سرعت اجرای بازی رو بالا ببرم :question:
      فرکانس هم رو 16mHz
      نــــ_ـــمـــ_ــــیــــ_ـــدونـــــ_ــم.....

      دیدگاه


        #4
        پاسخ : پرژه بازی با avr

        تا حالا که کسی چیزی اضافه نکرده حداقل خودم تونستم یکم برنامشو کوتاه کنم!!!
        البته میشه قسمتهای تکراری شو با برچسب ها حذف کرد ولی فکر میکنم اگه این کارو نکنم خوندن برنامه راحت تر باشه!
        کد:
        'name: Ricochet game
        'www.mjs1990s.blogfa.com
        'mojtaba jabari
        '******************************************************************************
        $regfile = "m16def.dat"
        $crystal = 16000000
        Config Graphlcd = 240 * 128 , Dataport = Porta , Controlport = Portc , Ce = 2 _
         , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8
        '******************************************************************************
        Dim A As Byte
        Dim B As Byte
        Dim F As Byte
        Dim G As Byte
        Dim I As Byte
        Dim K As Byte
        Dim I1 As Byte
        Dim J As Byte
        Dim H As Byte
        Dim D As Byte
        Dim C As Byte
        Dim E As Byte
        Dim S1 As Integer
        Dim X1 As Byte
        Dim X2 As Byte
        Dim X3 As Byte
        Dim X4 As Byte
        Dim X5 As Byte
        Dim X6 As Byte
        Dim Y1 As Byte
        Dim Y2 As Byte
        Dim Y3 As Byte
        Dim Z As Byte
        '--------------------------------------
        U:
        Locate 7 , 5
        Lcd "M J S 1990 S"
        Waitms 800
        Cls
        Locate 9 , 5
        Lcd "START"
        Waitms 800
        Cls
        '--------------------------------------
        S1 = 3
        S:
        Config Portd = Input
        Config Portb.0 = Output
        Cursor Off
        Line(175 , 0) -(175 , 128) , 255
        Line(176 , 0) -(176 , 128) , 255
        A = 90
        B = 120
        C = 2
        J = 0
        I = 0
        E = 0
        F = 0
        G = 0
        H = 0
        K = 2
        I1 = 1
        '--------------------------------------
        Locate 2 , 23
        Lcd "score:"
        Locate 4 , 25
        Lcd "00000"
        Locate 7 , 23
        Lcd "level:"
        Locate 9 , 26
        Lcd " 01"
        Locate 12 , 23
        Lcd "ion"
        Locate 13 , 23
        Lcd "spheres:"
        Locate 15 , 26
        Lcd " 0"
        Locate 15 , 28
        Lcd S1
        '--------------------------------------
        X1 = 80
        Y1 = 127
        X2 = X1 + 20
        Y2 = 126
        Y3 = 125
        '--------------------------------------
        Line(175 , 0) -(175 , 128) , 255
        Line(176 , 0) -(176 , 128) , 255
        Line(181 , 1) -(240 , 1) , 255
        Line(181 , 2) -(240 , 2) , 255
        Line(181 , 126) -(240 , 126) , 255
        Line(181 , 127) -(240 , 127) , 255
        '-------------------------------------
        Z = 2
        Do
        Incr Z
        Line(1 , Z) ,(166 , Z) , 255
        Loop Until Z = 80
        '--------------------------------------
        Line(0 , Y1) -(179 , Y1) , 0
        Line(0 , Y2) -(179 , Y2) , 0
        Line(0 , Y3) -(179 , Y3) , 0
        Line(x1 , Y1) -(x2 , Y1) , 255
        Line(x1 , Y2) -(x2 , Y2) , 255
        Line(x1 , Y3) -(x2 , Y3) , 255
        '--------------------------------------
        If Pind.1 = 1 Then
          Incr X1
          Incr X1
          Incr X1
          Incr X2
          Incr X2
          Incr X2
        End If
        
        If Pind.2 = 1 Then
          Decr X1
          Decr X2
          Decr X1
          Decr X2
          Decr X1
          Decr X2
        End If
        '---------------------------------------
        Circle(a , B) , 4 , 255
        Circle(a , B) , 3 , 255
        Circle(a , B) , 2 , 255
        Circle(a , B) , 1 , 255
        Circle(a , B) , 0 , 255
        Circle(a , B) , 5 , 0
        Circle(a , B) , 6 , 0
        Circle(a , B) , 7 , 0
        Circle(a , B) , 8 , 0
        '++++++++++++++++++++++++++++++++++++++
        If C = 2 Then
          Do
          If Pind.3 = 1 Then
           C = 1
           Goto L
          End If
          Loop
        L:
        End If
        
        If C = 1 Then
          Do
          A = A + K
          B = B - 2
          I = 1
          J = 0
          Line(0 , Y1) -(179 , Y1) , 0
          Line(0 , Y2) -(179 , Y2) , 0
          Line(0 , Y3) -(179 , Y3) , 0
          Line(x1 , Y1) -(x2 , Y1) , 255
          Line(x1 , Y2) -(x2 , Y2) , 255
          Line(x1 , Y3) -(x2 , Y3) , 255
        
          Circle(a , B) , 4 , 255
          Circle(a , B) , 3 , 255
          Circle(a , B) , 2 , 255
          Circle(a , B) , 1 , 255
          Circle(a , B) , 0 , 255
          Circle(a , B) , 5 , 0
          Circle(a , B) , 6 , 0
          Circle(a , B) , 7 , 0
          Circle(a , B) , 8 , 0
           If Pind.1 = 1 Then
             If X2 < 165 Then
              Incr X1
              Incr X1
              Incr X1
              Incr X2
              Incr X2
              Incr X2
             End If
           End If
           If Pind.2 = 1 Then
             If X1 > 2 Then
              Decr X1
              Decr X2
              Decr X1
              Decr X2
              Decr X1
              Decr X2
             End If
           End If
           If A > 160 Then
             B = B - I1
             Goto M0
           End If
          Loop
        End If
        '======================================
        M0:
        If A > 160 Then
          E = 1
        End If
        
        If E = 1 Then                        'ok
          If J = 1 Then
           B = B - I1
           Do
           A = A - K
           B = B + 2
           If A < 5 Then
             I = 0
             J = 1
             Goto M1
           Elseif B < 5 Then
             I = 0
             J = 1
             Goto M2
           Elseif B > 123 Then
             I = 0
             J = 1
             Goto M3
           End If
          Line(0 , Y1) -(179 , Y1) , 0
          Line(0 , Y2) -(179 , Y2) , 0
          Line(0 , Y3) -(179 , Y3) , 0
          Line(x1 , Y1) -(x2 , Y1) , 255
          Line(x1 , Y2) -(x2 , Y2) , 255
          Line(x1 , Y3) -(x2 , Y3) , 255
        
          Circle(a , B) , 4 , 255
          Circle(a , B) , 3 , 255
          Circle(a , B) , 2 , 255
          Circle(a , B) , 1 , 255
          Circle(a , B) , 0 , 255
          Circle(a , B) , 5 , 0
          Circle(a , B) , 6 , 0
          Circle(a , B) , 7 , 0
          Circle(a , B) , 8 , 0
           If Pind.1 = 1 Then
             If X2 < 165 Then
              Incr X1
              Incr X1
              Incr X1
              Incr X2
              Incr X2
              Incr X2
             End If
           End If
           If Pind.2 = 1 Then
             If X1 > 2 Then
              Decr X1
              Decr X2
              Decr X1
              Decr X2
              Decr X1
              Decr X2
             End If
           End If
        
           Loop
          End If
        
          If J = 0 Then
           B = B + I1
           Do
           A = A - K
           B = B - 2
           If A < 5 Then
             I = 0
             J = 0
             Goto M1
           Elseif B < 5 Then
             I = 0
             J = 0
             Goto M2
           Elseif B > 123 Then
             I = 0
             J = 0
             Goto M3
           End If
          Line(0 , Y1) -(179 , Y1) , 0
          Line(0 , Y2) -(179 , Y2) , 0
          Line(0 , Y3) -(179 , Y3) , 0
          Line(x1 , Y1) -(x2 , Y1) , 255
          Line(x1 , Y2) -(x2 , Y2) , 255
          Line(x1 , Y3) -(x2 , Y3) , 255
        
          Circle(a , B) , 4 , 255
          Circle(a , B) , 3 , 255
          Circle(a , B) , 2 , 255
          Circle(a , B) , 1 , 255
          Circle(a , B) , 0 , 255
          Circle(a , B) , 5 , 0
          Circle(a , B) , 6 , 0
          Circle(a , B) , 7 , 0
          Circle(a , B) , 8 , 0
           If Pind.1 = 1 Then
             If X2 < 165 Then
              Incr X1
              Incr X1
              Incr X1
              Incr X2
              Incr X2
              Incr X2
             End If
           End If
           If Pind.2 = 1 Then
             If X1 > 2 Then
              Decr X1
              Decr X2
              Decr X1
              Decr X2
              Decr X1
              Decr X2
             End If
           End If
        
           Loop
          End If
        
        End If                           'ok
        '=====================================
        M1:
        If A < 5 Then
          F = 1
        End If
        If F = 1 Then
          If J = 1 Then
           B = B - I1
           Do
           A = A + K
           B = B + 2
           If A > 160 Then
             I = 1
             J = 1
             Goto M0
           Elseif B < 5 Then
             I = 1
             J = 1
             Goto M2
           Elseif B > 123 Then
             I = 1
             J = 1
             Goto M3
           End If
          Line(0 , Y1) -(179 , Y1) , 0
          Line(0 , Y2) -(179 , Y2) , 0
          Line(0 , Y3) -(179 , Y3) , 0
          Line(x1 , Y1) -(x2 , Y1) , 255
          Line(x1 , Y2) -(x2 , Y2) , 255
          Line(x1 , Y3) -(x2 , Y3) , 255
        
          Circle(a , B) , 4 , 255
          Circle(a , B) , 3 , 255
          Circle(a , B) , 2 , 255
          Circle(a , B) , 1 , 255
          Circle(a , B) , 0 , 255
          Circle(a , B) , 5 , 0
          Circle(a , B) , 6 , 0
          Circle(a , B) , 7 , 0
          Circle(a , B) , 8 , 0
           If Pind.1 = 1 Then
             If X2 < 165 Then
              Incr X1
              Incr X1
              Incr X1
              Incr X2
              Incr X2
              Incr X2
             End If
           End If
           If Pind.2 = 1 Then
             If X1 > 2 Then
              Decr X1
              Decr X2
              Decr X1
              Decr X2
              Decr X1
              Decr X2
             End If
           End If
        
           Loop
          End If
        
          If J = 0 Then
           B = B + I1
           Do
           A = A + K
           B = B - 2
           If A > 160 Then
             I = 1
             J = 0
             Goto M0
           Elseif B < 5 Then
             I = 1
             J = 0
             Goto M2
           Elseif B > 123 Then
             I = 1
             J = 0
             Goto M3
           End If
          Line(0 , Y1) -(179 , Y1) , 0
          Line(0 , Y2) -(179 , Y2) , 0
          Line(0 , Y3) -(179 , Y3) , 0
          Line(x1 , Y1) -(x2 , Y1) , 255
          Line(x1 , Y2) -(x2 , Y2) , 255
          Line(x1 , Y3) -(x2 , Y3) , 255
        
          Circle(a , B) , 4 , 255
          Circle(a , B) , 3 , 255
          Circle(a , B) , 2 , 255
          Circle(a , B) , 1 , 255
          Circle(a , B) , 0 , 255
          Circle(a , B) , 5 , 0
          Circle(a , B) , 6 , 0
          Circle(a , B) , 7 , 0
          Circle(a , B) , 8 , 0
           If Pind.1 = 1 Then
             If X2 < 165 Then
              Incr X1
              Incr X1
              Incr X1
              Incr X2
              Incr X2
              Incr X2
             End If
           End If
           If Pind.2 = 1 Then
             If X1 > 2 Then
              Decr X1
              Decr X2
              Decr X1
              Decr X2
              Decr X1
              Decr X2
             End If
           End If
        
           Loop
          End If
        
        End If
        '=====================================
        M2:
        If B < 5 Then
          G = 1
        End If
        
        If G = 1 Then
          If I = 1 Then
           A = A - I1
           Do
           A = A + K
           B = B + 2
           If A > 160 Then
             I = 1
             J = 1
             Goto M0
           Elseif A < 5 Then
             I = 1
             J = 1
             Goto M1
           Elseif B > 123 Then
             I = 1
             J = 1
             Goto M3
           End If
          Line(0 , Y1) -(179 , Y1) , 0
          Line(0 , Y2) -(179 , Y2) , 0
          Line(0 , Y3) -(179 , Y3) , 0
          Line(x1 , Y1) -(x2 , Y1) , 255
          Line(x1 , Y2) -(x2 , Y2) , 255
          Line(x1 , Y3) -(x2 , Y3) , 255
        
          Circle(a , B) , 4 , 255
          Circle(a , B) , 3 , 255
          Circle(a , B) , 2 , 255
          Circle(a , B) , 1 , 255
          Circle(a , B) , 0 , 255
          Circle(a , B) , 5 , 0
          Circle(a , B) , 6 , 0
          Circle(a , B) , 7 , 0
          Circle(a , B) , 8 , 0
           If Pind.1 = 1 Then
             If X2 < 165 Then
              Incr X1
              Incr X1
              Incr X1
              Incr X2
              Incr X2
              Incr X2
             End If
           End If
           If Pind.2 = 1 Then
             If X1 > 2 Then
              Decr X1
              Decr X2
              Decr X1
              Decr X2
              Decr X1
              Decr X2
             End If
           End If
        
           Loop
          End If
        
          If I = 0 Then
           A = A + I1
           Do
           A = A - K
           B = B + 2
           If A > 160 Then
             I = 0
             J = 1
             Goto M0
           Elseif A < 5 Then
             I = 0
             J = 1
             Goto M1
           Elseif B > 123 Then
             I = 0
             J = 1
             Goto M3
           End If
          Line(0 , Y1) -(179 , Y1) , 0
          Line(0 , Y2) -(179 , Y2) , 0
          Line(0 , Y3) -(179 , Y3) , 0
          Line(x1 , Y1) -(x2 , Y1) , 255
          Line(x1 , Y2) -(x2 , Y2) , 255
          Line(x1 , Y3) -(x2 , Y3) , 255
        
          Circle(a , B) , 4 , 255
          Circle(a , B) , 3 , 255
          Circle(a , B) , 2 , 255
          Circle(a , B) , 1 , 255
          Circle(a , B) , 0 , 255
          Circle(a , B) , 5 , 0
          Circle(a , B) , 6 , 0
          Circle(a , B) , 7 , 0
          Circle(a , B) , 8 , 0
           If Pind.1 = 1 Then
             If X2 < 165 Then
              Incr X1
              Incr X1
              Incr X1
              Incr X2
              Incr X2
              Incr X2
             End If
           End If
           If Pind.2 = 1 Then
             If X1 > 2 Then
              Decr X1
              Decr X2
              Decr X1
              Decr X2
              Decr X1
              Decr X2
             End If
           End If
        
           Loop
          End If
        
        End If
        '=====================================
        M3:
        If B > 123 Then
          H = 1
          If B > 128 Then
           R:
           S1 = S1 - 1
           Circle(a , B) , 4 , 0
           Circle(a , B) , 3 , 0
           Circle(a , B) , 2 , 0
           Circle(a , B) , 1 , 0
           Circle(a , B) , 0 , 0
           Circle(a , B) , 5 , 0
           Circle(a , B) , 6 , 0
           Circle(a , B) , 7 , 0
           Circle(a , B) , 8 , 0
           If S1 = -1 Then
             Cls Graph
             Locate 12 , 5
             Lcd "GAME OVER"
             Wait 5
             Goto U
           End If
          Locate 12 , 5
          Lcd " L O S S "
          Wait 2
          Locate 12 , 5
          Lcd "      "
          Goto S
          End If
        
        End If
        '-------------------------------------
        X3 = X1 + 7                         'chap+
        X4 = X3 + 6                         'markaz+
        X5 = X4 + 7                         'rast+
        '-------------------------------------
        If A => X1 Then
          If A =< X5 Then
           If A => X1 Then
             If A < X3 Then
             K = 3
             I1 = 2
             Goto R2
             End If
           End If
           If A => X3 Then
             If A =< X4 Then
             K = 2
             I1 = 1
             Goto R2
             End If
           End If
           If A > X4 Then
             If A =< X5 Then
             K = 3
             I1 = 2
             Goto R2
             End If
           End If
          End If
        End If
        If A < X1 Then
          Goto R
        Elseif A > X5 Then
          Goto R
        End If
        
        R2:
        If H = 1 Then
          If I = 1 Then
           A = A - I1
           Do
           A = A + K
           B = B - 2
           If A > 160 Then
             I = 1
             J = 0
             Goto M0
           Elseif A < 5 Then
             I = 1
             J = 0
             Goto M1
           Elseif B < 5 Then
             I = 1
             J = 0
             Goto M2
           End If
          Line(0 , Y1) -(179 , Y1) , 0
          Line(0 , Y2) -(179 , Y2) , 0
          Line(0 , Y3) -(179 , Y3) , 0
          Line(x1 , Y1) -(x2 , Y1) , 255
          Line(x1 , Y2) -(x2 , Y2) , 255
          Line(x1 , Y3) -(x2 , Y3) , 255
        
          Circle(a , B) , 4 , 255
          Circle(a , B) , 3 , 255
          Circle(a , B) , 2 , 255
          Circle(a , B) , 1 , 255
          Circle(a , B) , 0 , 255
          Circle(a , B) , 5 , 0
          Circle(a , B) , 6 , 0
          Circle(a , B) , 7 , 0
          Circle(a , B) , 8 , 0
           If Pind.1 = 1 Then
             If X2 < 165 Then
              Incr X1
              Incr X1
              Incr X1
              Incr X2
              Incr X2
              Incr X2
             End If
           End If
           If Pind.2 = 1 Then
            If X1 > 2 Then
              Decr X1
              Decr X2
              Decr X1
              Decr X2
              Decr X1
              Decr X2
             End If
           End If
        
           Loop
          End If
        
          If I = 0 Then
           A = A + I1
           Do
           A = A - K
           B = B - 2
           If A > 160 Then
             I = 0
             J = 0
             Goto M0
           Elseif A < 5 Then
             I = 0
             J = 0
             Goto M1
           Elseif B < 5 Then
             I = 0
             J = 0
             Goto M2
           End If
          Line(0 , Y1) -(179 , Y1) , 0
          Line(0 , Y2) -(179 , Y2) , 0
          Line(0 , Y3) -(179 , Y3) , 0
          Line(x1 , Y1) -(x2 , Y1) , 255
          Line(x1 , Y2) -(x2 , Y2) , 255
          Line(x1 , Y3) -(x2 , Y3) , 255
        
          Circle(a , B) , 4 , 255
          Circle(a , B) , 3 , 255
          Circle(a , B) , 2 , 255
          Circle(a , B) , 1 , 255
          Circle(a , B) , 0 , 255
          Circle(a , B) , 5 , 0
          Circle(a , B) , 6 , 0
          Circle(a , B) , 7 , 0
          Circle(a , B) , 8 , 0
           If Pind.1 = 1 Then
             If X2 < 165 Then
              Incr X1
              Incr X1
              Incr X1
              Incr X2
              Incr X2
              Incr X2
             End If
           End If
           If Pind.2 = 1 Then
             If X1 > 2 Then
              Decr X1
              Decr X2
              Decr X1
              Decr X2
              Decr X1
              Decr X2
             End If
           End If
        
           Loop
          End If
        
        End If
        '+++++++++++++++++++++++++++++++++++++
        End                             'end program
        '******************************************************************************
        نــــ_ـــمـــ_ــــیــــ_ـــدونـــــ_ــم.....

        دیدگاه


          #5
          پاسخ : پرژه بازی با avr

          قشنگ بود آفرین :smile: سرعت اجرای واقعیش هم همینقدر هست که توی Proteus هست؟ ( من Graph2 رو اجرا کردم )
          از آنجا که گاهی فرصت بازخوانی پست نیست، بابت غلط های املایی و نگارشی احتمالی معذرت میخوام.
          هیچیک از پاسخ هایی که میدم را کاملا تایید نمیکنم و ممکن هست اشتباه کرده باشم، اگر من به نوشته ام مطمئن هستم شما مشکوک باشید.
          اگر در حل مشکل من کمک کردید و دکمه تشکر رو نزدم حتما فراموش کردم کوچکترین کمک شما برایم ارزشمند است!
          اگر به هر طریقی از من ناراحت شدید حتما با یک پیام خصوصی تذکر بدهید تا مشکل رو حل کنیم و رابطه ی صمیمانه، پایدار بماند.
          شاد و موفق باشید

          دیدگاه


            #6
            پاسخ : پرژه بازی با avr

            نوشته اصلی توسط Study
            قشنگ بود آفرین :smile: سرعت اجرای واقعیش هم همینقدر هست که توی Proteus هست؟ ( من Graph2 رو اجرا کردم )
            من نساختمش قصد ساختنشم ندارم ولی فکر کنم سرعت واقعیشم همین باشه!!!
            نــــ_ـــمـــ_ــــیــــ_ـــدونـــــ_ــم.....

            دیدگاه


              #7
              پاسخ : پرژه بازی با avr

              این بازی رو تو چندتا کامپیوتر دیگه هم امتحان کردم ، سرعتش اومد پایین تر!
              پس فکر کنم سرعت واقعیش بیشتر باشه!!!
              نمیدونم چرا تو cpuهای چند هسته ای از تمام ظرفیت cpu استفاده نمیکنه
              اگه کسی میدونه منو راهنمایی کنه

              برای این بازی صدا گذاری هم کردم تا چند روز دیگه براتون میذارم...
              نــــ_ـــمـــ_ــــیــــ_ـــدونـــــ_ــم.....

              دیدگاه


                #8
                پاسخ : پرژه بازی با avr

                سلام
                نسخه جدید بازی رو که خیلی وقت پیش آماده کرده بودم رو گذاشتم
                اصلا از برنامه ای که نوشتم راضی نیستم
                الگوریتم بدی داره
                اینم لینکش: [ftp=ftp://persiandrive.com/869820]http://persiandrive.com/869820[/ftp]
                لینک دوم: [ftp=ftp://www.4shared.com/file/JCt16EKP/game20.html]http://www.4shared.com/file/JCt16EKP/game20.html[/ftp]
                نــــ_ـــمـــ_ــــیــــ_ـــدونـــــ_ــم.....

                دیدگاه


                  #9
                  پاسخ : پرژه بازی با avr

                  چون نوشتن برنامه هایی که همزمان روی چند هسته متفاوت اجرا بشن عملا خیلی سخته ولی بصورت تئوری حتی اگر پیادهسازی بشه عملا بخاطر مسائل زمانبندی منطقی بین thread ها به حالتی اجرا میشه که فقط یک core رو استفاده کنه. شما حتی برنامه های خیلی سنگین دیگه ای رو هم بررسی کنی میبینی که اغلب قریب به اتفاقشون (تا این لحظه البته من هنوز موردی ندیدم که این شرط رو نقض کنه) از یک core استفاده میکنن.

                  ایضا عموم برنامه ها حالات async-io رو هم استفاده نمیکنن.

                  دیدگاه

                  لطفا صبر کنید...
                  X