Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7 punta su un display ampio e fluido, una batteria capace di accompagnare l'uso quotidiano senza ansie da ricarica e un prezzo accessibile, a partire da 179,90 euro per la versione con 64 GB di storage. Lo Snapdragon 6s 4G Gen 2 e i 4 GB di RAM della configurazione più diffusa frenano però chi cerca reattività e multitasking spinto: ecco il bilancio dopo due settimane di prova diretta
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
OPPO ha portato in Italia, dal 1° luglio 2026, Reno16 Pro: display AMOLED da 6,32 pollici a 144Hz, tripla fotocamera con sensore principale da 200 megapixel, chip Dimensity 8550 Super e batteria da 6000mAh, al prezzo di lancio di 899 euro. Lo abbiamo provato per due settimane insieme al nuovo accessorio Bubble, per capire se la formula compatta della serie regge ancora di fronte a un listino da 1099 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-02-2003, 14:25   #1
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Giochino per voi

EHm...non avevo molto da fare oggi al lavoro

Quanti punti riuscite a fare??
Se interessa posto anche il codice java.

Nuova versione col codice di cionci!
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2003, 16:44   #2
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Ecco il mio record!
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2003, 17:14   #3
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Assasssssinoooo !!! :o Non riesco a smettere di giocarci

Per ora sono arrivato a 39...già lì se te ne tocca uno sul bordo è finita !!!
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2003, 18:39   #4
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Dai che dopo 32 mele mangiate la velocità si blocca (vedi output della console java ) Il record attuale è di 59 fatto da un mio amico
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2003, 18:40   #5
Louder Than Hell
Senior Member
 
L'Avatar di Louder Than Hell
 
Iscritto dal: Nov 2002
Città: Cagliari
Messaggi: 844
eeh..cavolo che invidia voi vi mettete a fare giochi quando non avete niente da fare tanto per..........


__________________
Non ho paura dei computer, ma della loro eventuale mancanza. (Asimov)
Una delle principali cause della caduta dell'Impero Romano fu che, privi dello zero, non avevano un modo per indicare la corretta terminazione dei loro programmi C. (Firth)
Louder Than Hell è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2003, 18:47   #6
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Mi ripago delle 40 ore di straordinario fatte il mese scorso...
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2003, 20:38   #7
recoil
Senior Member
 
L'Avatar di recoil
 
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19149
carino dai :-)

dimenticavo, io ho fatto 32 punti ma ci ho giocato solo un paio di volte
se metti il codice java modifico qualcosa e lo rallento un attimo perché diventa veramente troppo veloce poi...
recoil è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2003, 21:48   #8
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Si lo scopo era proprio quello di commentare il codice e migliorarlo Anche la mela, non mi piace quadrata! DOmani lo posto.
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 07-02-2003, 08:21   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
C'è un bug...se la mela appare sotto il serpente resta un po' bruttina
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 07-02-2003, 08:24   #10
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Ecco il codice... la classe java.awt.Graphics2D permetterebbe di usare "effetti" grafici migliori, ma la Microsoft JVM non supporta il jdk 1.2 (Brava Microsoft! :mad)

E' sicuramente migliorabile, possiamo divertirci a farlo se volete!


Codice:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.awt.Graphics;
//import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Event;

public class Snake extends Applet implements Runnable{

	static final int rows = 15;
	static final int columns = 25;
	
	static final Font font = new Font("Arial",Font.BOLD, 12);
  
  boolean gioco = false, mangiato=false, gioco2=false, playing=false;
  int size, hsize=0, speed=200;

  Point[] posizioni = new Point[374];

  int direzione = 0;  // 0 - destra
			                // 1 - sinistra
			                // 2 - su
			                // 3 - giù

  Point mela = new Point(12,7);

  Thread runner;

  public void init() {
  	
  	System.out.println("Init applet -> keyEvent added");
  	
  	KeyListener keyListener = new KeyAdapter() {
     
			public void keyPressed(KeyEvent keyEvent) {
					
			 
			 int key = keyEvent.getKeyCode();
			 //System.out.println("Key Pressed : "+ key);
			         
			 if(key == KeyEvent.VK_RIGHT && posizioni[1].x!=posizioni[0].x+1) { direzione=0; gioco=true; playing=true;  }
			 else if(key == KeyEvent.VK_LEFT && posizioni[1].x!=posizioni[0].x-1) { direzione=1; gioco=true; playing=true;  }
			 else if(key == KeyEvent.VK_UP && posizioni[1].y!=posizioni[0].y-1) { direzione=2; gioco=true; playing=true;  }
			 else if(key == KeyEvent.VK_DOWN && posizioni[1].y!=posizioni[0].y+1) { direzione=3; gioco=true; playing=true;  }
			 else if(key == KeyEvent.VK_ESCAPE) 
			   playing=false;
      
      }
		};
  	
  	addKeyListener(keyListener);
  	
    size=3;

    for(int i=0; i<374; i++)
     posizioni[i] = new Point(0,0);

    posizioni[0].move(3,rows);
    posizioni[1].move(2,rows);
    posizioni[2].move(1,rows);          
  }

