Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
#1

Приложение, Андройд, ошибка - Программирование Android

25.11.2012, 18:26. Просмотров 1258. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2012, 18:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Приложение, Андройд, ошибка (Программирование Android):

Приложение на Андройд - Программирование Android
Всем привет! Интересен вопрос как создать приложение типа OLX(не реклама, кто не знает olx.ua это сайт бесплатных объявлении, у этого...

Первое приложение под андройд - Программирование Android
Посоветуйте пожалуйста, как лучше реализовать приложение. Суть в следующем. Есть район города, в районе есть куча пунктов назначения....

Переход на новое окно на андройд приложение - Программирование Android
Есть главное окно, в главном окне есть 2 кнопки перехода на разные новые окна. 1 кнопка переходит на новое окно, а вторая нет (указал в...

.net под андройд - Программирование Android
А кто-нибудь на .net под андройд программирует? А то у меня больше опыта по .net чем по Java. Стоит ли связываться вообще с .net под...

Вывод текста. Андройд - Программирование Android
Подскажите пожалуйсто, как вывести текст.а именно массив цифр и символов. как в С#. Console.Write(); Среда разработки для андройда...

Включение gps на андройд - Программирование Android
Здравствуйте! Нуждаюсь в помощи, пытаюсь реализовать такое: автоматическое вкл. gps при старте устройства и его нельзя отключить, если...

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

V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.11.2012, 20:06 #7
выложите проект, завтра проверю у себя.
0
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
25.11.2012, 20:12  [ТС] #8
вот проект.
0
Вложения
Тип файла: rar tictactoe.rar (1.37 Мб, 11 просмотров)
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.11.2012, 20:07 #9
Цитата Сообщение от 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
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
27.11.2012, 00:35  [ТС] #10
спасибо большое.
Еще вопрос.
Как сделать чтобы на эмуляторах визуально программа смотрелась одинаково? вроде размеры кнопок через dp прописывал, но все равно не очень красиво смотрится.
смотрел примеры данной программы там игровое поле создают программно, в чем приимущества такого создания? не легче их заранее разместить?
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
27.11.2012, 01:28 #11
http://developer.android.com/intl/ru...s_support.html
1
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
27.11.2012, 11:37 #12
Заранее извиняюсь за небольшой оффтоп, но, раз уж здесь рассматривают логи, я хотел бы задать такой вопрос:
Я совсем недавно начал изучать разработку под Андроид, пока всё получается без разбора логов, но, тем не менее, в один прекрасный день я к ним всё равно обращусь. Так вот, - в какой литературе, или на каких ресурсах можно почитать о структуре лог-записей, сути сообщений в них, и вообще - о том, как на основании этой информации делать вывод об имеющихся ошибках?

Спасибо!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2012, 11:37
Привет! Вот еще темы с ответами:

Нечто про Андройд и С++ - Программирование Android
Среда: Эклипс. Библиотека компилится там же. Проблема: не получается использовать пространство std и/или нужно/можно ли его вообще...

Не запускается приложения эмулятор на андройд - Программирование Android
Здравствуйте. Подскажите, пожалуйста причину. У меня не запускается приложение в эмуляторе(сам эмулятор запускается), выводит ошибку...

Написать простейшую программу для андройд - Программирование Android
Нужно написать простейшую программу в универ. Задание скину в личку.

Умный редирект на сайте установленном на андройд - Программирование Android
Здравствуйте, есть устройство андройд раздал с него точку доступа вай фай , отредактировал файл hosts и поднял на этом устройстве сайт, ...


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

Или воспользуйтесь поиском по форуму:
12
Yandex
Объявления
27.11.2012, 11:37
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru