| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Помогите с написание игры. |
| Автор: antsh 19.9.2005, 00:38 |
| Для начала расскажу, что за игрушку мне нужно сделать, хотя многие её знают. Имеется 10 спичек, 2 игрока, за один раз можно взять 1-3 спички, игроки берут спички поочереди, побеждает тот, кто возьмёт последнюю спичку. Я сам новечёк в Яве, до этого писал на "древнем" Паскале. Почитал синтаксис, но ничего толком не собрал. Вопросы: 1. Какие команды используются для запроса: "Сколько спичек вы хотите взять? (Жду цифру)" 2. Какой алгоритм придумать можно для "искуственного интелекта" этой игрушки. Помогите люди у кого уже был опыт в создании игрушек. |
| Автор: LSD 19.9.2005, 09:57 | ||||||
Это тебе лучше спросить в http://forum.vingrad.ru/index.php?showforum=129. |
| Автор: 3,14 19.9.2005, 10:31 | ||||||
Ну ИИ здесь не нужен, а алгоритм для этой игры есть готовый, спроси здесь: http://forum.vingrad.ru/index.php?showforum=13, думаю помогут. |
| Автор: antsh 19.9.2005, 20:24 |
| Спасибо за хелп, обхожусь пока что "TextIO", вроде достаточно для ввода, вывода. Написал эту игрушку на Паскале, теперь имею чёткое представление что нужно делать. Вот столкнулся с проблемой: не знаю как обозначаются и используются массивы в Яве Классы в Яве это тоже самое что и процедуры? |
| Автор: LSD 19.9.2005, 20:35 | ||
Массивы в Java похожи на массивы в паскале, только отсчет идет от 0 и размер можно задавать во время исполнения. Например итерация по массиву выглядит приблизительно так:
Классы в Java похожи не на процедуры, а на объекты паскаля. |
| Автор: antsh 19.9.2005, 21:49 | ||
| что то не понятно мне можешь пожалуста конвертнуть этот код из Паскаля в Яву, мне так будет понятней.
|
| Автор: batigoal 19.9.2005, 21:55 | ||
А вообще, любая книжка по основам языка сняла бы такие вопросы. |
| Автор: Ch0bits 20.9.2005, 06:01 | ||
x++; |
| Автор: LSD 20.9.2005, 07:48 | ||||
Только итерацию надо делать от 0, а не от 1. |
| Автор: batigoal 20.9.2005, 07:51 |
| А, точно. В Паскале ведь с единицы нумеруется. Подправил. |
| Автор: antsh 20.9.2005, 13:51 | ||
| Уже начинаю въезжать в синтаксис языка. Но что то мне не понятно почему программа не выдаёт в конце нули и потом нули с единицами. Должно выходить 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 Посмотрите плз.
|
| Автор: LSD 20.9.2005, 14:03 |
| Ты наступил на одни очень интерестные грабли Когда ты пишешь ' ' - это задает не строку и константу типа char, а char в Java числовой тип и может складываться с другими числовыми типами, таким образом когда ты пишешь s[i]+ ' ', char преобразуется в int и вычисляется сумма, которая затем и печатается. Чтобы избежать такого надо писать " " - вот это уже строка и + будет выполнять конкатенацию строк. |
| Автор: antsh 20.9.2005, 14:51 |
| Да верное это я не заметил когда переводил из паскаля, но всё равно это не решает проблемы, теперь он вообще ничего не выдаёт Разобрался проблема была в "for (i = 0;i<n ; i++)" Вопрос в чём разница между "=" и "=="? |
| Автор: LSD 20.9.2005, 14:53 |
| У меня выдает 0 0 0 0 0 0 0 0 0 0. |
| Автор: batigoal 20.9.2005, 15:14 |
| = - это присваивание (то же, что у вас := ) == - это сравнение |
| Автор: antsh 20.9.2005, 15:49 |
| Хорошо тогда почему когда я пишу "for (i=1; i==n;i++)", то у меня ничего не выдаётся, а когда пишу "for (i = 1; i<=n; i++)" всё работает как надо. я поправил код, теперь он верно работает. Должно быть 2 ряда, в нижнем единицы означают выгрышные спички. |
| Автор: LSD 20.9.2005, 15:57 |
| В Java цикл for работает не так как в Pascal. Цикл for выполняется до тех пор пока условие после первой точки с запятой истинно, т.е. в первом случае пока i равно n, если это условие сразу не верно, то цикл не выполнится ни разу. |
| Автор: antsh 20.9.2005, 16:14 |
| LSD Аааа теперь ясно, большое спасибо, пойду дальше думать |
| Автор: antsh 20.9.2005, 18:07 | ||
| Возникла проблема с вызовом процедур. Что нужно писать на месте параметров, хочу из основного блока программы перенсти в процедуру i,n,m.
Второй вопрос: имею 2 - 3 процедуры, хочу чтобы на всех были одни переменные - глобальные переменные, как их указывать |
| Автор: LSD 20.9.2005, 19:18 | ||||
Поясни поконкретней.
В Java нет процедур и глобальных переменных, есть методы класса и поля класса. Поля класса бываю статические и нет, статические принадлежат всем экземплярам класса и существуют в единственном экземпляре. Не статические поля принадлежат конкретному экземпляру и их существует столько сколько созданно объектов. Методы тоже бывают статические и не статические, статические методы могут обращаться только к статическим методам и полям, не статические методы могут обращаться к любым методам и полям. |
| Автор: antsh 20.9.2005, 20:49 | ||
LSD
Вообщем ситуация такая: у меня одна процедура завязана на другой. Комп перескакивает из одной в другую постоянно, в итоге когда всё сделано, делается остановка программы. Как мне возможно это всё реализовать? |
| Автор: LSD 20.9.2005, 21:00 |
| Как понять перескакивает, ты пишешь код он выполняется, если надо вызываешь другие методы, тогда начинают выполняться они, по завершению этих методов продолжает выполняться метод из которого был вызов. Это ничем от паскаля не отличается. |
| Автор: antsh 20.9.2005, 21:39 | ||
| LSD Значит мне нужно знать как создаются новые методы и как в них переходить(вызывать). Метод - можно представить как процедура, ведь верно? Вот код, проблема в том, что я из одного метода в другой параметры не могу перенести.
|
| Автор: batigoal 20.9.2005, 21:39 |
| Почему бы все-таки не посмотреть книгу по Java fundamentals? |
| Автор: LSD 20.9.2005, 21:51 | ||
Для выхода из приложения можно использовать System.exit(0). А вот насчет передачи параметров я так и не понял, чем тебя такой способ не устраивает:
|
| Автор: javastic 21.9.2005, 09:28 |
| antsh, вся проблема в том (насколько я понял по твоим суждениям) что ты думаешь на уровне модульного типа программирования, а не на уровне объектно-ориентированного, поэтому некоторые вещи для тебя не понятны. Попробуй поискать в Интернете статьи с описанием объектно-ориентированной парадигмы и сразу всё станет понятно. |
| Автор: javastic 21.9.2005, 09:44 | ||
antsh, чтобы было проще понять как в яве выглядят аналоги процедур и функций как в паскале:
|
| Автор: antsh 22.9.2005, 14:20 |
| Боьшое всем спасибо за оказанную помощь |
| Автор: antsh 22.9.2005, 14:35 |
| аа ещё последний вопрос: как объядинить 2 условия к примеру while(n>0 and n<4){....} |
| Автор: Dancer 22.9.2005, 15:17 |
| while((n > 0) && (n <4)){} && - AND || - OR ! - NOT Ты же книжку купил |
| Автор: antsh 22.9.2005, 15:31 |
| Dancer Спасибо, там то всё есть, книжонка более 300 страниц, только пока найду пройдёт пол дня |
| Автор: Zandr 23.9.2005, 07:27 |
| У нее что, оглавления нет? |
| Автор: antsh 23.9.2005, 13:31 |
| ZandrКнига отпечатанная, друг сэекономил на названии книги и оглавлении, либо его вообще не было, вообще нету - факт А домашку сдал на 5 |
| Автор: javastic 23.9.2005, 15:29 |
| Не за что. |