Penso não ser complicado

3 respostas
P

Olá… eu tenho este programinha super simples:

import java.awt.*;

import java.awt.Color;

import java.awt.Frame;

class ButtonFrame extends Frame

{ ButtonFrame (String s)

{ super (s); setSize (150,100);

setLayout (new BorderLayout ());

setBackground (Color.pink);

setSize (250,100); setLocation (400,50);

add (new Button (2 Jogadores), BorderLayout.NORTH);

add (new Button (1 Jogador), BorderLayout.SOUTH);

setVisible(true);

}

}

class TestaMinhaFrame

{ public static void main (String []args)

{ new ButtonFrame (Jogo das Moedas);

}

}

e queria que kuando se carregasse num botão aparecesse outra janela com este programa

import java.io.*;
import java.applet.Applet;

public class novo extends Applet{

//Metodo responsavel por ler dados informados no console 
static int LerTeclado(){ 
  try{ 
     BufferedReader BR = new BufferedReader(new InputStreamReader(System.in)); 
               
     String s = BR.readLine(); 
     return Integer.parseInt(s); 
  } catch(IOException e) { 
     return(0); 
  } catch(NumberFormatException e) { 
     return(0); 
  }

}

public static void main(String[] args) throws IOException { 
    int iMoedasDoJogador, iMoedas, iControlaJogador,iMax; 
    
    //Informo o valor inicial do jogo 
    System.out.println("\n Com quantas moedas quer começar o jogo?\n");
    iMoedas = LerTeclado();
    System.out.println("\n Qual é o maximo de moedas que deseja retirar?");
    iMax = LerTeclado();

    //Usarei um contador para diferenciar os jogadores 
    //Jogador 1=1 && Jogador 2 = 2 
    iControlaJogador = 1; 
    
    //Faz enquanto existir 1 moeda ou mais 
    while(iMoedas >= 1) { 
        //Informativo de valores actuais (restantes) de Moedas 
        System.out.println("\n>> Existem " + iMoedas + " moedas no jogo <<\n"); 

        //Controle do que o jogador informa 
        iMoedasDoJogador = 0; 
        
        //Mostra mensagem e recebe valor do jogador 
        while(iMoedasDoJogador == 0){ 
            System.out.print("Quantas moedas o jogador " + iControlaJogador + " deseja retirar? (Max "+iMax+ " )\n=> "); 
            iMoedasDoJogador = LerTeclado(); 

            if(iMoedasDoJogador <= 0) { 
                System.err.println ("Deve ser retirar moedas para continuar o jogo\n"); 
                iMoedasDoJogador = 0; 
                continue; 
            } else if(iMoedasDoJogador > iMax){ 
                System.err.println ("Não pode retirar mais que "+iMax+" moedas"); 
                iMoedasDoJogador = 0; 
                continue; 
            } else { 
                break; 
            } 
        } 
        
        iMoedas = (iMoedas - iMoedasDoJogador); 
        if(iMoedas <= 0){ 
            break; 
        } 
        
        //Verifica que jogador jogou e muda para o proximo 
        iControlaJogador = (iControlaJogador == 2)?1:2; 
    } 
    //Informa qual jogador perdeu 
    System.out.println("*** O jogador " + iControlaJogador + " perdeu! ***"); 
    
    //Finaliza o Programa 
    System.exit(0); 
}

}

a correr lá…

Eu penso que não seja muito complicado mas não sei fazer…

3 Respostas

J

oi, faz o seguinte:

import java.awt.*;
import java.awt.event.*;
import java.awt.Color;
import java.awt.Frame;

class ButtonFrame extends Frame implements ActionListener{ 
Button b1 = new Button ("1 Jogador");
Button b2 = new Button ("2 Jogadores");
ButtonFrame (String s) { 
   super (s); setSize (150,100);
   setLayout (new BorderLayout ());
   setBackground (Color.pink);
   setSize (250,100); setLocation (400,50);
   add (b2, BorderLayout.NORTH);
   add (b1, BorderLayout.SOUTH);
   b1.addActionListener(this);
   b2.addActionListener(this);
   setVisible(true);
}

public void actionPerformed(ActionEvent ae) {
   if(ae.getSource() == b1) {
      //INICIA O JOGO COM 1 JOGADOR
   }
   if(ae.getSource() == b2) {
      //INICIA O JOGO COM 2 JOGADORES
   }

}

}

class TestaMinhaFrame { 
   public static void main (String []args) { 
     new ButtonFrame ("Jogo das Moedas");
   }
}

nao sei usar nada de java.awt, mas acho que o contrutor de Button está certo…

espero ter ajudado

P

Foi uma boa ajuda mas pk é k agora o computador não aceita o LerTeclado e

static int LerTeclado(){ 

try{

BufferedReader BR = new BufferedReader(new InputStreamReader(System.in));
String s = BR.readLine(); 
         return Integer.parseInt(s); 
      } catch(IOException e) { 
         return(0); 
      } catch(NumberFormatException e) { 
         return(0); 
      } 
   } 
    [b]public static void main(String[] args) throws IOException {

dá erro o que está a bold…
[/b]

J

olá,
esse erro nao ocorre por causa do codigo que postei, e nao posse te ajudar com ele porque sinceramente nunca usei nada com o System.in…e tambem nao sei se da pra fazer isso com uma extensao de Applet…
esse post é pra sugerir que voce use JOptionPane para entrada de dados…pois é bem fácil de usar e não lança essa exceção…

espero que ajude

Criado 22 de maio de 2005
Ultima resposta 22 de mai. de 2005
Respostas 3
Participantes 2