Воскресенье, 24 Ноября 2024, 18:09

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Игра(так сказать)
ИгроделДата: Среда, 01 Сентября 2010, 13:50 | Сообщение # 1
почетный гость
Сейчас нет на сайте
'^' - есть ГГ. есть уровень 10 на 20

Вопрос: как сделать чтобы '^' двигался по уровню при помощи стрелок??


Pascal/Delphi/C++/HTML/CSS/jQuery/FLASH


Сообщение отредактировал Игродел - Среда, 01 Сентября 2010, 13:54
WXZRWДата: Среда, 01 Сентября 2010, 14:10 | Сообщение # 2
Thousand faces conspiration
Сейчас нет на сайте
Ориентация у ГГ есть или движение тупо влево/вправо/вверх/вниз?

Либо тривиально x,y += step_value; Либо интерполируй по линии.

ИгроделДата: Среда, 01 Сентября 2010, 15:16 | Сообщение # 3
почетный гость
Сейчас нет на сайте
Quote (WXZRW)
движение тупо влево/вправо/вверх/вниз
да.

вот

Code

#include <iostream>
#include <windows.h>

using namespace std;

char Map [10][20] = { "###################",   
                       "#                 #",
                       "# ^               #",   
                       "#                 #",
                       "#                 #",
                       "#                 # ",
                       "#                 #",
                       "#                 #",
                       "#                 #",  
                       "#                 #",
                       "###################"};
int GameSpeed = 200;                       
bool end = false;

int main()
{
      while(end == false)
      {
             system("CLS");        
             for(int y = 0; y < 10; y++)
             {
                   cout << Map[y] << endl;
             }
      }
      return 0;
}

это то что есть. как сделать чтобы он двигался при помощи стрелок


Pascal/Delphi/C++/HTML/CSS/jQuery/FLASH


Сообщение отредактировал Игродел - Среда, 01 Сентября 2010, 15:27
bumДата: Среда, 01 Сентября 2010, 17:25 | Сообщение # 4
почетный гость
Сейчас нет на сайте
Игродел, вам не кажется, что вы пытаетесь учить программирование не с того конца? Не думал, что когда-то кому-то это скажу, но я посоветовал бы вам сначала научиться писать простенькие программы на Бейсике. Не вижу никакого смысла разбирать вышеприведенный код, у вас сильный пробел в знаниях самых азов.

Сообщение отредактировал bum - Среда, 01 Сентября 2010, 17:26
ИгроделДата: Четверг, 02 Сентября 2010, 12:30 | Сообщение # 5
почетный гость
Сейчас нет на сайте
bum Разве я мало учился?!!! Ходил год на Pascal, изучал Delphi, ActionScript 2.0.

Basic я учить не буду! даже не мечтайте.

Quote (bum)
простенькие программы на Бейсике

уже наделался. только не на бейсике, а на паскале и делфи.


Pascal/Delphi/C++/HTML/CSS/jQuery/FLASH
bumДата: Четверг, 02 Сентября 2010, 13:24 | Сообщение # 6
почетный гость
Сейчас нет на сайте
Quote (Игродел)
Разве я мало учился?!!!

Да вы еще вообще не учились. Люди всю жизнь учаться. Я уже наверное 10 лет программирую, если не чуть больше, и то часто натыкаясь на что-то новое чуствую себя идиотом. Вы же не выучив ничего подались писать на C++, причем сразу игры. Вы реально думаете, что от самого этого факта ваши программы станут лучше?

Quote (Игродел)
уже наделался. только не на бейсике, а на паскале и делфи.

Единственное на, что я могу списать эту фразу, так это на юношеский максимализм. Код приведенный выше говорит яснее любых слов, он ужасен, у вас нет понимания основ программирования. Не пытайтесь себя обмануть, толку от этого никакого. Нужно только учиться и тренироваться.

Изучать и изучить - разные вещи. Изучить основные конструкции языка программирования - не значит научиться программировать.

Я не могу смотреть на двумерный массив char'ов (нафига???) там где можно обойтись просто двумя целочисленными координатами x и y без всяких массивов. Я не могу смотреть когда люди называют переменную словом end (которое в большинстве языков зарезервировано). Да еще и объявляют переменную, единственная роль которой, быть критерием для завершения цикла, в глобальной области видимости. Вы любитель граблей, вам нравиться спать в обнимку с отладчиком? Если привыкнете так писать, то ваша первая же программа объемом больше тысячи строк (а это не много на самом деле) превратиться в кошмар в сопровождении для вас же. Вы пишите while(end == false) вместо while(!end). Вы используете разные стили при именовании переменных (GameSpeed и end). Ваш опыт программирования по этому коду виден за километр.

По теме, вот ссылка на аналогичное обсуждение на stackoverflow.com - http://stackoverflow.com/questions/2067893/c-console-keyboard-events
Вся необходимая информация там есть. Если хотите так уж работать с клавишами со стрелками, то придется разбираться с WinAPI (я так вижу, что пишете под Windows). Вот только толку от попытки его изучения при таком низком уровне общих знаний нет. Вы бы сначала в консоли что-то типа "быков и коров" написали бы. Или крестики-нолики, также в чистой консоли без заморочек. Вам практика нужна, научиться реализовывать алгоритмы и не задумываться над выбором структур данных, а не совершенно бессмысленные попытки изучить программирования начиная с середины.

Сообщение отредактировал bum - Четверг, 02 Сентября 2010, 13:32
ИгроделДата: Четверг, 02 Сентября 2010, 17:10 | Сообщение # 7
почетный гость
Сейчас нет на сайте
Quote (bum)
Люди всю жизнь учаться. Я уже наверное 10 лет программирую

в этом вы не правы, люди всякие бывают. массив нужен для уровня, end потому что мой компилятор не принимает другого
Quote (bum)
while(end == false) вместо while(!end)

какая разница как я это написал.

Добавлено (02.09.2010, 17:10)
---------------------------------------------
крестики нолики я уже писал


Pascal/Delphi/C++/HTML/CSS/jQuery/FLASH


Сообщение отредактировал Игродел - Четверг, 02 Сентября 2010, 17:24
K0DAK47Дата: Четверг, 02 Сентября 2010, 17:22 | Сообщение # 8
Cat Development
Сейчас нет на сайте
Quote (Игродел)
я себя не обманываю, код не мой, я не придумал а просто списывал с видео

Код неверен. Даже начинающий на бейсике не допустит таких грубейших ошибок. Учите бейсик. Вы бы ещё с Ассемблера начали.


.xm
Шаблон для разработчиков
ИгроделДата: Четверг, 02 Сентября 2010, 17:27 | Сообщение # 9
почетный гость
Сейчас нет на сайте
bum большая часть вашего сообщения - я оценил как оскорбление

Pascal/Delphi/C++/HTML/CSS/jQuery/FLASH
bumДата: Четверг, 02 Сентября 2010, 17:49 | Сообщение # 10
почетный гость
Сейчас нет на сайте
Quote (Игродел)
большая часть вашего сообщения - я оценил как оскорбление

Кстати совершенно зря.
Stas96Дата: Четверг, 02 Сентября 2010, 18:39 | Сообщение # 11
Programmer and Game Designer
Сейчас нет на сайте
Игродел, вот держи.
Code

#include <iostream>   

#include <conio.h>  // _getch()
#include <stdlib.h> // поддержка функции очистки экрана system("cls")

using namespace std;

void main()
{

int act;    // переменная для хранения ввода пользователя

int x = 0;   // две переменные для хранения координат пользователя
int y = 0;
char map[20][20]; // двумерный массив для хранения игровой карты

// блок инициализации массива
// внешний цикл отвечает за строки
for (int i = 0; i < 20; i++)
{
   // внутренний цикл отвечает за столбцы
   for (int j = 0; j< 20; j++)
   {
    map[i][j]= ' ' ;
   }
}

map[0][0] = '^'; // помещаем игровой персонаж в начало координат
while (1)
{
   system("cls"); // вызов функции очистки экрана

   for (int i = 0; i < 20; i++)
   {
    for (int j = 0; j < 20; j++)
    {
     cout << map[i][j]; // в циклах поэлементно выводится массив
    }
    cout << "\n"; // переход на новую строку после каждого "ряда"
   }

   act = _getch();
     

   switch (act)
   {
    case -32:
    break;
    case 27:
     exit(0);
    break;
    case 75:
     map[x][y] = ' '; // "Убираем" объект со старой координаты
     y--;             // изменяем координаты
     map[x][y] = '^'; // "рисуем" объект на новом месте
    break;
    case 77:
     map[x][y] = ' ';
     y++;
     map[x][y] = '^';
    break;
    case 80:
     map[x][y] = ' ';
     x++;
     map[x][y] = '^';
    break;
    case 72:
     map[x][y] = ' ';
     x--;
     map[x][y] = '^';
    break;
   }
} // конец цикла while

cin.get();
cin.get();
}

Если код не понятен, говори, напишу еще комментарии.


Сообщение отредактировал Stas96 - Четверг, 02 Сентября 2010, 18:43
skorpiДата: Четверг, 02 Сентября 2010, 19:28 | Сообщение # 12
постоянный участник
Сейчас нет на сайте
стоп стоп стоп. Если я программировал в delphi(признаю там легко программировать) то мне будет тяжело учить с++ ? и стоит ли пытатся программировать на бэйсике? если да то смал или пур басик пойдёт?


Сообщение отредактировал skorpi - Четверг, 02 Сентября 2010, 20:27
bumДата: Четверг, 02 Сентября 2010, 20:16 | Сообщение # 13
почетный гость
Сейчас нет на сайте
Quote (skorpi)
стоп стоп стоп. Если я программировал в delphi(признаю там легко программировать) то мне будет тяжело учить с++ ?

Нет, после Delphi (если конечно ваше программирование там не ограничивалось только разбрасыванием кнопочек по форме и вечном поиске готовых компонентов) выучить C++ довольно просто. Дело в том, что эти языки не смотря на кажущееся внешнее различие идеологически довольно близки. Некоторые правда, которые думают, что программирование это и есть расставлять кнопочки, будут иметь проблемы с обучением не только C++ но и вообще чего угодно.

Quote (skorpi)
и стоит ли пытатся программировать на бэйсике? если да то смал или пур басик пойдёт?

Если это сарказм, то он не уместен. Есстественно бейсик пригоден только на самом раннем этапе обучения. Я не говорю здесь о VB, некоторые считают его удобным чтобы быстро набросать какую-то примитивную програмку. Я не являюсь его приверженцем.

Quote (skorpi)
и да прблемы с кодом бывает когда пишу программу на си (типа привет мир и др) то постоянно сбиваюсь и начинаю писать на делфи это сойдет? и если буду учить бэйсик то потом таких проблем при переходе на си не будет?

Что-то не оценил юмора. Здесь нужно смеяться? На каком месте?


Сообщение отредактировал bum - Четверг, 02 Сентября 2010, 20:19
ИгроделДата: Пятница, 03 Сентября 2010, 13:20 | Сообщение # 14
почетный гость
Сейчас нет на сайте
Stas96 Спасибо Большое smile

Добавлено (03.09.2010, 13:20)
---------------------------------------------

Quote (bum)
совершенно зря
почему зря? прочитайте ваше сообщение снова. если перевести на язык который сейчас понимают, то это значит: вы полный ноль, вы ни чего не умеете, идите лучше hello world на бейсике пишите.


Pascal/Delphi/C++/HTML/CSS/jQuery/FLASH
bumДата: Пятница, 03 Сентября 2010, 14:53 | Сообщение # 15
почетный гость
Сейчас нет на сайте
Quote (Игродел)
почему зря? прочитайте ваше сообщение снова. если перевести на язык который сейчас понимают, то это значит: вы полный ноль, вы ни чего не умеете, идите лучше hello world на бейсике пишите.

Это не оскорбление, это констатация факта. Далее уже все зависит от вас. Если и дальше будете всякую критику воспринимать как личное оскорбление, то так и останетесь на том же уровне. Либо же можете серьезно и целеустремленно заняться совершенствованием своих навыков и в результате добиться успехов. Выбор за вами.


Сообщение отредактировал bum - Пятница, 03 Сентября 2010, 14:56
WXZRWДата: Пятница, 03 Сентября 2010, 15:07 | Сообщение # 16
Thousand faces conspiration
Сейчас нет на сайте
Quote (bum)
while(end == false) вместо while(!end)

Имхо не показатель, второй вариант быстрее не будет. Можно и while(end != true) написать, и что...

bumДата: Пятница, 03 Сентября 2010, 16:54 | Сообщение # 17
почетный гость
Сейчас нет на сайте
Quote (WXZRW)
Имхо не показатель, второй вариант быстрее не будет.

А о скорости никто и не говорил.
WXZRWДата: Пятница, 03 Сентября 2010, 17:01 | Сообщение # 18
Thousand faces conspiration
Сейчас нет на сайте
Quote (bum)
А о скорости никто и не говорил.

Хорошо, допустим. Тогда в чем соль? Разницы никакой, практически. Про внешний вид кода предлагаю не говорить, это не показатель.

bumДата: Пятница, 03 Сентября 2010, 17:31 | Сообщение # 19
почетный гость
Сейчас нет на сайте
Quote (WXZRW)
Хорошо, допустим. Тогда в чем соль? Разницы никакой, практически. Про внешний вид кода предлагаю не говорить, это не показатель.

Внешний вид кода - это основной показатель по которому можно определить реальный опыт программирования человека. Вы можете быть не согласны, я высказал свою точку зрения.

Я чесно говоря уже утратил нить спора.

WXZRWДата: Пятница, 03 Сентября 2010, 17:35 | Сообщение # 20
Thousand faces conspiration
Сейчас нет на сайте
Quote (bum)
Внешний вид кода - это основной показатель по которому можно определить реальный опыт программирования человека.

Я не собирался спорить, я хотел услышать обьяснение по какой причине вы придерживаетесь вашего мнения. То есть на этом разговор закончен, я получил то чего хотел.

  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг