Важная информация
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 14

Тема: Змейка (питон) на QBASIC

  1. #1  
    Гуру Аватар для Konstantin Shcherba
    Регистрация
    08.11.2010
    Сообщений
    1,336
    Сказал(а) спасибо
    26
    Поблагодарили 139 раз(а) в 107 сообщениях
    Записей в блоге
    1
    Написал игрушку питон на QBASIC за вечер. Управление стрелками, ESC - выход.

    Код qbasic:
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    [Ссылки могут видеть только зарегистрированные пользователи. ] 13
    X% = 320 / 2 + 2
    Y% = 200 / 2 + 2
    KeyLeft$ = [Ссылки могут видеть только зарегистрированные пользователи. ](0) + [Ссылки могут видеть только зарегистрированные пользователи. ](75)
    KeyRight$ = [Ссылки могут видеть только зарегистрированные пользователи. ](0) + [Ссылки могут видеть только зарегистрированные пользователи. ](77)
    KeyUp$ = [Ссылки могут видеть только зарегистрированные пользователи. ](0) + [Ссылки могут видеть только зарегистрированные пользователи. ](72)
    KeyDown$ = [Ссылки могут видеть только зарегистрированные пользователи. ](0) + [Ссылки могут видеть только зарегистрированные пользователи. ](80)
    KeyEsc$ = [Ссылки могут видеть только зарегистрированные пользователи. ](27)
    SnakeLen% = 0
    SnakeMaxLen% = 7
    SnakeMaxLenWin% = SnakeMaxLen% + 10
    [Ссылки могут видеть только зарегистрированные пользователи. ] SnakeX(SnakeMaxLenWin%)
    [Ссылки могут видеть только зарегистрированные пользователи. ] SnakeY(SnakeMaxLenWin%)
    Eda% = 0
     
    Start:
    'Risuem kusok zmei
    [Ссылки могут видеть только зарегистрированные пользователи. ] (X% - 2, Y% - 2)-(X% + 2, Y% + 2), 15, B
    [Ссылки могут видеть только зарегистрированные пользователи. ] (X%, Y%), 4, 15
     
    ' Eda
    IF Eda% = 0 [Ссылки могут видеть только зарегистрированные пользователи. ] SnakeLen% >= SnakeMaxLen% THEN
    Eda:
      [Ссылки могут видеть только зарегистрированные пользователи. ] [Ссылки могут видеть только зарегистрированные пользователи. ]
      EdaX% = [Ссылки могут видеть только зарегистрированные пользователи. ]([Ссылки могут видеть только зарегистрированные пользователи. ] * 320 / 5) * 5 + 2
      EdaY% = [Ссылки могут видеть только зарегистрированные пользователи. ]([Ссылки могут видеть только зарегистрированные пользователи. ] * 200 / 5) * 5 + 2
      FOR I = 1 TO SnakeLen%
        IF EdaX% = SnakeX(I) [Ссылки могут видеть только зарегистрированные пользователи. ] EdaY% = SnakeY(I) THEN GOTO Eda: [Ссылки могут видеть только зарегистрированные пользователи. ] FOR
      NEXT I
      [Ссылки могут видеть только зарегистрированные пользователи. ] (EdaX% - 2, EdaY% - 2)-(EdaX% + 2, EdaY% + 2), 4, B
      [Ссылки могут видеть только зарегистрированные пользователи. ] (EdaX%, EdaY%), 4, 4
      Eda% = 1
    [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    IF EdaX% = X% [Ссылки могут видеть только зарегистрированные пользователи. ] EdaY% = Y% THEN
      Eda% = 0
      SnakeMaxLen% = SnakeMaxLen% + 1
      IF SnakeMaxLen% = SnakeMaxLenWin% THEN GOTO EndProgWin
    [Ссылки могут видеть только зарегистрированные пользователи. ] IF
     
    IF SnakeLen% < SnakeMaxLen% [Ссылки могут видеть только зарегистрированные пользователи. ] (EdaX% = X% [Ссылки могут видеть только зарегистрированные пользователи. ] EdaY% = Y%) THEN
    'Uvelichenie dliny zmei
      SnakeLen% = SnakeLen% + 1
    ELSE
    'Zakrashivaem hvost chernym
        [Ссылки могут видеть только зарегистрированные пользователи. ] (SnakeX(SnakeMaxLen%), SnakeY(SnakeMaxLen%)), 0, 15
        [Ссылки могут видеть только зарегистрированные пользователи. ] (SnakeX(SnakeMaxLen%) - 2, SnakeY(SnakeMaxLen%) - 2)-(SnakeX(SnakeMaxLen%) + 2, SnakeY(SnakeMaxLen%) + 2), 0, B
    [Ссылки могут видеть только зарегистрированные пользователи. ] IF
     
    IF SnakeLen% = 0 THEN GOTO Golova
     
    'Sdvigaem massivy s koordinatami zmei vpravo
    FOR I = SnakeLen% TO 2 STEP -1
      SnakeX(I) = SnakeX(I - 1)
      SnakeY(I) = SnakeY(I - 1)
    NEXT I
     
    Golova:
    SnakeX(1) = X%
    SnakeY(1) = Y%
     
    'Proverka peresecheniya
    FOR I = 2 TO SnakeLen%
      IF SnakeX(I) = X% [Ссылки могут видеть только зарегистрированные пользователи. ] SnakeY(I) = Y% THEN
        GOTO EndProgGameOver
      [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    NEXT I
     
    'Chitaem klaviaturu
    InputKey:
    Kold$ = K$
    K$ = [Ссылки могут видеть только зарегистрированные пользователи. ]
    IF [Ссылки могут видеть только зарегистрированные пользователи. ](K$) = 0 THEN
    K$ = Kold$
    ELSE
    GOTO NoDelay
    [Ссылки могут видеть только зарегистрированные пользователи. ] IF
     
    'Zaderzhka
    Timx = 0
    Tim1 = [Ссылки могут видеть только зарегистрированные пользователи. ]
    Tim2 = [Ссылки могут видеть только зарегистрированные пользователи. ] - Tim1
    DO WHILE Timx < .1
      Timx = [Ссылки могут видеть только зарегистрированные пользователи. ] - Tim1 - Tim2
    LOOP
    NoDelay:
     
    SELECT CASE K$
    CASE KeyLeft$
      IF X% > 4 THEN
        X% = X% - 5
        GOTO Start
      ELSE
        GOTO EndProgGameOver
      [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    CASE KeyRight$
      IF X% < 320 - 4 THEN
        X% = X% + 5
        GOTO Start
      ELSE
        GOTO EndProgGameOver
      [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    CASE KeyUp$
      IF Y% > 2 THEN
        Y% = Y% - 5
        GOTO Start
      ELSE
        GOTO EndProgGameOver
      [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    CASE KeyDown$
      IF Y% < 200 - 4 THEN
        Y% = Y% + 5
        GOTO Start
      ELSE
        GOTO EndProgGameOver
      [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    CASE KeyEsc$
      GOTO EndProg
    CASE ELSE
      GOTO InputKey
    [Ссылки могут видеть только зарегистрированные пользователи. ] SELECT
     
    EndProgGameOver:                    
    [Ссылки могут видеть только зарегистрированные пользователи. ] 12, 15
    [Ссылки могут видеть только зарегистрированные пользователи. ] "GAME OVER!"
    GOTO EndProg
     
    EndProgWin:
    [Ссылки могут видеть только зарегистрированные пользователи. ] 12, 15
    [Ссылки могут видеть только зарегистрированные пользователи. ] "YOUR WIN!"
    EndProg:
    Ответить с цитированием  
     

  2. 2 пользователя(ей) сказали cпасибо:

    >Quiet Snow< (18.05.2012), pingvin (30.04.2012)

  3. #2  
    Профи
    Регистрация
    08.11.2010
    Сообщений
    106
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Истинно программирования стиль ваш профессионален.
    Я так не люблю все эти осмысленные переменные :) надо попробовать как играетца;)
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Ответить с цитированием  
     

  4. #3  
    Гуру Аватар для Konstantin Shcherba
    Регистрация
    08.11.2010
    Сообщений
    1,336
    Сказал(а) спасибо
    26
    Поблагодарили 139 раз(а) в 107 сообщениях
    Записей в блоге
    1
    Цель создать шедевр я не ставил. :) Хотел помочь пользователю Dimanper с его "питоном". Играется ничего даже, провел супернагрузочное тестирование с 100-ней элементов еды, глюков замечено не было. :)
    Ответить с цитированием  
     

  5. #4  
    Новичок
    Регистрация
    08.12.2010
    Сообщений
    3
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Да уж, осмысленные переменные я тоже не выношу, больно их писать долго :D А за питончика спасибо, но я всё равно свою напишу, ведь это моя цель...
    Ответить с цитированием  
     

  6. #5  
    Гуру Аватар для Konstantin Shcherba
    Регистрация
    08.11.2010
    Сообщений
    1,336
    Сказал(а) спасибо
    26
    Поблагодарили 139 раз(а) в 107 сообщениях
    Записей в блоге
    1
    Dimanper, не сомневаюсь.
    Ответить с цитированием  
     

  7. #6  
    Новичок
    Регистрация
    24.11.2010
    Сообщений
    20
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Прекрасная змейка, с удовольствием в нее поиграл :)
    Ответить с цитированием  
     

  8. #7  
    Гуру Аватар для Konstantin Shcherba
    Регистрация
    08.11.2010
    Сообщений
    1,336
    Сказал(а) спасибо
    26
    Поблагодарили 139 раз(а) в 107 сообщениях
    Записей в блоге
    1
    alf, не появилось женание доработать проект? :)
    Ответить с цитированием  
     

  9. #8  
    Новичок
    Регистрация
    24.11.2010
    Сообщений
    20
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    qbasic, я бы с радостью, но боюсь что пока моих знаний маловато) Надеюсь это только пока :)
    Ответить с цитированием  
     

  10. #9  
    Новичок
    Регистрация
    26.04.2012
    Сообщений
    3
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    я новичёк в QB так что возможно это глупый вопрос, но как сделать игру повторяющийся ? например проиграл и начал с начала ?
    пробовал через goto но выдаёт ошибку
    Последний раз редактировалось Reimon; 26.04.2012 в 12:20.
    Ответить с цитированием  
     

  11. #10  
    Профи Аватар для Dimon012
    Регистрация
    09.02.2011
    Адрес
    Владивосток
    Сообщений
    850
    Сказал(а) спасибо
    29
    Поблагодарили 130 раз(а) в 108 сообщениях
    Записей в блоге
    3
    Люди! ну что вы все goto, да goto, нельзя так однако!
    Ответить с цитированием  
     

Страница 1 из 2 12 ПоследняяПоследняя
Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Проект игры змейка от >Quiet Snow<.
    от >Quiet Snow< в разделе Проекты на Basic
    Ответов: 9
    Последнее сообщение: 09.05.2018, 20:56
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •