Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
La facilità di installazione e la completa automazione di tutte le fasi di utilizzo, rendono questo prodotto l'ideale per molti clienti. Ecco com'è andata la nostra prova in anteprima
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-02-2003, 15: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, 17: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, 18: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, 19: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, 19: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, 19: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, 21: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, 22: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, 09: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, 09: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, 09: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, 18: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 11-02-2003, 00: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, 10: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, 10: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, 10: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, 10: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, 11: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, 12: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, 12: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


Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
iPhone 17e e non solo: Gurman svela le c...
Arrestato per omicidio, in lacrime ai po...
Vexilar, scopa elettrica da 65000Pa, 4,9...
Linux 7.0 sarà la prossima versio...
Windows 11: Copilot AI entra anche nella...
Apple apre CarPlay ai chatbot di terze p...
Horses: Santa Ragione afferma di essere ...
Nuova causa contro Tesla e maniglie elet...
MindsEye, il CEO accusa: 'Speso un milio...
TV LG NanoCell da 65 pollici a 499€: tan...
ho. Mobile, nuova offerta low-cost: 100 ...
Arrow Lake Refresh: cancellato il Core U...
AI.com venduto per 70 milioni di dollari...
RNLT Milano si veste di rosso per Cliora...
Amazon Haul rilancia: compri 2 articoli ...
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: 11:48.


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