Игра(так сказать)
| |
Игродел | Дата: Среда, 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 Спасибо Большое Добавлено (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) Внешний вид кода - это основной показатель по которому можно определить реальный опыт программирования человека. Я не собирался спорить, я хотел услышать обьяснение по какой причине вы придерживаетесь вашего мнения. То есть на этом разговор закончен, я получил то чего хотел.
|
|
| |
|