  public void start() {
    if(runner==null) {
    	runner = new Thread(this);
      runner.start();
     }
  }

  public void stop() {
    runner = null;
  }

  public void run() {
          
    Thread thisThread = Thread.currentThread();
    while (thisThread == runner){
    
     // Il gioco finisce se si sbatte contro il muro oppure ci si morde la coda
     for(int i=5; i<size; i++)
       if(posizioni[0].x == posizioni[i].x && posizioni[0].y == posizioni[i].y)
          gioco2 = true;

     if(( (gioco2) || (direzione==0 && posizioni[0].x==columns) 
     		|| (direzione==1 && posizioni[0].x==1) || (direzione==2 && posizioni[0].y==1) 
     			|| (direzione==3 && posizioni[0].y==rows))) {
            // risetta gli start points
         gioco = false;
         gioco2 = false;
         if(size>hsize) hsize=size;
         size=3;
         posizioni[2].move(1,rows);
         posizioni[1].move(2,rows);
         posizioni[0].move(3,rows);
         mela.move(12,7);
     }

     repaint();
     
          	
     try{
      
     //setta la velocità del serpente.
       	Thread.sleep(speed);      
     }
     catch(InterruptedException e) { }

    }
  }

  public void update(Graphics g) {
  				
  	//Graphics2D g = (Graphics2D)g1;
  	
  	//g.setBackground(Color.black);
  			
  	g.setColor(Color.red);
    g.fill3DRect(mela.x*20-20,mela.y*20-20,19,19,false);
    if(gioco)     {
			g.setColor(Color.blue);
      if(posizioni[0].x==mela.x && posizioni[0].y==mela.y) {
        mangiato=true;
        size++;
        
        g.clearRect(0,0,getSize().width,12);
      }
      // Disegna la nuova posizione e cancella quella vecchia

      g.clearRect(posizioni[size-1].x*20-20,posizioni[size-1].y*20-20,21,21);

      if(posizioni[size-1].x == mela.x && posizioni[size-1].y == mela.y)
       	g.drawRoundRect(mela.x*20-20,mela.y*20-20,19,19,19,19);
              

      if(playing) {
      	for(int i=size; i>0; i--)
        	posizioni[i].move(posizioni[i-1].x, posizioni[i-1].y);

	      switch(direzione) {
	      	case 0: posizioni[0].x = posizioni[0].x+1; break;
	        case 1: posizioni[0].x = posizioni[0].x-1; break;
	        case 2: posizioni[0].y = posizioni[0].y-1; break;
	        case 3: posizioni[0].y = posizioni[0].y+1; break;
	      }
      }

      // Controllo se la mela è stata mangiata
      									
      for(int i=0; i<size; i++)                  				
      	g.fillOval(posizioni[i].x*20-20,posizioni[i].y*20-20,20,20);
              
      if(mangiato) {
      	mangiato = false;
        g.clearRect(mela.x*20-20,mela.y*20-20,21,21);
        mela.x=(int)(Math.random()*24+1);
        mela.y=(int)(Math.random()*14+1);
        //g.drawRoundRect(mela.x*20-20,mela.y*20-20,19,19,19,19);
        g.setColor(Color.red);
        g.fill3DRect(mela.x*20-20,mela.y*20-20,19,19,false);
        if (speed >= 50){
        	speed -=5;
        	System.out.println("curr speed: "+ speed);
        }	
                
      }        
     }
     else {
     	// Pulisci schermo e inizializza gli oggetti
      g.clearRect(0,0,getSize().width,getSize().height);
			
			g.setColor(Color.blue);
      for(int i=0; i<size; i++)
              g.fillOval(posizioni[i].x*20-20,posizioni[i].y*20-20,20,20);
			g.setColor(Color.red);
      //g.drawRect(mela.x*20-20,mela.y*20-20,19,19);
      g.fill3DRect(mela.x*20-20,mela.y*20-20,19,19,false);
      speed = 200;
      
     }
     g.setFont(font);
     g.setColor(Color.magenta);
     g.drawString("Punteggio: "+ (size -3) + (hsize == 0 ? "" : ("           Miglior Punteggio: "+ (hsize-3))) ,10,10);    
          
          
  } 			

}
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 07-02-2003, 08:25   #11
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Quote:
Originally posted by "cionci"

C'è un bug...se la mela appare sotto il serpente resta un po' bruttina
Hai ragione! Chi lo risolve??
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2003, 17:43   #12
recoil
Senior Member
 
L'Avatar di recoil
 
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19149
io proprio non ho tempo in sti giorni :-(
in ogni caso la mela non dovrebbe proprio comparire sotto il serpente, almeno nello snake dei nokia non è così...
recoil è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2003, 23:33   #13
Cimmo
Senior Member
 
L'Avatar di Cimmo
 
Iscritto dal: Jan 2001
Città: California
Messaggi: 7174
Quote:
Originally posted by "cn73"



Hai ragione! Chi lo risolve??
Non e' la soluzione + bella del mondo, ma dovrebbe ri-randomizzare il punto della mela se ne viene beccato uno dove c'e' gia' il serpente.
Va' al posto dei 2 random che generano un punto a caso per la nuova mela...il repeat until io l'ho scritto in C, e' uguale in Java che non lo so?

Codice:
do
{
	int flag=0;

	mela.x=(int)(Math.random()*24+1); 
	mela.y=(int)(Math.random()*14+1);

	for (int i=0; i<size; i++)
		if ((mela.x==posizioni[i].x) && (mela.y==posizioni[i].y))
			flag=1;

} while (flag==1);
Cimmo è offline   Rispondi citando il messaggio o parte di esso
Old 13-02-2003, 09:13   #14
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Oh scusa me l'ero persa!
Si e è la soluzione + semplice, ma secondo me si può fare qualcosa di meglio
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 13-02-2003, 09:31   #15
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originally posted by "cn73"

Si e è la soluzione + semplice, ma secondo me si può fare qualcosa di meglio
In teoria (lo so ceh è contro le leggi della probabilità), con un ciclod el genere potrebbe looppare infinitamente (Murphy docet)...
Quindi è meglio non prendere nuovamente numeri casuali, ma fare la ricerca di una posizione libera...ad esempio spostandosi in diagonale fino a quando non si trova una posizione libera...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 13-02-2003, 09:47   #16
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Una cosa del genere direi...
Codice:
mela.x=(int)(Math.random()*24+1); 
mela.y=(int)(Math.random()*14+1);
do
{
	int flag = 0;
	for (int i=0; i<size && !flag; i++)
		if ((mela.x==posizioni[i].x) && (mela.y==posizioni[i].y))
			flag=1;

	if(flag)
	{
		mela.x = (mela.x % 24) + 1;
		mela.y = (mela.y % 14) + 1;
	}
} while (flag);
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 13-02-2003, 09:49   #17
Cimmo
Senior Member
 
L'Avatar di Cimmo
 
Iscritto dal: Jan 2001
Città: California
Messaggi: 7174
Se non lo becca al primo colpo va' in loop quel codice...
Cimmo è offline   Rispondi citando il messaggio o parte di esso
Old 13-02-2003, 10:01   #18
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originally posted by "Cimmo"

Se non lo becca al primo colpo va' in loop quel codice...
Dettagli...avevo tolto "int flag=0" dal ciclo...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 13-02-2003, 11:06   #19
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Questo è un ottimo metodo...per altro esaustivo...
Codice:
	int startx = mela.x=(int)(Math.random()*24+1); 
	int starty = mela.y=(int)(Math.random()*14+1); 
	const int szx = 24, szy = 14;
	
	do {
		int flag = 0; 
		for (int i=0; i<size && !flag; i++) 
			if ((mela.x==posizioni[i].x) && (mela.y==posizioni[i].y)) 
				flag=1; 
		if(flag)
		{
			mela.x--;
			mela.y++;
			if(mela.x < 1 || mela.y > szy)
			{
				int z = mela.x + mela.y + 1;
				if(z > (szx+szy))
				{
					mela.x = 1;
					mela.y = 1;
				}
				else if(z > szx)
				{
					mela.x = szx;
					mela.y = z - mela.x;
				}
				else
				{
					mela.y = 1;
					mela.x = z - 1;
				}
			}
			if(startx == mela.x && starty == mela.y)
				throw //una eccezione
		}
	}while(flag);
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 13-02-2003, 11:07   #20
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
HAi ragione coinci...anche se è praticamente impossibile (un po' come vincere al supoerenalotto ogni settimana 2 volte per tutta la vita ) non conviene usare quel codice... Il tuo sistema mi pare il migliore... Ma senti qua: ipotizziamo che nello schermo non esstano celle libere
cn73 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto Kindle Scribe Colorsoft: riduce le cornici e div...
Sony conferma l'uso di AI generativa sui...
Le sfere metalliche trovate in Australia...
Intel cambia i piani? Il processo 14A2 p...
La missione spaziale cinese Tianwen-2 ha...
Eni porta la produzione di batterie in I...
Il Dipartimento dell'Energia USA cancell...
MSI è pronta per le DDR5 cinesi a...
La sonda spaziale JAXA Hayabusa2 ha sorv...
L'Università di Sydney e IBM scop...
Credono di parlare con Microsoft e l'FTC...
Microsoft vede grandi profitti nella con...
Niente 'scatola vuota': ecco perch&eacut...
Microsoft annuncia 4800 licenziamenti: X...
Sky acquisisce la divisione media di ITV...
Chi studia con ChatGPT poi dimentica qua...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:07.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v