Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
2048+ the Game - 2048 aggiunte

2048+ the Game

Sommario | Admin | Forum | Bugs | Todo | Files

Pagine: [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ] Precedente | Prossimo
Avatar
Ultimo (Member)
Guru


Messaggi: 877
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 21:27
Giovedì, 26/04/2018
Inseriti anche i sorgenti in C# dell'ultima versione 6.1


If ok Then GOTO Avanza else GOTO Inizia

PM Quote
Avatar
Mikelius (Member)
Expert


Messaggi: 525
Iscritto: 14/04/2017

Segnala al moderatore
Postato alle 9:15
Venerdì, 27/04/2018
Gli do un'occhiata.. vediamo come posso aiutare

PM Quote
Avatar
Mikelius (Member)
Expert


Messaggi: 525
Iscritto: 14/04/2017

Segnala al moderatore
Postato alle 21:46
Venerdì, 27/04/2018
Ho capito il problema della TextBox che non accetta input..
Credo sia perchè tutti i tasti vengono intercettati dal metodo

Codice sorgente

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)



Una prima soluzione potrebbe essere quella di inserire queste 2 righe alla fine della serie di if else nello stesso metodo
Codice sorgente

else {     if(TextBox_Nome.Focused==true)     TextBox_Nome.Text += keyData.ToString(); }


(La soluzione presenta molti bug, ma potrebbe essere una strada da percorrere)

Ultima modifica effettuata da Mikelius il 27/04/2018 alle 21:50
PM Quote
Avatar
Ultimo (Member)
Guru


Messaggi: 877
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 21:58
Venerdì, 27/04/2018
Testo quotato

Postato originariamente da Mikelius:

Ho capito il problema della TextBox che non accetta input..
Credo sia perchè tutti i tasti vengono intercettati dal metodo

Codice sorgente

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)



Una prima soluzione potrebbe essere quella di inserire queste 2 righe alla fine della serie di if else nello stesso metodo
Codice sorgente

else {     if(TextBox_Nome.Focused==true)     TextBox_Nome.Text += keyData.ToString(); }


(La soluzione presenta molti bug, ma potrebbe essere una strada da percorrere)



si potrebbe funzionare, io ho aggirato il problema con il form di immissione nome :k:


If ok Then GOTO Avanza else GOTO Inizia

PM Quote
Avatar
Mikelius (Member)
Expert


Messaggi: 525
Iscritto: 14/04/2017

Segnala al moderatore
Postato alle 1:34
Domenica, 29/04/2018
Si, avevo visto.

Personalmente avrei agito sulla proprietà Enable piuttosto che su quella Visible. §La form che sparisce e riappare sullo sfondo non è il massimo , ma de gustibus....
Ho visto un po il codice, ad esempio:
Codice sorgente - presumibilmente C++

  1. switch (Max_Potenza_Raggiunta)
  2. {
  3.     case 2:
  4.               this.PictureBox1.Image = this.ImageList1.Images[0];
  5.                     break;
  6.                 case 4:
  7.                     this.PictureBox1.Image = this.ImageList1.Images[1];
  8.                     break;
  9.                 case 8:
  10.                     this.PictureBox1.Image = this.ImageList1.Images[2];
  11.                     break;
  12.                 case 16:
  13.                     this.PictureBox1.Image = this.ImageList1.Images[3];
  14.                     break;
  15.                 case 32:
  16.                     this.PictureBox1.Image = this.ImageList1.Images[4];
  17.                     break;
  18.                 case 64:
  19.                     this.PictureBox1.Image = this.ImageList1.Images[5];
  20.                     break;
  21.                 case 128:
  22.                     this.PictureBox1.Image = this.ImageList1.Images[6];
  23.                     break;
  24.                 case 256:
  25.                     this.PictureBox1.Image = this.ImageList1.Images[7];
  26.                     break;
  27.                 case 512:
  28.                     this.PictureBox1.Image = this.ImageList1.Images[8];
  29.                     break;
  30.                 case 1024:
  31.                     this.PictureBox1.Image = this.ImageList1.Images[9];
  32.                     break;
  33.                 case 2048:
  34.                     this.PictureBox1.Image = this.ImageList1.Images[10];
  35.                     break;
  36.                 case 4096:
  37.                     this.PictureBox1.Image = this.ImageList1.Images[11];
  38.                     break;
  39.                 case 8192:
  40.                     this.PictureBox1.Image = this.ImageList1.Images[12];
  41.                     break;
  42.             }



Può essere semplificato a livello di righe (meno righe più manutenibilità), ad esempio

Codice sorgente

if(Max_Potenza_Raggiunta > 0) {       double indiceImage = Math.Log(Max_Potenza_Raggiunta, 2);       PictureBox1.Image = ImageList1.Images[(int)indiceImage - 1]; }



non credo che il calcolo del Logaritmo sia troppo esoso come risorse.

[P.s. non riesco a mostrare l'ultimo codice identato bene, bug?]

Ultima modifica effettuata da Mikelius il 29/04/2018 alle 1:39
PM Quote
Avatar
Ultimo (Member)
Guru


Messaggi: 877
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 11:39
Domenica, 29/04/2018
Testo quotato

Postato originariamente da Mikelius:

Si, avevo visto.

Personalmente avrei agito sulla proprietà Enable piuttosto che su quella Visible. §La form che sparisce e riappare sullo sfondo non è il massimo , ma de gustibus....
Ho visto un po il codice, ad esempio:
Codice sorgente - presumibilmente C++

  1. switch (Max_Potenza_Raggiunta)
  2. {
  3.     case 2:
  4.               this.PictureBox1.Image = this.ImageList1.Images[0];
  5.                     break;
  6.                 case 4:
  7.                     this.PictureBox1.Image = this.ImageList1.Images[1];
  8.                     break;
  9.                 case 8:
  10.                     this.PictureBox1.Image = this.ImageList1.Images[2];
  11.                     break;
  12.                 case 16:
  13.                     this.PictureBox1.Image = this.ImageList1.Images[3];
  14.                     break;
  15.                 case 32:
  16.                     this.PictureBox1.Image = this.ImageList1.Images[4];
  17.                     break;
  18.                 case 64:
  19.                     this.PictureBox1.Image = this.ImageList1.Images[5];
  20.                     break;
  21.                 case 128:
  22.                     this.PictureBox1.Image = this.ImageList1.Images[6];
  23.                     break;
  24.                 case 256:
  25.                     this.PictureBox1.Image = this.ImageList1.Images[7];
  26.                     break;
  27.                 case 512:
  28.                     this.PictureBox1.Image = this.ImageList1.Images[8];
  29.                     break;
  30.                 case 1024:
  31.                     this.PictureBox1.Image = this.ImageList1.Images[9];
  32.                     break;
  33.                 case 2048:
  34.                     this.PictureBox1.Image = this.ImageList1.Images[10];
  35.                     break;
  36.                 case 4096:
  37.                     this.PictureBox1.Image = this.ImageList1.Images[11];
  38.                     break;
  39.                 case 8192:
  40.                     this.PictureBox1.Image = this.ImageList1.Images[12];
  41.                     break;
  42.             }



Può essere semplificato a livello di righe (meno righe più manutenibilità), ad esempio

Codice sorgente

if(Max_Potenza_Raggiunta > 0) {       double indiceImage = Math.Log(Max_Potenza_Raggiunta, 2);       PictureBox1.Image = ImageList1.Images[(int)indiceImage - 1]; }



non credo che il calcolo del Logaritmo sia troppo esoso come risorse.

[P.s. non riesco a mostrare l'ultimo codice identato bene, bug?]



Mikelius la tua soluzione semplifica il codice, si può sicuramente modificare, anche il visible si può cambiare
con enable :k:


If ok Then GOTO Avanza else GOTO Inizia

PM Quote
Avatar
Mikelius (Member)
Expert


Messaggi: 525
Iscritto: 14/04/2017

Segnala al moderatore
Postato alle 12:41
Lunedì, 30/04/2018
Visto l'uso di 2 form, ho provato ad impostare il programma con MDI.

Vedi se può essere utile (lascia stare il codice proprio del gioco, che ci sono cambiamenti qua e la senza versioni definitive, vedi solo la gestione delle form se può essere utile).


Mikelius ha allegato un file: 2048 the game v.6.zip (465167 bytes)
Clicca qui per scaricare il file
PM Quote
Avatar
Ultimo (Member)
Guru


Messaggi: 877
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 13:30
Lunedì, 30/04/2018
ho visto che hai fatto delle modifiche, quando hai una versione pronta la possiamo inserire, tu ti occuperai della
versione in C#, si inserisce il codice + l'exe :k:


If ok Then GOTO Avanza else GOTO Inizia

PM Quote
Pagine: [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ] Precedente | Prossimo