mercoledì 5 maggio 2010

domenica 1 marzo 2009

Quiz Città Popolose

Ecco il quiz funzionante senza grafica fatto dal gruppo:

import java.io.*;
import java.util.*;
public class Gioco {
String[] nazioni=new String[100];
String[] città=new String[100];
Scanner in;
public void azzeraArray(){
for (int i=0; i nazioni[i]=null;
}
for (int i=0; i città[i]=null;
}
}
public void caricaNazioniCittà() throws IOException{

String letta;

in=new Scanner(new FileReader("cittaPopolate.txt"));
int letti=1;
int i=0;
int j=0;
while ( in.hasNext()){
letta=in.next();
if (letti%2!=0) {
nazioni[i]=letta;
i++;
}else {
città[j]=letta;
j++;
}
letti++;
}

}
public void stampaNazioniCittà(){
for (int i=0; i<100; i++){
System.out.println(nazioni[i]);
}
for (int i=0; i<100; i++){
System.out.println(città[i]);
}
}
public void gioca(){
int punti=0;
int i=0;
Scanner tastiera=new Scanner(System.in);
String risposta;
while ((nazioni[i]!=null) && (i System.out.printf("Quale e' la citta' piu' popolata di: %s?\n",nazioni[i]);
risposta=tastiera.nextLine();
if (risposta.equals(città[i])){
System.out.println("bravo----->2 punti");
punti+=2;
} else {
System.out.println("sbagliato---->riprova");
risposta=tastiera.nextLine();
if (risposta.equals(città[i])){
System.out.println("adesso va bene------->1 punto");
punti+=1;
} else {
System.out.println("troppi errori, la risposta giusta e'"+città[i]);
}
}
i++;
}
System.out.println("il punteggio ottenuto è di punti : " +punti);
}



public static void main(String[] args) {
Gioco g=new Gioco();
g.azzeraArray();
try {
g.caricaNazioniCittà();
}
catch (IOException e){
System.out.println(e);
System.out.printf("Correggi il problema e riprova\n");
}
catch (NoSuchElementException e){
System.out.println(e);
System.out.printf("end of file raggiunto\n");
}
g.stampaNazioniCittà();
g.gioca();
}
}

martedì 3 febbraio 2009

calcolatrice in java



Ho provato a fare la calcolatrice in modo diverso... Prendendo l'esercizio somma ho fatto delle copie e modificate opportunamente... poi le ho unite in testacalcolatrice solo che ha un difetto: Non si può scegliere il simbolo aritmetico da usare es. Prima si deve fare l'addizione, poi la sottrazione, poi la moltiplicazione e infine la divisione. Dunque se si vuole fare la divisione si deve fare prima una addizione, sottrazione etc...

mercoledì 24 dicembre 2008

Prova albero di natale

Salve a tutti è da un pò che non seguo il mio blog... ma rimedio subito.
Ho postato l'esercizio eseguito a scuola in JAVA che consisteva di aprire una finestra con dentro una foto e metterci delle palline illuminate che si illuminavano con tutti i colori diversi ad un tempo predefinito (io l'ho messo ogni secondo perchè mi sembrava più realistico...) e due tasti che facevano accendere e spegnere le luci. Ma bando alle ciance questo è il programma:


import java.awt.event.*;
import java.util.*;
import java.awt.geom.*;
import java.awt.Polygon;

public class AlberoNatale1{
int rotation=0;
int giro;
private Polygon poly;
private JFrame albero;
private PannelloAlbero a;
private JButton accende;
private JButton spegne;
private JPanel pannelloBottoni=new JPanel(new GridLayout(2,1));
private java.util.Timer pallineAccese;
private int[] xpoints={0,-3,-10,-4,-7,0,7,4,10,3};
private int[] ypoints={-10,-3,-2,2,10,5,10,2,-2,-3};
private int editX;
public AlberoNatale1(){
albero=new JFrame("Albero del Santo Natale 2008");
albero.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
albero.setSize(500,500);
a=new PannelloAlbero();
accende=new JButton("accendi le lampadine");
spegne=new JButton("spegni le lampadine");
pannelloBottoni.add(accende);
pannelloBottoni.add(spegne);
albero.add(a,BorderLayout.CENTER);
albero.add(pannelloBottoni,BorderLayout.SOUTH);
accende.addActionListener(new BottoneAccende());
spegne.addActionListener(new BottoneSpegne());
albero.setVisible(true);
}

public class PannelloAlbero extends JPanel{
public void paintComponent(Graphics g){
Graphics2D g2d=(Graphics2D) g;
Image alberoImmagine=new ImageIcon("Christmastree.jpg").getImage();
g.drawImage(alberoImmagine,0,0,albero.getWidth(),albero.getHeight(),null);
g.setColor(getColore());
g.fillOval(200,200,30,30);
g.setColor(getColore());
g.fillOval(200,250,30,30);
g.setColor(getColore());
g.fillOval(150,300,30,30);
poly=new Polygon(xpoints,ypoints,xpoints.length);
int ampiezza=getSize().width;
int altezza=getSize().height;

g2d.setColor(Color.RED);
g2d.drawString("Buon natale by me",((ampiezza/2)-60)+editX,altezza-20);


g2d.translate(ampiezza/2,(altezza/2)-120);
g2d.scale(5,5);
g2d.rotate(Math.toRadians(rotation));
g2d.setColor(Color.YELLOW);
g2d.fill(poly);
g2d.draw(poly);

}
}
private Color getColore(){
int verde=(int) (Math.random()*255);
int rosso=(int) (Math.random()*255);
int blu=(int) (Math.random()*255);
Color colore=new Color(verde,rosso,blu);
return colore;
}
public class BottoneAccende implements ActionListener{
public void actionPerformed(ActionEvent event){
pallineAccese=new java.util.Timer();
pallineAccese.schedule(new TimerTask(){
public void run(){
SwingUtilities.invokeLater(new Runnable(){
public void run(){
rotation+=2;
editX++;
albero.repaint();

}
});
}
},0,250);
}
}
public class BottoneSpegne implements ActionListener{
public void actionPerformed(ActionEvent event){
pallineAccese.cancel();
}
}
public static void main(String[] args){
AlberoNatale1 albero=new AlberoNatale1();
}
}

Ed ecco il risultato...

giovedì 13 novembre 2008

Ho trovato il sorgente dell'orologio spero che possa essere utile...

import java.applet.*;
import java.awt.*;
import java.util.*;

// introduciamo la classe
public class OrologioDigitale extends Applet implements Runnable
{
Thread t,t1;

// il metodo start() inizializza il thread e richiama la JVM
public void start()
{
t = new Thread(this);
t.start();
}

// il metodo run() imposta gli intervalli di esecuzione dell'applet
public void run()
{
t1 = Thread.currentThread();
while(t1 == t)
{
repaint();
try
{
// il metodo sleep() viene utilizzato per settare intervalli
// da un minuto prima che repaint() ricostruisca l'orologio
// aggiornando la data
t1.sleep(1000);
}
catch(InterruptedException e){}
}
}

// il metodo paint() disegna l'orologio
public void paint(Graphics g)
{
// viene istanziata la classe GregorianCalendar sottoclasse di calendar
Calendar cal = new GregorianCalendar();

// Vengono valorizzate le variabili
String ore = String.valueOf(cal.get(Calendar.HOUR));
String minuti = String.valueOf(cal.get(Calendar.MINUTE));
String secondi = String.valueOf(cal.get(Calendar.SECOND));

// output grafico dell'applicazione
g.drawString(ore + ":" + minuti + ":" + secondi, 20, 30);
}
}
Spero che possa essere utile...

martedì 11 novembre 2008

Verifica del 10/11/2008

/*Giacomo Biancalana 4ALE*/

public class Rettangolo{
private double latoA;
private double latoB;
private double area;
private double perimetro;

public Rettangolo(double a, double b){
latoA=a;
latoB=b;
}
public void getLato1(double latox){

latoA=latox;
}
public void setLato2(double latoy){

latoB=latoy;
}
public double getArea(){
area=latoA*latoB;
return area;
}
public double getPerimetro(){
perimetro=latoA*2+latoB*2;
return perimetro;
}
}


\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\



/*Giacomo Biancalana 4ALE*/
public class testaRettangolo{
public static void main (String args[]){
Rettangolo r1=new Rettangolo(10,20);
Rettangolo r2=new Rettangolo(5,10);
Rettangolo r3=new Rettangolo(3,7);

Rettangolo[] rArray;
rArray=new Rettangolo[3];

rArray[0]=new Rettangolo(3.1,4.2);
rArray[1]=new Rettangolo(5.3,6.4);
rArray[2]=new Rettangolo(7.5,8.6);


for(int i=0;i<3;i++){
System.out.println("il rettangolo "+(i+1)+"ha una area di:= "+tArray[i].getArea());
System.out.println("il rettangolo "+(i+1)+"ha un perimetro di:= "+tArray[i].getPerimetro());
}
}


}
}