Четверг, 21 Ноября 2024, 16:58

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Языки программирования на основе JVM
colencorДата: Суббота, 10 Февраля 2018, 20:38 | Сообщение # 1
был не раз
Сейчас нет на сайте
В этом разделе обсуждается всё, что связанно с Java ... deal
И если это так, тогда я буду в этой теме задавать вопросы про Groovy
А если не так - :(

Добавлено (13 апреля 2017, 20:08)
---------------------------------------------
Как можно из одного файла вызвать метод описанный в другом файле?...

Добавлено (08 мая 2017, 23:58)
---------------------------------------------
Наверное, стоило бы назвать эту тему "Вопросы - ответы", а то как то глухо ... :(
Приходиться отвечать на свой вопрос самому:
Код
// Main.java
public class Main {
    public static void main(String args[]) {
        chis m2 = new chis();
        Object run = m2.run();
        pro m3 = new pro();
        m3.run();
    }
}

Код
//pro.java
class pro {

    public pro() {
    }

    void run() {
        throw new UnsupportedOperationException("Not yet implemented");
    }

}

Код
//chis.groovy
public class RimArab_2 {
  def Rimarab_2(Rim) { RimArab m1 = new RimArab(); def   Arab = m1.Rimarab(Rim); return Arab }}
def Method() {RimArab_2 m2 = new RimArab_2();  Arab = m2.Rimarab_2(Rim)}

public class ArabRim_2 {
   def Arabrim_2(Arab) { ArabRim m2 = new ArabRim(); def   Rim = m2.Arabrim(Arab); return Rim }}
def Method2() {ArabRim_2 m3 = new ArabRim_2();  Rim = m3.Arabrim_2(Arab)}

def Vvod() {print "Vvedite Rim = "; Rim = System.in.newReader().readLine()}
def Vivod() { print "Arab = "; println Arab }
def Vvod2() {print "Vvedite Arab = "; Arab = System.in.newReader().readLine()/* ; Arab = s as Integer*/}
def Vivod2() { print "Rim = "; println Rim }
while (1) {
    Vvod()
    Method()
    Vivod()
     Vvod2()
    Method2()
    Vivod2()
}

Код
//RimArab.groovy
public class RimArab {
    String  f
    Integer Arab
    Map rimArab = ["I":1, "V":5, "X":10, "L":50, "C":100, "D":500, "M":1000]
  def Rimarab (Rim) {
    f = Rim.replace("IV", "IIII").replace("IX", "VIIII").replace("XL", "XXXX").replace("XC", "LXXXX").replace("CD", "CCCC").replace("CM", "DCCCC")
    Arab = 0; for(i in f) { Arab = Arab + rimArab[i]}; return Arab
   }
}

Код
//ArabRim.groovy
public class ArabRim {
    String Rim, A, r, r2, r1
    Integer i, x, iI, iV, iX, x1
    List L, rim = [ "I", "V", "X", "L", "C", "D", "M"]
  def Arabrim (Arab) {
    A = Arab.reverse(); i = 0; L = []
  for( v in A){ x = v as Integer; iI = i*2; iV = 2*i+1; iX = 2*i+2
    switch (x){
      case 4:    r  = rim[iI] + rim[iV]; break
      case 9:    r  = rim[iI] + rim[iX]; break
      case 1..3: r  = ""; for( int j = 0; j < x;  j++){ r  = r  + rim[iI]}; break
      case 5..8: r2 = ""; x1 = x - 5; for( int j = 0; j < x1; j++){ r2 = r2 + rim[iI]}; r1 = rim[iV]; r = r1 + r2; break
      case 0:    r  = ""; break }
           ++i; L = L + r }
    Rim = L.reverse().join(); return Rim
          }
}

Делалось и компоновалось всё это в NetBeans.

Добавлено (10 Февраля 2018, 20:38)
---------------------------------------------
Игрушка puzzle :

Код
//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 (0 <= N && N <= 2) {N = 4} else {return 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 = 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) , что-бы удалялась только кнопка соседняя с пустым полем ...
Код
//Spisok.groovy
package groovy
  public class Spisok {
    Integer S, J, T, Q
    List Order
def spisok (N) {
    S = (N as Integer  )**2 - 1
    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
   }
}

/
Код
/Main.java
package javaclass;
public class Main {
      public static void main(String args[]) {
        puzzle m2 = new puzzle();
        m2.run();
    }
}

Код
//puzzle.java
package javaclass;
class puzzle {
    void run() {
        throw new UnsupportedOperationException("Not yet implemented");
    }
}


litl

Сообщение отредактировал colencor - Вторник, 09 Мая 2017, 00:04
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг