Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Java > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 09.02.2018, 23:04   #21
leprekod
Пользователь
 
Регистрация: 18.12.2016
Сообщений: 35
Репутация: 10
По умолчанию

Вот на этом я застрял
Код:

N = 3
chisla = [1, 2, 3, 4, 5, 6, 7, 8]//spisok(N)
Tablica(N)
jfrm.setVisible(true)

def Tablica(N) {for (int I = 0; I < N**2 - 1; I++) {knopka(N, I)}}
def knopka(N, I) {  
  Y = (int)(I/N); X = I%N 
  jbtnCh = new JButton(text: chisla[I], actionPerformed: {e -> e.getSource().setText(null); Poisk(N, I)})    
  gbc.gridy = Y+1; gbc.gridx = X+1  
  jbtnCh.setPreferredSize(btnDim)   
  gbag.setConstraints(jbtnCh, gbc)
  jfrm.getContentPane().add(jbtnCh)
}
def Poisk(N, I) {    
  if (((F = I-N) >= 0     &&  chisla[F] == null) ||
      ((F = I+1) <  N**2  &&  chisla[F] == null) ||
      ((F = I+N) <  N**2  &&  chisla[F] == null) ||
      ((F = I-1) >= 0     &&  chisla[F] == null))
      {chisla[F] = chisla[I]; knopka(N, F); chisla[I] = null}     
}

В данный момент мне надо знать что надо поместить вместо setText(null), что-бы кнопка удалялась, и как поместить полученное в ветку then метода def Poisk(N, I) , что-бы удалялась только кнопка соседняя с пустым полем ...
leprekod вне форума   Ответить с цитированием
Старый 26.04.2018, 14:57   #22
leprekod
Пользователь
 
Регистрация: 18.12.2016
Сообщений: 35
Репутация: 10
По умолчанию

Код:

N = 3
chisla = [1, 2, 3, 4, 5, 6, 7, 8, ""]//spisok(N)
Tablica()
Oglavlenie()
jfrm.setVisible(true)

def Tablica() {for (int I = 0; I < N**2; I++) knopka(I, N)}
def knopka(I, N) {  
  Y = (int)(I/N); X = I%N 
  jbtnCh = new JButton(text: chisla[I], actionPerformed: {e -> e.getSource().setText(Poisk(I))})    
  gbc.gridy = Y+1; gbc.gridx = X+1  
  jbtnCh.setPreferredSize(btnDim)   
  gbag.setConstraints(jbtnCh, gbc)
  jfrm.getContentPane().add(jbtnCh)
}
def Poisk(I) {         
    def W = {chisla[F] == ""}
  if (((F = I-N) >= 0     &&  W{}) || ((F = I+1) <  N**2  &&  W{}) ||
      ((F = I+N) <  N**2  &&  W{}) || ((F = I-1) >= 0     &&  W{}))
      {chisla[F] = chisla[I]; knopka(F, N); chisla[I] = ""} else {"${chisla[I]}"}     
}

GUI кое как работает, но, вот именно кое как
leprekod вне форума   Ответить с цитированием
Старый 20.05.2018, 15:34   #23
leprekod
Пользователь
 
Регистрация: 18.12.2016
Сообщений: 35
Репутация: 10
По умолчанию

Код:

//puzzle.groovy
package groovy

import groovy.swing.SwingBuilder
import javax.swing.*
import java.awt.FlowLayout
import java.util.*
import java.awt.*
import java.awt.event.*

jfrm = new JFrame('N-размерный puzzle')
gbag = new GridBagLayout()
gbc  = new GridBagConstraints()
gbc.fill = GridBagConstraints.BOTH
jfrm.getContentPane().setLayout(gbag)
jfrm.setSize(550, 550)
btnDim = new Dimension(50, 50)
gbc.weightx = 0.0       
gbc.insets  = new Insets(0, 0, 0, 0)

/*N = Math.round(Math.random()*10)
if (N <= 2) {N = 4} else {N}*/

public class Spisok_2 {def spisok_2(N) {Spisok m1 = new Spisok(); def order = m1.spisok(N)}}
                       def spisok(N) {m2 = new Spisok_2(); order = m2.spisok_2(N)}
N = 4
chisla = spisok(N)
Tablica()
Oglavlenie()
jfrm.setVisible(true)

def Tablica() {for (int I = 0; I < N**2; I++) knopka(I)}
def knopka(I) {  
  Y = (int)(I/N); X = I%N 
  jbtnCh = new JButton(text: chisla[I], actionPerformed: {e -> e.getSource().setText(Poisk(I))})    
  gbc.gridy = Y+1; gbc.gridx = X+1  
  jbtnCh.setPreferredSize(btnDim)   
  gbag.setConstraints(jbtnCh, gbc)
  jfrm.getContentPane().add(jbtnCh)
}
def Poisk(I) {         
    def W = {chisla[F] == ""}
  if (((F = I-N) >= 0     &&  W{}) ||
      ((F = I+1) <  N**2  &&  W{}) ||
      ((F = I+N) <  N**2  &&  W{}) ||
      ((F = I-1) >= 0     &&  W{}))
      {chisla[F] = chisla[I]; knopka(F); chisla[I] = ""} else {"${chisla[I]}"}     
} 
def Oglavlenie() {
  for (int G = 0; G < N; G++) { 
   jLabChY = new JLabel("Y = ${G}     ")
   gbc.gridy = G+1; gbc.gridx = 0
   gbag.setConstraints(jLabChY, gbc)
   jfrm.getContentPane().add(jLabChY)
//--------------------------------------
   jLabChX = new JLabel("    X = ${G}")
   gbc.gridy = 0; gbc.gridx = G+1
   gbag.setConstraints(jLabChX, gbc)
   jfrm.getContentPane().add(jLabChX)
   }
}

Код:

//Spisok.groovy
package groovy
  public class Spisok {
    Integer S, J, T, Q
    List Order
def spisok (N) {
    S = (N as Integer  )**2
    Order = [0]; Q = 0
  while (Q < S) {
     J = 0; T = Math.round(Math.random() * S)
    for (i in Order) {if (T != i) {++J}}
      if (J == Order.size()) {Order = Order + T}         
       Q = Order.size()
      }
    Order = Order - 0 + ""
   }
}

leprekod вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод/вывод в Groovy leprekod Общие вопросы по Java, Java SE, Kotlin 15 08.03.2017 10:09
Плагин для groovy Senatorik Общие вопросы по Java, Java SE, Kotlin 4 10.04.2016 01:14
GROOVY AlyonaM Помощь студентам 0 19.03.2014 10:30
Swing JLayer&&LayerUI mir_zol Общие вопросы по Java, Java SE, Kotlin 0 14.04.2013 20:00


01:46.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru