Deutsch

DOS игра 16.03.2025

57  
uscheswoi_82 патриот16.03.25 17:02
NEW 16.03.25 17:02 

Всем привет!

Тут Аркада Win16 27.02.2025,

тут Игры 28.03.2024,

тут Игры чII (продолжение) 29.03.2024,

тут Игры ч3, воспоминание 31.05.2024,

тут Воспоминания, Turbo C 01.06.2024,

тут Кто возьмёт миллион 28.04.2024,

и тут Хотелки, воспоминания делаем игру 29.09.2024 я делал или пытался сделать 2D игры.

Короче хочу сегодня сделать DOS игру на Borland C++ 4.5. В Казахстане в г. Алматы у мoeгo oтцa принёс с работы домой точно такой-же компилятор:






















Что-то уже сделал, вот код:

#include <stdio.h>
#include <conio.h>
#include <bios.h>
#define WIDTH  79
#define HEIGHT 23 
#define ESC    283
#define LEFT   19200
#define RIGHT  19712
#define UP     18432
#define DOWN   20480

int main(void) {
  int key, x, y, score;
  key = 0;
  score = 0;
  x = 1;
  y = 1;
  clrscr();
  while(key != ESC) {
    key = bioskey(0);
    switch(key) {
      case LEFT:
        if(x > 1) x--;
      break;
      case RIGHT:
        if(x <= WIDTH) x++;
      break;
      case UP:
        if(y > 1) y--;
      break;
      case DOWN:
        if(y <= HEIGHT) y++;
      break;
    }
    clrscr();
    textattr(BLACK*0x10+LIGHTGRAY);
    gotoxy(1, 25);
    printf("У вас очков:d", score);
    gotoxy(x, y);
    printf("o");
    gotoxy(x, y);
  }
return 0;
}
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#1 
uscheswoi_82 патриот16.03.25 17:14
16.03.25 17:14 
в ответ uscheswoi_82 16.03.25 17:02

Улучшил код:

#include <stdio.h>
#include <conio.h>
#include <bios.h>
#define WIDTH  79
#define HEIGHT 23 
#define ESC    283
#define LEFT   19200
#define RIGHT  19712
#define UP     18432
#define DOWN   20480

int key, x, y, score;

void draw() {
  textattr(BLACK*0x10+LIGHTGRAY);
  gotoxy(1, 25);
  printf("У вас очков:d", score);
  gotoxy(x, y);
  printf("o");
  gotoxy(x, y);
}

void init() {
  key = 0;
  score = 0;
  x = 1;
  y = 1;
  draw();
}

int main(void) {
  clrscr();
  init();
  while(key != ESC) {
    key = bioskey(0);
    switch(key) {
      case LEFT:
        if(x > 1) x--;
      break;
      case RIGHT:
        if(x <= WIDTH) x++;
      break;
      case UP:
        if(y > 1) y--;
      break;
      case DOWN:
        if(y <= HEIGHT) y++;
      break;
    }
    clrscr();
    draw();
  }
  return 0;
}


Вуаля! Результат работы кода/игры:




Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#2