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

Поиск:

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


Шустрый
*


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

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



Хорошо тогда почему когда я пишу "for (i=1; i==n;i++)", то у меня ничего не выдаётся, а когда пишу "for (i = 1; i<=n; i++)" всё работает как надо.

я поправил код, теперь он верно работает. Должно быть 2 ряда, в нижнем единицы означают выгрышные спички.
PM   Вверх
LSD
Дата 20.9.2005, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



В Java цикл for работает не так как в Pascal.
Цикл for выполняется до тех пор пока условие после первой точки с запятой истинно, т.е. в первом случае пока i равно n, если это условие сразу не верно, то цикл не выполнится ни разу.


--------------------
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, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



LSD Аааа теперь ясно, большое спасибо, пойду дальше думать smile
PM   Вверх
antsh
Дата 20.9.2005, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Возникла проблема с вызовом процедур.

Что нужно писать на месте параметров, хочу из основного блока программы перенсти в процедуру i,n,m.


Код

...
...
void PC_move(... что тут??? ...);
                 

public static void PC_move(int i, int n, int m){.....}


Второй вопрос: имею 2 - 3 процедуры, хочу чтобы на всех были одни переменные - глобальные переменные, как их указывать smile
PM   Вверх
LSD
Дата 20.9.2005, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Цитата(antsh @ 20.9.2005, 19:07)
Возникла проблема с вызовом процедур.

Что нужно писать на месте параметров, хочу из основного блока программы перенсти в процедуру i,n,m.

Поясни поконкретней.


Цитата(antsh @ 20.9.2005, 19:07)
Второй вопрос: имею 2 - 3 процедуры, хочу чтобы на всех были одни переменные - глобальные переменные, как их указывать

В Java нет процедур и глобальных переменных, есть методы класса и поля класса. Поля класса бываю статические и нет, статические принадлежат всем экземплярам класса и существуют в единственном экземпляре. Не статические поля принадлежат конкретному экземпляру и их существует столько сколько созданно объектов. Методы тоже бывают статические и не статические, статические методы могут обращаться только к статическим методам и полям, не статические методы могут обращаться к любым методам и полям.


--------------------
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, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



LSD
Цитата
Поясни поконкретней.


Вообщем ситуация такая: у меня одна процедура завязана на другой. Комп перескакивает из одной в другую постоянно, в итоге когда всё сделано, делается остановка программы. Как мне возможно это всё реализовать? smile

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


Leprechaun Software Developer
****


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

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



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


--------------------
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, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



LSD Значит мне нужно знать как создаются новые методы и как в них переходить(вызывать). Метод - можно представить как процедура, ведь верно?

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

Код


public class Input {
    
                  public static void main(String[] args) {
                
                     
                  int n,m,v,x,i,sdvig;    

/*                     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;
                     sdvig=0;
                     System.out.println("Who will make the first turn? (PC - 1, Human - 2)");
                     v = TextIO.getInt();
                     System.out.println("-------------------------------------------------");
                     System.out.println();
                     if (v ==1) {System.out.println("You have chousen to play second ... ");
                     
                     }
                     
                     
                     if (v==2) {System.out.println("You have chousen to play first ... ");}
                     System.out.println("Now is your turn ...");}
                    

               public static void PC_move(int i, int n, int m,int sdvig){
          int x;
               System.out.print("Situation --> "); 
               for (i=0; i<=n;i++);{System.out.print("I ");}
               System.out.println("Now is the PC's move ...");
               
               //Glavnaja fishka----------------------------------
               int[] s = new int[100];     //Spichki
               int[] win = new int[100]; //Vqgrashnqe spichki
                    for (i = 0; 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); //Uznam skoljko i gde raspologajutsja vqgrashnqe spichki
                     s[win[x]]=1; //pomechaem ih
                     }
                    for (i=0; i<=n;i++){System.out.print(s[i]+" ");}
                    
                    //-------------------------------------------------------------
                    int move,k;
                    for (i=0;i<=n;i++)
               if (s[i+sdvig]==1){
                  
                  move = i;
                  System.out.println("PC takes: "+move+ "matches ...");
                  if (i+sdvig==n){System.out.print("You LOST :)"); /* Тут необходимо закончить программу.  */     }
                  System.out.println();
                                    
               }
                    
                    if (s[i+sdvig]==0){
                     
                     move = 1;
                     System.out.println("PC beret 1 spichku ...");
        
                    }
                    
                    sdvig=move+sdvig;
                    System.out.print("Situation --> "); 
               for (k=0; k<=(n-sdvig);k++);{System.out.print("I ");}    
               System.out.println("Now is your move ...");}
                 
}             

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


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


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

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



Почему бы все-таки не посмотреть книгу по Java fundamentals?


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


Leprechaun Software Developer
****


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

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



Для выхода из приложения можно использовать System.exit(0). А вот насчет передачи параметров я так и не понял, чем тебя такой способ не устраивает:
Код
public void doSome(int i, double d, String str)
{
  doSomePart1(i, d);
  doSomePart2(str);
}

private void doSomePart1(int i, double d)
{
...
}

private void doSomePart2(String str)
{
...
}



--------------------
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   Вверх
javastic
Дата 21.9.2005, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

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



antsh, вся проблема в том (насколько я понял по твоим суждениям) что ты думаешь на уровне модульного типа программирования, а не на уровне объектно-ориентированного, поэтому некоторые вещи для тебя не понятны. Попробуй поискать в Интернете статьи с описанием объектно-ориентированной парадигмы и сразу всё станет понятно.
smile


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
javastic
Дата 21.9.2005, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

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



antsh, чтобы было проще понять как в яве выглядят аналоги процедур и функций как в паскале:

Код

pascal                                                         java
---------------------------------------|-------------------------------
function a(x:integer) : integer;      int a(int x) {
var i: integer;                                   int i=1;
begin                                                return (int)(x+i);
i := 1;                                             }
a := (x + i);
end

procedure b(x: integer);                void b(int x) {
var i: integer;                                     int i=1;
begin                                                  System.out.println(x+i);
i := 1;                                             }
writeln(x+i);
end;



--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
antsh
Дата 22.9.2005, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Боьшое всем спасибо за оказанную помощь smile Особенно LSD. Написал всё через While, If. Достал книгу по Яве, буду теперь изучать. Просто проблема была в том, что сроки сдачи проги подходили, иначе штрафные получил бы. smile
PM   Вверх
antsh
Дата 22.9.2005, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



аа ещё последний вопрос:
как объядинить 2 условия к примеру while(n>0 and n<4){....}
PM   Вверх
Dancer
Дата 22.9.2005, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 29.4.2005
Где: Nizhniy Novgorod

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



while((n > 0) && (n <4)){}

&& - AND
|| - OR
! - NOT

Ты же книжку купил smile), разьве там нету? ну или на крайний случай скачай лубую по Java, и подглядывай туда smile


--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
Страницы: (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.0595 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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