Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101

Приложение, Андройд, ошибка

25.11.2012, 18:26. Показов 1911. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
package com.example.tictactoe;
 
import android.app.Activity;
import android.content.Intent;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
 
 
public class doska extends Activity implements OnClickListener {
    
 
    Button B11;
    Button B12;
    Button B13;
    Button B21;
    Button B22;
    Button B23;
    Button B31;
    Button B32;
    Button B33;
    Button bstart;
    static Button Btnn[][];
    int i;
    int j; 
    static int Ch[][];
    
    
    
 
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.doska);
    
    bstart = (Button) findViewById(R.id.bstart);
     bstart.setOnClickListener(this);
     
     Btnn = new Button[][] {
             { B11 = (Button) findViewById(R.id.b11),
     B12 = (Button) findViewById(R.id.b12),
     B13 = (Button) findViewById(R.id.b13)
     },
            { B21 = (Button) findViewById(R.id.b21),
     B22 = (Button) findViewById(R.id.b22),
     B23 = (Button) findViewById(R.id.b23)
     },
            { B31 = (Button) findViewById(R.id.b31),
     B32 =(Button) findViewById(R.id.b32),
     B33 = (Button) findViewById(R.id.b33)
     }
     };
     
     
     Ch = new int[][] {
             {0,0,0},
             {0,0,0},
             {0,0,0},
     };
    
     
     
    
     B11.setOnClickListener(this);
     B12.setOnClickListener(this);
     B13.setOnClickListener(this);
     B21.setOnClickListener(this);
     B22.setOnClickListener(this);
     B23.setOnClickListener(this);
     B31.setOnClickListener(this);
     B32.setOnClickListener(this);
     B33.setOnClickListener(this);
    
    
     
     Typeface fonto = Typeface.createFromAsset(this.getAssets(), "fonts/fonto.TTF");
     bstart.setTypeface(fonto);
  }
  
  
  
 
  
  
  public void onClick(View v) { 
      
      
      
         for( int i = 0; i<3; i++){
              for( int j = 0; j<3; j++){     
     if (v.getId() == Btnn[i][j].getId()){
          Btnn[i][j].setClickable(false);
          Ch[i][j] = 1;
          Comp.Comp1();
        //B12.setImageResource(R.drawable.нолик);
        // проверяется победа, ходит компьютер, проверяется победа. 
          
          
          
     }
    
              }
         }
    if (v.getId() == R.id.bstart){
         for( int i = 0; i<3; i++){
              for( int j = 0; j<3; j++){
              Btnn[i][j].setClickable(true);}
          }
    }
     
         
 
      }
}


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package com.example.tictactoe;
 
//import java.util.Random;
 
public class Comp {
    public static int t = 1;
    public static int q = 1;
    
    
    
 
    public static void Comp1() {
        
         if (doska.Ch[1][1]==1) {
            // B22.setImageResource(R.drawable.крестик);
             doska.Btnn[1][1].setClickable(false);
             doska.Ch[t][q]=2;
             
         }
         
         else {
            
          
             while((doska.Ch[t][q]==1)||(doska.Ch[t][q]==2)){
         t = (int) Math.random()%3;
         q = (int) Math.random()%3;
             }
             doska.Btnn[t][q].setClickable(false);
                // Btnn[t][q].getId().setImageResource(R.drawable.крестик);
                 doska.Ch[t][q]=2;
             
            
         }
    
    }
}

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

Добавлено через 3 часа 16 минут
кнопки создавал не програмно а визуально заранее, массив из нулей нужен для будущей проверки на победителя.
вся проблема в методе который я вызываю, без него все нормально. хотя ошибок эклипс не выдает.
буду рад любой помощи.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.11.2012, 18:26
Ответы с готовыми решениями:

Приложение андройд обходит запрет на доступ к настройкам роутера
На смартфоне установлено приложение TP-Link Tether, для простого управления настройками в роутере. Если смартфон подключен к сети по WiFi и...

Вылетает приложение андройд после нажатия backspace для очистки поля Edit
Написал простое приложение на Delphi ex7 скомпилировал под андройд на телефон запустил и при введении данных в едит в любое из 4 штук...

Ошибка сборки проекта по андройд QML
Здравствуйте, уважаемые форумчане! Изучаю qml на примере - пытаюсь создать приложение под андройд на QML. Столкнулся с проблемой при...

11
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.11.2012, 19:19
логи в студию.
0
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
25.11.2012, 19:27  [ТС]
Вот логи, лог debug и лог error.
0
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
25.11.2012, 19:33  [ТС]
вот они))
Миниатюры
Приложение, Андройд, ошибка   Приложение, Андройд, ошибка  
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.11.2012, 19:39
не вижу я здесь екзепшена, воспроизведите ошибку и скопируйте логи нормально - как текст.
0
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
25.11.2012, 20:03  [ТС]
это все логи с нажатия на доску игры до вылета ошибки.
в ErrorLog новый записей не появляется. все какб ы нормально.
дело то ли в бесконечном цикле, то ли в нехватке памяти эмулятора на мой взгляд.
Миниатюры
Приложение, Андройд, ошибка   Приложение, Андройд, ошибка   Приложение, Андройд, ошибка  

0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.11.2012, 20:06
выложите проект, завтра проверю у себя.
0
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
25.11.2012, 20:12  [ТС]
вот проект.
Вложения
Тип файла: rar tictactoe.rar (1.37 Мб, 12 просмотров)
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.11.2012, 20:07
Цитата Сообщение от metrolog Посмотреть сообщение
виснет и выходит ошибка
да не ошибка это никакая, это просто предложение закрыть активити, так как оно не отвечает потому что зацикливается здесь
Java
1
2
3
4
while ((doska.Ch[i][j] == 1) || (doska.Ch[i][j] == 2)) {
                i = (int) Math.random() % 3;
                j = (int) Math.random() % 3;
            }
смотрите описание метода Math.random() - Returns a pseudo-random double n, where n >= 0.0 && n < 1.0
соответственно i и j всегда будут равны 0 и единожды выполненное условия вхождение в while зацикливывает программу.
1
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
27.11.2012, 00:35  [ТС]
спасибо большое.
Еще вопрос.
Как сделать чтобы на эмуляторах визуально программа смотрелась одинаково? вроде размеры кнопок через dp прописывал, но все равно не очень красиво смотрится.
смотрел примеры данной программы там игровое поле создают программно, в чем приимущества такого создания? не легче их заранее разместить?
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
27.11.2012, 01:28
http://developer.android.com/i... pport.html
1
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
27.11.2012, 11:37
Заранее извиняюсь за небольшой оффтоп, но, раз уж здесь рассматривают логи, я хотел бы задать такой вопрос:
Я совсем недавно начал изучать разработку под Андроид, пока всё получается без разбора логов, но, тем не менее, в один прекрасный день я к ним всё равно обращусь. Так вот, - в какой литературе, или на каких ресурсах можно почитать о структуре лог-записей, сути сообщений в них, и вообще - о том, как на основании этой информации делать вывод об имеющихся ошибках?

Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.11.2012, 11:37
Помогаю со студенческими работами здесь

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

Андройд
Разбился экран на андройде ,можно как то залесь в него через комп ?!очень надо много важной информации ,телефон ...

Андройд 5.х
У меня такой вопрос, допустим у меня девайс на МТ6732 (ZTE Blade Q LUX), под него нету андройд 5.х в природе.... Вопрос стоит такого...

vba и андройд
Вопрос в следующем, хочу купить планшетник, НО, дешевый вариант с адройдом имеет возможность поставить офис, но на сколько я знаю...

Сервер и андройд
Подскажите, вот есть приложение на андройде, например для заказа пиццы, к какому серверу он подключается? Как называется такой сервер?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru