Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с написание игры. Игра со спичками.(консольный вид) 
:(
    Опции темы
antsh
  Дата 19.9.2005, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 72
Регистрация: 16.9.2005

Репутация: нет
Всего: нет



Для начала расскажу, что за игрушку мне нужно сделать, хотя многие её знают.

Имеется 10 спичек, 2 игрока, за один раз можно взять 1-3 спички, игроки берут спички поочереди, побеждает тот, кто возьмёт последнюю спичку.

Я сам новечёк в Яве, до этого писал на "древнем" Паскале. Почитал синтаксис, но ничего толком не собрал.

Вопросы:
1. Какие команды используются для запроса: "Сколько спичек вы хотите взять? (Жду цифру)"
2. Какой алгоритм придумать можно для "искуственного интелекта" этой игрушки. Помогите люди у кого уже был опыт в создании игрушек. smile
PM   Вверх
LSD
Дата 19.9.2005, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(antsh @ 19.9.2005, 01:38)
1. Какие команды используются для запроса: "Сколько спичек вы хотите взять? (Жду цифру)"

Код
System.out.print("Enter number:");
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String str = reader.readLine();
int i = Integer.parseInt(str);
System.out.println(i+1);



Цитата(antsh @ 19.9.2005, 01:38)
2. Какой алгоритм придумать можно для "искуственного интелекта" этой игрушки. Помогите люди у кого уже был опыт в создании игрушек.

Это тебе лучше спросить в Программирование игр, графики и искусственного интеллекта.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
3,14
Дата 19.9.2005, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

Репутация: 6
Всего: 24



Цитата(antsh @ 19.9.2005, 00:38)
1. Какие команды используются для запроса: "Сколько спичек вы хотите взять? (Жду цифру)"

Код

        byte [] buff = new byte [5];
        System.in.read(buff);
        int matchesCount = Integer.parseInt(new String(buff).trim());

Цитата(antsh @ 19.9.2005, 00:38)
2. Какой алгоритм придумать можно для "искуственного интелекта" этой игрушки. Помогите люди у кого уже был опыт в создании игрушек.

Ну ИИ здесь не нужен, а алгоритм для этой игры есть готовый, спроси здесь: http://forum.vingrad.ru/index.php?showforum=13, думаю помогут.


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
antsh
Дата 19.9.2005, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 72
Регистрация: 16.9.2005

Репутация: нет
Всего: нет



Спасибо за хелп, обхожусь пока что "TextIO", вроде достаточно для ввода, вывода.

Написал эту игрушку на Паскале, теперь имею чёткое представление что нужно делать. Вот столкнулся с проблемой: не знаю как обозначаются и используются массивы в Яве smile
Классы в Яве это тоже самое что и процедуры? smile
PM   Вверх
LSD
Дата 19.9.2005, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Массивы в Java похожи на массивы в паскале, только отсчет идет от 0 и размер можно задавать во время исполнения. Например итерация по массиву выглядит приблизительно так:
Код
String[] strings = new String[100];
for(int i = 0; i < array.length; i++)
{
  ...
}


Классы в Java похожи не на процедуры, а на объекты паскаля.

Это сообщение отредактировал(а) LSD - 19.9.2005, 20:36


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
antsh
Дата 19.9.2005, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 72
Регистрация: 16.9.2005

Репутация: нет
Всего: нет



что то не понятно мне smile

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

Код

s : array[1..100] of byte;
win : array[1..100] of byte;

for i:=1 to n do s[i]:=0;
while (n-(m+1)*x)>0 do
begin
inc(x);
win[x]:=n-(m+1)*(x-1);
s[win[x]]:=1;
end;


PM   Вверх
batigoal
Дата 19.9.2005, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Код

byte[] s = new byte[100];
byte[] win = new byte[100];

for (int i = 0; i<n; i++)
  s[i]=0;

while ((n-(m+1)*x)>0)
{
  x++;
  win[x]=n-(m+1)*(x-1);
  s[win[x]]=1;
}


А вообще, любая книжка по основам языка сняла бы такие вопросы.

Это сообщение отредактировал(а) Lamer George - 20.9.2005, 07:52


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Ch0bits
Дата 20.9.2005, 06:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Python Dev.
****


Профиль
Группа: Завсегдатай
Сообщений: 2124
Регистрация: 21.2.2005
Где: Казань

Репутация: 2
Всего: 62



Цитата(Lamer @ 19.9.2005, 21:55)
inc(x); // не понял, что это значит, оставил, как есть

x++;
PM WWW   Вверх
LSD
Дата 20.9.2005, 07:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(Lamer @ 19.9.2005, 22:55)
Код
...
for(int i = 1; i<n; i++)
  s[i]=0;
...

Только итерацию надо делать от 0, а не от 1.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
batigoal
Дата 20.9.2005, 07:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



А, точно. В Паскале ведь с единицы нумеруется. Подправил.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
antsh
Дата 20.9.2005, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 72
Регистрация: 16.9.2005

Репутация: нет
Всего: нет



Уже начинаю въезжать в синтаксис языка. Но что то мне не понятно почему программа не выдаёт в конце нули и потом нули с единицами. Должно выходить

0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 1 0 0 0 1

Посмотрите плз.

Код

public class Input {

                  public static void main(String[] args) {

                     int n,m,w,x,i;
                     

/*                     System.out.println("Please type a number of matches: ");
                     n = TextIO.getInt();
                  
                     System.out.println("Please type a number of matches to be taken at a time: ");
                     m = TextIO.getInt();*/
                     n=10;
                     m=3;
                     int[] s = new int[100];    
                 int[] win = new int[100];    
                     for (i = 1; i<=n; i++){s[i]=0;System.out.print(s[i]+" ");}
                     System.out.println();
                     
                     x=0;
                     while ((n-(m+1)*x)>0){
                      x++;
                      win[x]=n-(m+1)*(x-1);
                      s[win[x]]=1;
                      }
                     for (i=1; i<=n;i++){System.out.print(s[i]+" ");}
                 
                     
                  }
}


Это сообщение отредактировал(а) antsh - 20.9.2005, 15:50
PM   Вверх
LSD
Дата 20.9.2005, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Ты наступил на одни очень интерестные грабли smile

Когда ты пишешь ' ' - это задает не строку и константу типа char, а char в Java числовой тип и может складываться с другими числовыми типами, таким образом когда ты пишешь s[i]+ ' ', char преобразуется в int и вычисляется сумма, которая затем и печатается.
Чтобы избежать такого надо писать " " - вот это уже строка и + будет выполнять конкатенацию строк.

Это сообщение отредактировал(а) LSD - 20.9.2005, 14:03


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
antsh
Дата 20.9.2005, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 72
Регистрация: 16.9.2005

Репутация: нет
Всего: нет



Да верное это я не заметил когда переводил из паскаля, но всё равно это не решает проблемы, теперь он вообще ничего не выдаёт smile

Разобрался проблема была в "for (i = 0;i<n ; i++)"

Вопрос в чём разница между "=" и "=="?

Это сообщение отредактировал(а) antsh - 20.9.2005, 15:03
PM   Вверх
LSD
Дата 20.9.2005, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



У меня выдает 0 0 0 0 0 0 0 0 0 0.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
batigoal
Дата 20.9.2005, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



= - это присваивание (то же, что у вас := )

== - это сравнение


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0582 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.