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 22:44
Venerdì, 01/06/2018
@Mikelius

Alcune parti è meglio non modificarle, se non è necessario

la parte logica adesso gira bene

per la modifica con matrici maggiori, ci avevo pensato

ma avevo preferito restare col 4x4 classico

se aumenti la matrice poi devi modificare

tutte le dimensioni




If ok Then GOTO Avanza else GOTO Inizia

PM Quote
Avatar
Ultimo (Member)
Guru


Messaggi: 877
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 9:57
Sabato, 02/06/2018
Testo quotato

Postato originariamente da Ultimo:

@Mikelius

Alcune parti è meglio non modificarle, se non è necessario

la parte logica adesso gira bene

per la modifica con matrici maggiori, ci avevo pensato

ma avevo preferito restare col 4x4 classico

se aumenti la matrice poi devi modificare

tutte le dimensioni





Nella prossima versione inserisco le modifiche :k:


If ok Then GOTO Avanza else GOTO Inizia

PM Quote
Avatar
Ultimo (Member)
Guru


Messaggi: 877
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 12:09
Sabato, 02/06/2018
Codice sorgente - presumibilmente VB.NET

  1. Imports System.IO
  2. Imports System.Threading
  3. Imports System.Drawing
  4. Imports System.Drawing.Drawing2D
  5.  
  6. '***************************************************************************
  7. 'Gioco del 2048 realizzato da *** Tebaldo Ulleri *** in Data 12-Aprile-2018
  8. '***************************************************************************
  9. 'Developers: Tebaldo Ulleri, Carlo Barabucci, Michele Cannavo
  10. '***************************************************************************
  11. Public Class Form1
  12.  
  13.     '***********************************************************************
  14.     'Variabili globali
  15.     Public TipoGrafica As Short = My.Settings.Immagini_Set ' 1 grafica default 2 grafica nuova
  16.     Public InMovimento As Boolean
  17.     Public Tempo As Date ' data e ora
  18.     Public Partenza As Date = DateTime.Now  ' data e ora di inizio gioco
  19.     Public AutoOn As Boolean = False
  20.     Public Move_R As Boolean
  21.     Public Move_L As Boolean
  22.     Public Move_U As Boolean
  23.     Public Move_D As Boolean
  24.     Public Mosse_Auto As Boolean
  25.     Public Audio_On As Boolean
  26.     Public Animazione_On As Boolean
  27.     Public Mat4x4Pict_2040() As PictureBox = {}
  28.     Public Matrice4x4(4, 4) As Integer
  29.     Public Matrice_Back1(4, 4) As Integer
  30.     Public Potenze_del_2() As Int32 = {2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192}
  31.     Public Stato_eventi As Int32
  32.     Public Punteggio As Int32
  33.     Public mosse As Int32
  34.     Public Record As Int32
  35.     Public Giocatore As String
  36.     Public Indx_Nuovo_Val As String
  37.     Public Max_Potenza_Raggiunta As Int32
  38.     Public Ultima_Potenza As Int32
  39.     Public Nuovo_Record As Boolean
  40.     Public Scambio_ok As Boolean
  41.     Public Scambio_ok_Back As Boolean
  42.     Public Obiettivi_Punteggio() As Int32 = {2048, 4096, 8192}
  43.     Public Scelta_Colori As New List(Of Color)
  44.     ' Suono1.
  45.     Dim Suono1 = New System.Media.SoundPlayer("C:\Windows\Media\chord.wav")
  46.     ' Suono2.
  47.     Dim Suono2 = New System.Media.SoundPlayer("C:\Windows\Media\tada.wav")
  48.     ' Suono3.
  49.     Dim Suono3 = New System.Media.SoundPlayer("C:\Windows\Media\notify.wav")
  50.     ' Suono4.
  51.     ' Inserire in Resources una musica di tipo WAV e richiamarla quà sotto in My.Resources........
  52.     Dim Suono4 = New System.Media.SoundPlayer(My.Resources.win)
  53.     ' Suono5.
  54.     ' Inserire in Resources una musica di tipo WAV e richiamarla quà sotto in My.Resources........
  55.     Dim Suono5 = New System.Media.SoundPlayer(My.Resources.VGOMyMove)
  56.  
  57.     '***********************************************************************
  58.  
  59.     Sub New()
  60.         ' Chiamata richiesta dalla finestra di progettazione.
  61.         InitializeComponent()
  62.         ' Aggiungere le eventuali istruzioni di inizializzazione dopo la chiamata a InitializeComponent().
  63.         Me.Animazione1ToolStrip.Checked = My.Settings.Animazione_1
  64.         Me.Animazione2ToolStrip.Checked = My.Settings.Animazione_2
  65.         Me.Animazione3ToolStrip.Checked = My.Settings.Animazione_3
  66.  
  67.         ' se no settings (primo uso del programma), carico dati di default
  68.         If TipoGrafica <> 1 _
  69.             And TipoGrafica <> 2 _
  70.             And TipoGrafica <> 3 _
  71.             And TipoGrafica <> 4 _
  72.             And TipoGrafica <> 5 _
  73.             And TipoGrafica <> 6 _
  74.             And TipoGrafica <> 7 _
  75.             And TipoGrafica <> 8 _
  76.          Then TipoGrafica = 1
  77.  
  78.         If Me.Animazione1ToolStrip.Checked = False _
  79.         And Me.Animazione2ToolStrip.Checked = False _
  80.         And Me.Animazione3ToolStrip.Checked = False _
  81.         Then Me.Animazione1ToolStrip.Checked = True
  82.  
  83.         Animazione_On = True
  84.         Audio_On = True
  85.  
  86.         Scelta_Colori.Add(Color.Blue)   'index 0
  87.         Scelta_Colori.Add(Color.Bisque)
  88.         Scelta_Colori.Add(Color.DarkGray)
  89.         Scelta_Colori.Add(Color.DarkKhaki)
  90.         Scelta_Colori.Add(Color.Brown)
  91.         Scelta_Colori.Add(Color.Brown)
  92.         Scelta_Colori.Add(Color.DarkGreen)
  93.         Scelta_Colori.Add(Color.Navy)
  94.         Scelta_Colori.Add(Color.Navy)  'index 8
  95.  
  96.     End Sub
  97.  
  98.  
  99.     Private Sub Form1_2048_Game_Load(sender As Object, e As EventArgs) Handles Me.Load
  100.         Nuovo_Record = False
  101.         Scambio_ok = True
  102.         Scambio_ok_Back = True
  103.         Mosse_Auto = True
  104.         Move_R = False
  105.         Move_L = False
  106.         Move_U = False
  107.         Move_D = False
  108.  
  109.         Call Crea_Simboli(TipoGrafica)
  110.         Call Inizializza_Matrice2048(Matrice4x4)
  111.         Stato_eventi = Stato.Azzerato
  112.         Call CreaSchema4X4Classic2048()
  113.         Call Random_Matrice4x4_2048()
  114.         Call Visualizza_Immagine_Celle2048(Matrice4x4)
  115.         Call Copia_Matrice2048(Matrice4x4, Matrice_Back1)
  116.         Me.Text &= " v.8.9.9 "
  117.         Me.TextBox_Nome.BackColor = Color.Yellow
  118.         InMovimento = False
  119.     End Sub
  120.  
  121.     Enum Stato
  122.         Azzerato 'index 0
  123.         Avviato
  124.         Completato
  125.         Errato   'index 3
  126.     End Enum
  127.  
  128.     'Disegna lo schema 4 x 4 del gioco
  129.     Public Sub CreaSchema4X4Classic2048()
  130.         Panel1.Controls.Clear()
  131.         ReDim Mat4x4Pict_2040(16)
  132.         Dim xP, yP, nCel, size_c As Integer
  133.  
  134.         yP = 12
  135.         nCel = 0
  136.         size_c = 84
  137.  
  138.         For i As Int32 = 1 To 4 Step +1
  139.             xP = 13
  140.             For j As Int32 = 1 To 4 Step +1
  141.                 nCel += 1
  142.                 Mat4x4Pict_2040(nCel) = New PictureBox
  143.                 Mat4x4Pict_2040(nCel).AutoSize = False
  144.                 Mat4x4Pict_2040(nCel).Font = New System.Drawing.Font("Arial", 12, FontStyle.Bold)
  145.                 Mat4x4Pict_2040(nCel).Size = New System.Drawing.Size(size_c, size_c)
  146.                 Mat4x4Pict_2040(nCel).Location = New System.Drawing.Point(xP, yP)
  147.                 Mat4x4Pict_2040(nCel).BackColor = Scelta_Colori(TipoGrafica)
  148.                 Mat4x4Pict_2040(nCel).ForeColor = Color.Maroon
  149.                 Mat4x4Pict_2040(nCel).Name = "Cella_" & i.ToString & "-" & j.ToString
  150.                 Mat4x4Pict_2040(nCel).Text = j.ToString
  151.                 Mat4x4Pict_2040(nCel).Tag = (i).ToString & "-" & (j).ToString
  152.                 Mat4x4Pict_2040(nCel).BackgroundImageLayout = ImageLayout.Center
  153.                 Panel1.Controls.Add(Mat4x4Pict_2040(nCel))
  154.                 xP = xP + (size_c + 2)
  155.             Next j
  156.             yP = yP + (size_c + 2)
  157.         Next i
  158.     End Sub
  159.  
  160.     Public Function Consenso_Mosse(ByRef Matr2048 As Int32(,), ByVal Direz As String) As Boolean
  161.         Dim consenso As Boolean = False
  162.         Select Case Direz
  163.             Case Is = "U"
  164.                 For c As Int32 = 1 To 3
  165.                     For r As Int32 = 4 To 1 Step -1
  166.                         If Matr2048(c, r) = Matr2048(c + 1, r) And Matr2048(c, r) > 1 Then
  167.                             consenso = True
  168.                         End If
  169.  
  170.                         If Matr2048(c, r) = 1 And Matr2048(c + 1, r) > 1 Then
  171.                             consenso = True
  172.                         End If
  173.                     Next r
  174.                 Next c
  175.  
  176.             Case Is = "L"
  177.                 For R = 1 To 4
  178.                     For C = 1 To 3
  179.                         If Matr2048(R, C) = Matr2048(R, C + 1) And Matr2048(R, C) > 1 Then
  180.                             consenso = True
  181.                         End If
  182.  
  183.                         If Matr2048(R, C) = 1 And Matr2048(R, C + 1) > 1 Then
  184.                             consenso = True
  185.                         End If
  186.                     Next C
  187.                 Next R
  188.  
  189.             Case Is = "D"
  190.                 For c As Int32 = 4 To 2 Step -1
  191.                     For r As Int32 = 1 To 4
  192.                         If Matr2048(c, r) = 1 And Matr2048(c - 1, r) > 1 Then
  193.                             consenso = True
  194.                         End If
  195.  
  196.                         If Matr2048(c, r) = Matr2048(c - 1, r) And Matr2048(c, r) > 1 Then
  197.                             consenso = True
  198.                         End If
  199.                     Next r
  200.                 Next c
  201.  
  202.             Case Is = "R"
  203.                 For r As Int32 = 1 To 4
  204.                     For c As Int32 = 4 To 2 Step -1
  205.                         If Matr2048(r, c) = 1 And Matr2048(r, c - 1) > 1 Then
  206.                             consenso = True
  207.                         End If
  208.  
  209.                         If Matr2048(r, c) = Matr2048(r, c - 1) And Matr2048(r, c) > 1 Then
  210.                             consenso = True
  211.                         End If
  212.                     Next c
  213.                 Next r
  214.  
  215.         End Select
  216.  
  217.         Return consenso
  218.     End Function
  219.  
  220.     Private Sub But_UP_Click(sender As Object, e As EventArgs) Handles But_UP.Click
  221.         If InMovimento Then Exit Sub ' se l'animazione è in corso non eseguo
  222.         Move_U = Consenso_Mosse(Matrice4x4, "U")
  223.         If Move_U = True Then
  224.             Call Copia_Matrice2048(Matrice4x4, Matrice_Back1)
  225.             Scambio_ok_Back = Scambio_ok
  226.         End If
  227.         Scambio_ok = False
  228.         Call Elabora_Matrice4x4_UP(Matrice4x4)
  229.         If Scambio_ok = True Then
  230.             Call Random_Matrice4x4_2048()
  231.             InMovimento = True ' evita errore
  232.             Call Visualizza_Immagine_Celle2048(Matrice4x4)
  233.             InMovimento = False ' evita errore
  234.         Else
  235.             Call verifica_Mosse(Matrice4x4)
  236.         End If
  237.         Call cambia_colore_P(sender)
  238.     End Sub
  239.  
  240.     Private Sub But_Down_Click(sender As Object, e As EventArgs) Handles But_Down.Click
  241.         If InMovimento Then Exit Sub ' se l'animazione è in corso non eseguo
  242.         Move_D = Consenso_Mosse(Matrice4x4, "D")
  243.         If Move_D = True Then
  244.             Call Copia_Matrice2048(Matrice4x4, Matrice_Back1)
  245.             Scambio_ok_Back = Scambio_ok
  246.         End If
  247.         Scambio_ok = False
  248.         Call Elabora_Matrice4x4_Down(Matrice4x4)
  249.         If Scambio_ok = True Then
  250.             Call Random_Matrice4x4_2048()
  251.             InMovimento = True ' evita errore
  252.             Call Visualizza_Immagine_Celle2048(Matrice4x4)
  253.             InMovimento = False ' evita errore
  254.         Else
  255.             Call verifica_Mosse(Matrice4x4)
  256.         End If
  257.         Call cambia_colore_P(sender)
  258.     End Sub
  259.  
  260.     Private Sub But_R_Click(sender As Object, e As EventArgs) Handles But_R.Click
  261.         If InMovimento Then Exit Sub ' se l'animazione è in corso non eseguo
  262.         Move_R = Consenso_Mosse(Matrice4x4, "R")
  263.         If Move_R = True Then
  264.             Call Copia_Matrice2048(Matrice4x4, Matrice_Back1)
  265.             Scambio_ok_Back = Scambio_ok
  266.         End If
  267.         Scambio_ok = False
  268.         Call Elabora_Matrice4x4_Right(Matrice4x4)
  269.         If Scambio_ok = True Then
  270.             Call Random_Matrice4x4_2048()
  271.             InMovimento = True ' evita errore
  272.             Call Visualizza_Immagine_Celle2048(Matrice4x4)
  273.             InMovimento = False ' evita errore
  274.         Else
  275.             Call verifica_Mosse(Matrice4x4)
  276.         End If
  277.         Call cambia_colore_P(sender)
  278.     End Sub
  279.  
  280.     Private Sub But_L_Click(sender As Object, e As EventArgs) Handles But_L.Click
  281.         If InMovimento Then Exit Sub ' se l'animazione è in corso non eseguo
  282.         Move_L = Consenso_Mosse(Matrice4x4, "L")
  283.         If Move_L = True Then
  284.             Call Copia_Matrice2048(Matrice4x4, Matrice_Back1)
  285.             Scambio_ok_Back = Scambio_ok
  286.         End If
  287.         Scambio_ok = False
  288.         Call Elabora_Matrice4x4_Left(Matrice4x4)
  289.         If Scambio_ok = True Then
  290.             Call Random_Matrice4x4_2048()
  291.             InMovimento = True ' evita errore
  292.             Call Visualizza_Immagine_Celle2048(Matrice4x4)
  293.             InMovimento = False ' evita errore
  294.         Else
  295.             Call verifica_Mosse(Matrice4x4)
  296.         End If
  297.         Call cambia_colore_P(sender)
  298.     End Sub
  299.  
  300.     Private Sub Back1PassoToolStrip_Click(sender As Object, e As EventArgs) Handles Back1PassoToolStrip.Click
  301.         Call Copia_Matrice2048(Matrice_Back1, Matrice4x4)
  302.         Call Visualizza_Immagine_Celle2048(Matrice4x4)
  303.         Scambio_ok = Scambio_ok_Back
  304.         mosse -= 1
  305.         InMovimento = False ' evita errore
  306.     End Sub
  307.  
  308.     'Funzione per i comandi da tastiera inserita dal Dev. Carlo
  309.     Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean
  310.         If InMovimento = True Then
  311.             Return True
  312.         End If
  313.  
  314.         ' Intercetto le frecce
  315.         Select Case keyData
  316.             Case Keys.Down
  317.                 But_Down.Focus()
  318.                 But_Down_Click(But_Down, New System.EventArgs())
  319.             Case Keys.Up
  320.                 But_UP.Focus()
  321.                 But_UP_Click(But_UP, New System.EventArgs())
  322.             Case Keys.Left
  323.                 But_L.Focus()
  324.                 But_L_Click(But_L, New System.EventArgs())
  325.             Case Keys.Right
  326.                 But_R.Focus()
  327.                 But_R_Click(But_R, New System.EventArgs())
  328.             Case Keys.D0
  329.                 AzzeraToolStripMenuItem_Click(0, New System.EventArgs())
  330.             Case Keys.Escape
  331.                 EsciToolStripMenuItem_Click(0, New System.EventArgs())
  332.             Case Keys.Z
  333.                 Back1PassoToolStrip_Click(0, New System.EventArgs())
  334.             Case Keys.V
  335.                 Call VisualizzaTest() ' mostra i simboli correnti
  336.             Case Keys.H
  337.                 Animazione1ToolStrip_Click(0, New System.EventArgs())
  338.             Case Keys.J
  339.                 Animazione2ToolStrip_Click(0, New System.EventArgs())
  340.             Case Keys.K
  341.                 Animazione3ToolStrip_Click(0, New System.EventArgs())
  342.             Case Keys.D1
  343.                 ImmaginiSet1ToolStrip_Click(0, New System.EventArgs())
  344.             Case Keys.D2
  345.                 ImmaginiSet2ToolStrip_Click(0, New System.EventArgs())
  346.             Case Keys.D3
  347.                 ImmaginiSet3ToolStrip_Click(0, New System.EventArgs())
  348.             Case Keys.D4
  349.                 ImmaginiSet4ToolStrip_Click(0, New System.EventArgs())
  350.             Case Keys.D5
  351.                 ImmaginiSet5ToolStrip_Click(0, New System.EventArgs())
  352.             Case Keys.D6
  353.                 ImmaginiSet6ToolStrip_Click(0, New System.EventArgs())
  354.             Case Keys.D7
  355.                 ImmaginiSet7ToolStrip_Click(0, New System.EventArgs())
  356.             Case Keys.D8
  357.                 ImmaginiSet8ToolStrip_Click(0, New System.EventArgs())
  358.         End Select
  359.  
  360.         keyData = Nothing
  361.         Return True
  362.  
  363.     End Function
  364.  
  365.     'Funzione per i comandi Touch
  366.     Private Sub Touch_Input(ByVal sender As System.Object, ByVal e As System.EventArgs)
  367.         If (Me.Panel1 IsNot Nothing) Then
  368.  
  369.         End If
  370.     End Sub
  371.  
  372.     Public Sub cambia_colore_P(ByVal sender As Object)
  373.  
  374.         Dim nome_P As String = sender.tag
  375.  
  376.         Me.But_L.BackColor = Color.White
  377.         Me.But_R.BackColor = Color.White
  378.         Me.But_UP.BackColor = Color.White
  379.         Me.But_Down.BackColor = Color.White
  380.  
  381.         Select Case nome_P
  382.             Case Is = "L"
  383.                 Me.But_L.BackColor = Color.DarkOliveGreen
  384.             Case Is = "R"
  385.                 Me.But_R.BackColor = Color.DarkOliveGreen
  386.             Case Is = "U"
  387.                 Me.But_UP.BackColor = Color.DarkOliveGreen
  388.             Case Is = "D"
  389.                 Me.But_Down.BackColor = Color.DarkOliveGreen
  390.         End Select
  391.  
  392.         mosse += 1
  393.     End Sub
  394.  
  395.     Public Sub Verifica_Ultima_Potenza(ByVal P As Int32)
  396.  
  397.         If Audio_On Then Thread.Sleep(200)
  398.  
  399.         Ultima_Potenza = P
  400.  
  401.         If Ultima_Potenza > Max_Potenza_Raggiunta Then Max_Potenza_Raggiunta = Ultima_Potenza Else Return
  402.         Dim index As Int32 = Array.IndexOf(Obiettivi_Punteggio, Max_Potenza_Raggiunta)
  403.  
  404.         If index >= 0 Then
  405.             Suono4.play()
  406.             Obiettivi_Punteggio(index) = 0
  407.         End If
  408.  
  409.     End Sub
  410.  
  411.     Public Sub Elabora_Matrice4x4_Down(ByRef Matr2048 As Int32(,))
  412.         Dim Ripeti As Int32 = 0
  413.         Scambio_ok = False
  414.         While Ripeti < NumericUpDown1.Value
  415.  
  416.             For c As Int32 = 4 To 2 Step -1
  417.                 For r As Int32 = 1 To 4
  418.  
  419.                     If Matr2048(c, r) = 1 And Matr2048(c - 1, r) > 1 Then
  420.                         Matr2048(c, r) = Matr2048(c - 1, r)
  421.                         Matr2048(c - 1, r) = 1
  422.                         Scambio_ok = True
  423.                     End If
  424.  
  425.                     If Ripeti = 0 Or Ripeti = 2 Then
  426.                         If Matr2048(c, r) = Matr2048(c - 1, r) And Matr2048(c, r) > 1 Then
  427.                             Matr2048(c, r) *= 2
  428.                             Matr2048(c - 1, r) = 1
  429.                             Punteggio += Matr2048(c, r)
  430.                             Scambio_ok = True
  431.                             If Audio_On Then Suono5.play()
  432.                             Call Verifica_Ultima_Potenza(Matr2048(c, r))
  433.                         End If
  434.                     End If
  435.  
  436.                     If Matr2048(c, r) = 1 And Matr2048(c - 1, r) > 1 Then
  437.                         Matr2048(c, r) = Matr2048(c - 1, r)
  438.                         Matr2048(c - 1, r) = 1
  439.                         Scambio_ok = True
  440.                     End If
  441.                 Next r
  442.             Next c
  443.             Ripeti += 1
  444.         End While
  445.  
  446.         Ripeti = 1
  447.         While Ripeti = 1
  448.             Ripeti = 0
  449.             For c As Int32 = 4 To 2 Step -1
  450.                 For r As Int32 = 1 To 4
  451.                     If Matr2048(c, r) = 1 And Matr2048(c - 1, r) > 1 Then
  452.                         Matr2048(c, r) = Matr2048(c - 1, r)
  453.                         Matr2048(c - 1, r) = 1
  454.                         Ripeti = 1
  455.                         Scambio_ok = True
  456.                     End If
  457.                 Next r
  458.             Next c
  459.         End While
  460.     End Sub
  461.  
  462.     Public Sub Elabora_Matrice4x4_UP(ByRef Matr2048 As Int32(,))
  463.         Dim Ripeti As Int32 = 0
  464.         Scambio_ok = False
  465.         While Ripeti < NumericUpDown1.Value
  466.  
  467.             For c As Int32 = 1 To 3
  468.                 For r As Int32 = 4 To 1 Step -1
  469.  
  470.                     If Matr2048(c, r) = 1 And Matr2048(c + 1, r) > 1 Then
  471.                         Matr2048(c, r) = Matr2048(c + 1, r)
  472.                         Matr2048(c + 1, r) = 1
  473.                         Scambio_ok = True
  474.                     End If
  475.  
  476.                     If Ripeti = 0 Or Ripeti = 2 Then
  477.                         If Matr2048(c, r) = Matr2048(c + 1, r) And Matr2048(c, r) > 1 Then
  478.                             Matr2048(c, r) *= 2
  479.                             Matr2048(c + 1, r) = 1
  480.                             Punteggio += Matr2048(c, r)
  481.                             Scambio_ok = True
  482.                             If Audio_On Then Suono5.play()
  483.                             Call Verifica_Ultima_Potenza(Matr2048(c, r))
  484.                         End If
  485.                     End If
  486.  
  487.                     If Matr2048(c, r) = 1 And Matr2048(c + 1, r) > 1 Then
  488.                         Matr2048(c, r) = Matr2048(c + 1, r)
  489.                         Matr2048(c + 1, r) = 1
  490.                         Scambio_ok = True
  491.                     End If
  492.                 Next r
  493.             Next c
  494.             Ripeti += 1
  495.         End While
  496.  
  497.         Ripeti = 1
  498.         While Ripeti = 1
  499.             Ripeti = 0
  500.             For c As Int32 = 1 To 3
  501.                 For r As Int32 = 4 To 1 Step -1
  502.  
  503.                     If Matr2048(c, r) = 1 And Matr2048(c + 1, r) > 1 Then
  504.                         Matr2048(c, r) = Matr2048(c + 1, r)
  505.                         Matr2048(c + 1, r) = 1
  506.                         Ripeti = 1
  507.                         Scambio_ok = True
  508.                     End If
  509.                 Next r
  510.             Next c
  511.         End While
  512.     End Sub
  513.  
  514.     Public Sub Elabora_Matrice4x4_Left(ByRef Matr2048 As Int32(,))
  515.         Dim Ripeti As Int32 = 0
  516.         Scambio_ok = False
  517.         While Ripeti < NumericUpDown1.Value
  518.  
  519.             For r As Int32 = 1 To 4
  520.                 For c As Int32 = 1 To 3
  521.  
  522.                     If Matr2048(r, c) = 1 And Matr2048(r, c + 1) > 1 Then
  523.                         Matr2048(r, c) = Matr2048(r, c + 1)
  524.                         Matr2048(r, c + 1) = 1
  525.                         Scambio_ok = True
  526.                     End If
  527.  
  528.                     If Ripeti = 0 Or Ripeti = 2 Then
  529.                         If Matr2048(r, c) = Matr2048(r, c + 1) And Matr2048(r, c) > 1 Then
  530.                             Matr2048(r, c) *= 2
  531.                             Matr2048(r, c + 1) = 1
  532.                             Punteggio += Matr2048(r, c)
  533.                             Scambio_ok = True
  534.                             If Audio_On Then Suono5.play()
  535.                             Call Verifica_Ultima_Potenza(Matr2048(r, c))
  536.                         End If
  537.                     End If
  538.  
  539.                     If Matr2048(r, c) = 1 And Matr2048(r, c + 1) > 1 Then
  540.                         Matr2048(r, c) = Matr2048(r, c + 1)
  541.                         Matr2048(r, c + 1) = 1
  542.                         Scambio_ok = True
  543.                     End If
  544.                 Next c
  545.             Next r
  546.             Ripeti += 1
  547.         End While
  548.  
  549.         Ripeti = 1
  550.         While Ripeti = 1
  551.             Ripeti = 0
  552.             For r As Int32 = 1 To 4
  553.                 For c As Int32 = 1 To 3
  554.                     If Matr2048(r, c) = 1 And Matr2048(r, c + 1) > 1 Then
  555.                         Matr2048(r, c) = Matr2048(r, c + 1)
  556.                         Matr2048(r, c + 1) = 1
  557.                         Ripeti = 1
  558.                         Scambio_ok = True
  559.                     End If
  560.                 Next c
  561.             Next r
  562.         End While
  563.     End Sub
  564.  
  565.     Public Sub Elabora_Matrice4x4_Right(ByRef Matr2048 As Int32(,))
  566.         Dim Ripeti As Int32 = 0
  567.         Scambio_ok = False
  568.         While Ripeti < NumericUpDown1.Value
  569.  
  570.             For r As Int32 = 1 To 4
  571.                 For c As Int32 = 4 To 2 Step -1
  572.                     If Matr2048(r, c) = 1 And Matr2048(r, c - 1) > 1 Then
  573.                         Matr2048(r, c) = Matr2048(r, c - 1)
  574.                         Matr2048(r, c - 1) = 1
  575.                         Scambio_ok = True
  576.                     End If
  577.  
  578.                     If Ripeti = 0 Or Ripeti = 2 Then
  579.                         If Matr2048(r, c) = Matr2048(r, c - 1) And Matr2048(r, c) > 1 Then
  580.                             Matr2048(r, c) *= 2
  581.                             Matr2048(r, c - 1) = 1
  582.                             Punteggio += Matr2048(r, c)
  583.                             Scambio_ok = True
  584.                             If Audio_On Then Suono5.play()
  585.                             Call Verifica_Ultima_Potenza(Matr2048(r, c))
  586.                         End If
  587.                     End If
  588.  
  589.                     If Matr2048(r, c) = 1 And Matr2048(r, c - 1) > 1 Then
  590.                         Matr2048(r, c) = Matr2048(r, c - 1)
  591.                         Matr2048(r, c - 1) = 1
  592.                         Scambio_ok = True
  593.                     End If
  594.  
  595.                 Next c
  596.             Next r
  597.             Ripeti += 1
  598.         End While
  599.  
  600.         Ripeti = 1
  601.         While Ripeti = 1
  602.             Ripeti = 0
  603.             For r As Int32 = 1 To 4
  604.                 For c As Int32 = 4 To 2 Step -1
  605.                     If Matr2048(r, c) = 1 And Matr2048(r, c - 1) > 1 Then
  606.                         Matr2048(r, c) = Matr2048(r, c - 1)
  607.                         Matr2048(r, c - 1) = 1
  608.                         Ripeti = 1
  609.                         Scambio_ok = True
  610.                     End If
  611.                 Next c
  612.             Next r
  613.         End While
  614.     End Sub
  615.  
  616.     Public Sub Inizializza_Matrice2048(ByRef Matr2048 As Int32(,))
  617.  
  618.         For r As Int32 = 1 To 4
  619.             For c As Int32 = 1 To 4
  620.                 Matr2048(r, c) = 1
  621.             Next c
  622.         Next r
  623.  
  624.     End Sub
  625.  
  626.     Public Sub Copia_Matrice2048(ByRef Matr2048 As Int32(,), ByRef CopiaMatrice As Int32(,))
  627.         'clona la matrice base
  628.         Array.Copy(Matr2048, CopiaMatrice, 25)
  629.     End Sub
  630.  
  631.     Public Sub verifica_Mosse(ByRef Matr2048 As Int32(,))
  632.  
  633.         'verifica che ci siano mosse possibili
  634.         Dim flag As Boolean = False
  635.         For R = 1 To 4
  636.             For C = 1 To 4
  637.                 If Matr2048(R, C) = 1 Then
  638.                     flag = True
  639.                 End If
  640.             Next C
  641.         Next R
  642.  
  643.         For R = 1 To 4
  644.             For C = 1 To 3
  645.                 If Matr2048(R, C) = Matr2048(R, C + 1) Then
  646.                     flag = True
  647.                 End If
  648.             Next C
  649.         Next R
  650.  
  651.         For c As Int32 = 1 To 3
  652.             For r As Int32 = 4 To 1 Step -1
  653.                 If Matr2048(c, r) = Matr2048(c + 1, r) Then
  654.                     flag = True
  655.                 End If
  656.             Next r
  657.         Next c
  658.  
  659.         If flag = False And AutoOn = False Then
  660.             If Audio_On Then Thread.Sleep(100)
  661.             If Audio_On Then Suono1.play()
  662.             MsgBox(" Non ci sono coppie possibili, Cambia pulsante o Ritenta ")
  663.             Exit Sub
  664.         End If
  665.  
  666.         If flag = False And AutoOn = True Then
  667.             Mosse_Auto = False
  668.         End If
  669.  
  670.         If Scambio_ok = False And AutoOn = True And flag = True Then
  671.             Mosse_Auto = False
  672.         End If
  673.  
  674.         If Scambio_ok = False And AutoOn = True And flag = False Then
  675.  
  676.             AutoOn = False
  677.         End If
  678.     End Sub
  679.  
  680.     Public Sub Random_Matrice4x4_2048()
  681.         If Stato_eventi = Stato.Azzerato Then
  682.             Stato_eventi = Stato.Avviato
  683.             Estrai()
  684.             'Ricorsiva
  685.             Random_Matrice4x4_2048()
  686.         Else
  687.             Estrai()
  688.         End If
  689.     End Sub
  690.  
  691.     Public Sub Estrai()
  692.         Dim rand As New Random
  693.         Dim R As Int32
  694.         Dim C As Int32
  695.         Do
  696.             R = rand.Next(1, 5)
  697.             C = rand.Next(1, 5)
  698.             If Matrice4x4(R, C) = 1 Then
  699.                 Matrice4x4(R, C) = Rand_2_4()
  700.                 Indx_Nuovo_Val = R & "-" & C
  701.                 Verifica_Ultima_Potenza(Matrice4x4(R, C))
  702.                 Exit Do
  703.             End If
  704.         Loop
  705.     End Sub
  706.  
  707.     Public Function Rand_2_4() As Int32
  708.         Dim rand As New Random
  709.         Dim num As Int32
  710.         Dim opz() As Int32 = {2, 2, 2, 2, 4}
  711.         num = opz(rand.Next(0, 5))
  712.         Return num
  713.     End Function
  714.  
  715.     Public Sub Animazione_Pbx(ByRef Pbx As PictureBox)
  716.         'Movimento animato di una PictureBox.
  717.         InMovimento = True ' evita errore
  718.         If Pbx Is Nothing Then
  719.             Exit Sub
  720.         End If
  721.         Me.Refresh()
  722.         If Me.Animazione2ToolStrip.Checked = True Then
  723.             Pbx.BringToFront()
  724.             Dim Location_Pbx As Point
  725.             Dim vn1 As Int32 = 3
  726.             Dim vn2 As Int32 = 1
  727.  
  728.             For j As Int32 = 1 To 5
  729.                 Pbx.Width -= vn1
  730.                 Pbx.Height -= vn1
  731.                 Thread.Sleep(1)
  732.                 Location_Pbx = New Point(Pbx.Left + vn2, Pbx.Top + vn2)
  733.                 Pbx.Location = Location_Pbx
  734.             Next j
  735.  
  736.             For i As Int32 = 1 To 5
  737.                 Pbx.Width += vn1
  738.                 Pbx.Height += vn1
  739.                 Thread.Sleep(50)
  740.                 Location_Pbx = New Point(Pbx.Left - vn2, Pbx.Top - vn2)
  741.                 Pbx.Location = Location_Pbx
  742.                 Pbx.Refresh()
  743.             Next i
  744.         ElseIf Me.Animazione1ToolStrip.Checked = True Then
  745.             Dim Immagine As Bitmap = Pbx.Image
  746.             Pbx.Image = Nothing
  747.             Pbx.Refresh()
  748.             For i = -84 To 0
  749.                 Using PbxGraphics As Graphics = Pbx.CreateGraphics()
  750.                     PbxGraphics.DrawImage(Immagine, 0, i, 84, 84)
  751.                 End Using
  752.                 Thread.Sleep(2)
  753.             Next i
  754.             Pbx.Image = Immagine
  755.             Pbx.Refresh()
  756.         ElseIf Me.Animazione3ToolStrip.Checked = True Then
  757.             Dim Immagine As Bitmap = Pbx.Image
  758.             Pbx.Image = Nothing
  759.             Pbx.Refresh()
  760.             For i = 0 To 84
  761.                 Using PbxGraphics As Graphics = Pbx.CreateGraphics()
  762.                     PbxGraphics.DrawImage(Immagine, 42 - i \ 2, 42 - i \ 2, i, i)
  763.                 End Using
  764.                 Thread.Sleep(2)
  765.             Next i
  766.             Pbx.Image = Immagine
  767.             Pbx.Refresh()
  768.         End If
  769.     End Sub
  770.  
  771.     Public Sub Visualizza_Immagine_Celle2048(ByRef Matr2048 As Int32(,))
  772.  
  773.         'indice della cella nuovo valore random
  774.         Dim invr As Int32
  775.  
  776.         For i As Int32 = 1 To 16
  777.             Dim Tag_Cella As String = ""
  778.             Tag_Cella = Mat4x4Pict_2040(i).Tag
  779.             For r As Int32 = 1 To 4
  780.                 For c As Int32 = 1 To 4
  781.                     Dim index_M As String = r & "-" & c
  782.  
  783.                     If index_M = Tag_Cella Then
  784.                         '** Inserisce le rispettive immagini **
  785.                         If Matr2048(r, c) = 1 Then
  786.                             Mat4x4Pict_2040(i).Image = Nothing
  787.                         Else
  788.                             Mat4x4Pict_2040(i).Image = Me.ImageList1.Images(CInt(Math.Log(Matr2048(r, c), 2)) - 1)
  789.                             If index_M = Indx_Nuovo_Val Then
  790.                                 invr = i
  791.                             End If
  792.                         End If
  793.                         '************************
  794.                     End If
  795.                 Next c
  796.  
  797.             Next r
  798.  
  799.         Next i
  800.  
  801.         '** Inserimento immagine corrispondente **
  802.         If Max_Potenza_Raggiunta > 1 Then
  803.             Me.PictureBox1.BackgroundImage = Me.ImageList1.Images(CInt(Math.Log(Max_Potenza_Raggiunta, 2)) - 1)
  804.         End If
  805.         '************************
  806.  
  807.         'Avvio la procedura di animazione
  808.         If Animazione_On Then Call Animazione_Pbx(Mat4x4Pict_2040(invr))
  809.  
  810.         Dim new_record As Int32
  811.         new_record = Punteggio - (CInt(My.Settings.Record))
  812.         If new_record > 0 Then
  813.             Giocatore = TextBox_Nome.Text
  814.             My.Settings.Record = Punteggio
  815.             My.Settings.Mosse_Rec = mosse
  816.             My.Settings.Nome = Giocatore
  817.             My.Settings.Max_Valore = Max_Potenza_Raggiunta
  818.             My.Settings.Save()
  819.             If Audio_On Then Thread.Sleep(200)
  820.             If Nuovo_Record = False Then
  821.                 Nuovo_Record = True
  822.                 If Audio_On Then Suono2.play()
  823.                 Label1.ForeColor = Color.Red
  824.             End If
  825.         End If
  826.         Label1.Text = "Punteggio Record: " & My.Settings.Record
  827.         Label2.Text = "Mosse: " & My.Settings.Mosse_Rec
  828.         Label3.Text = "Record di: " & My.Settings.Nome
  829.         Label4.Text = "Max_Val: " & My.Settings.Max_Valore
  830.         Me.TSLabel_Stato.Text = "Stato: Punteggio " & Punteggio & "   Mosse " & mosse
  831.         Me.Refresh()
  832.  
  833.     End Sub
  834.  
  835.     Private Sub AzzeraToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AzzeraToolStripMenuItem.Click
  836.  
  837.         Stato_eventi = Stato.Azzerato
  838.         Punteggio = 0
  839.         mosse = 0
  840.         Max_Potenza_Raggiunta = 2
  841.         Obiettivi_Punteggio = {2048, 4096, 8192} ' ripristino
  842.         Call Inizializza_Matrice2048(Matrice4x4)
  843.         Call Random_Matrice4x4_2048()
  844.         Call Visualizza_Immagine_Celle2048(Matrice4x4)
  845.         Scambio_ok = True
  846.         InMovimento = False
  847.  
  848.     End Sub
  849.  
  850.     Private Sub EsciToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EsciToolStripMenuItem.Click
  851.         My.Settings.Save()
  852.         End
  853.     End Sub
  854.  
  855.     Private Sub TextBox_Nome_Click(sender As Object, e As EventArgs) Handles TextBox_Nome.Click
  856.         'inserimento nome giocatore
  857.         Me.Enabled = False
  858.         LoginForm1.Show()
  859.     End Sub
  860.  
  861.     Private Sub Timer1_Tick(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Timer1.Tick
  862.         If mosse = 0 Then
  863.             lblInfo.Text = DateTime.Now.ToString
  864.             Partenza = DateTime.Now
  865.         Else
  866.             Tempo = DateTime.FromOADate(DateTime.Now.ToOADate - Partenza.ToOADate)
  867.             lblInfo.Text = "Tempo:        " & Tempo
  868.         End If
  869.     End Sub
  870.  
  871.     Private Sub Button_Auto_Click(sender As Object, e As EventArgs) Handles Button_Auto.Click
  872.         AutoOn = True
  873.  
  874.         For a As Integer = 1 To 3000
  875.             If AutoOn = False Then Exit For
  876.             Application.DoEvents()
  877.  
  878.             But_Down_Click(But_Down, New System.EventArgs())
  879.  
  880.             If AutoOn = False Then Exit For
  881.  
  882.             Application.DoEvents()
  883.             But_L_Click(But_L, New System.EventArgs())
  884.  
  885.             If AutoOn = False Then Exit For
  886.             Application.DoEvents()
  887.             But_Down_Click(But_Down, New System.EventArgs())
  888.  
  889.  
  890.             If AutoOn = False Then Exit For
  891.  
  892.             Application.DoEvents()
  893.             But_L_Click(But_L, New System.EventArgs())
  894.  
  895.             If AutoOn = False Then Exit For
  896.  
  897.             If a Mod 10 = 0 Then
  898.                 But_R_Click(But_R, New System.EventArgs())
  899.  
  900.             End If
  901.             If AutoOn = False Then Exit For
  902.  
  903.             If Mosse_Auto = False And a Mod 500 = 0 Then
  904.                 Mosse_Auto = True
  905.                 But_UP_Click(But_UP, New System.EventArgs())
  906.                 Application.DoEvents()
  907.             End If
  908.  
  909.         Next
  910.  
  911.     End Sub
  912.  
  913.     Private Sub Butt_Stop_Click(sender As Object, e As EventArgs) Handles Butt_Stop.Click
  914.         AutoOn = False
  915.         Application.DoEvents()
  916.     End Sub
  917.  
  918.     Private Sub AboutToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AboutToolStripMenuItem.Click
  919.         AboutBox1.Show()
  920.         Me.Enabled = False
  921.     End Sub
  922.  
  923.     Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
  924.         My.Settings.Save()
  925.     End Sub
  926.  
  927.     Private Sub Crea_Simboli(TipoSimboli As Short)
  928.         Dim imgbmp As Bitmap = Nothing
  929.         ImageList1.Images.Clear()
  930.         If TipoSimboli = 1 Then
  931.             Dim Fondo As New SolidBrush(Color.FromArgb(255, 14, 209, 69)) ' fondo 2
  932.             For i = 0 To 12
  933.                 imgbmp = New Bitmap(84, 84) ' creo una bitmap
  934.                 Using g As Graphics = Graphics.FromImage(imgbmp) ' g agisce su imgbmp
  935.                     g.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAliasGridFit
  936.                     Dim Testo As String = 2 ^ (i + 1).ToString ' testo da scrivere
  937.                     If i = 1 Then Fondo = New SolidBrush(Color.FromArgb(255, 255, 127, 39)) ' fondo 4
  938.                     If i = 2 Then Fondo = New SolidBrush(Color.FromArgb(255, 185, 122, 86)) ' fondo 8
  939.                     If i = 3 Then Fondo = New SolidBrush(Color.FromArgb(255, 0, 168, 243)) ' fondo 16
  940.                     If i = 4 Then Fondo = New SolidBrush(Color.FromArgb(255, 225, 184, 44)) ' fondo 32
  941.                     If i = 5 Then Fondo = New SolidBrush(Color.FromArgb(255, 0, 53, 243)) ' fondo 64
  942.                     If i = 6 Then Fondo = New SolidBrush(Color.FromArgb(255, 255, 242, 0)) ' fondo 128
  943.                     If i = 7 Then Fondo = New SolidBrush(Color.FromArgb(255, 196, 255, 14)) ' fondo 256
  944.                     If i = 8 Then Fondo = New SolidBrush(Color.FromArgb(255, 160, 13, 234)) ' fondo 512
  945.                     If i = 9 Then Fondo = New SolidBrush(Color.FromArgb(255, 155, 112, 77)) ' fondo 1024
  946.                     If i = 10 Then Fondo = New SolidBrush(Color.FromArgb(255, 230, 17, 81)) ' fondo 2048
  947.                     If i = 11 Then Fondo = New SolidBrush(Color.FromArgb(255, 181, 181, 223)) ' fondo 4096
  948.                     If i = 12 Then Fondo = New SolidBrush(Color.FromArgb(255, 91, 92, 67)) ' fondo 8192
  949.                     g.FillRectangle(Brushes.Snow, 0, 0, 84, 84)
  950.                     g.FillEllipse(Fondo, -14, -14, 111, 111)
  951.  
  952.                     If i < 2 Then
  953.                         Using Carattere As Font = New Font("Arial", 26, FontStyle.Bold)
  954.                             g.DrawString(Testo, Carattere, Brushes.Black, New PointF(26, 22)) ' 2 e 4
  955.                         End Using
  956.                     ElseIf i = 2 Then
  957.                         Using Carattere As Font = New Font("Arial", 26, FontStyle.Regular)
  958.                             g.DrawString(Testo, Carattere, Brushes.White, New PointF(26, 22)) ' 8
  959.                         End Using
  960.                     ElseIf i = 3 Then
  961.                         Using Carattere As Font = New Font("Arial", 26, FontStyle.Regular)
  962.                             g.DrawString(Testo, Carattere, Brushes.DarkRed, New PointF(18, 22)) ' 16
  963.                         End Using
  964.                     ElseIf i = 4 Then
  965.                         Using Carattere As Font = New Font("Arial", 26, FontStyle.Regular)
  966.                             g.DrawString(Testo, Carattere, Brushes.Blue, New PointF(18, 22)) ' 32
  967.                         End Using
  968.                     ElseIf i = 5 Then
  969.                         Using Carattere As Font = New Font("Arial", 26, FontStyle.Regular)
  970.                             g.DrawString(Testo, Carattere, Brushes.Yellow, New PointF(18, 22)) ' 64
  971.                         End Using
  972.                     ElseIf i = 6 Then
  973.                         Using Carattere As Font = New Font("Arial", 26, FontStyle.Regular)
  974.                             g.DrawString(Testo, Carattere, Brushes.Blue, New PointF(5, 22)) ' 128
  975.                         End Using
  976.                     ElseIf i = 7 Then
  977.                         Using Carattere As Font = New Font("Arial", 26, FontStyle.Regular)
  978.                             g.DrawString(Testo, Carattere, Brushes.Black, New PointF(8, 22)) ' 256
  979.                         End Using
  980.                     ElseIf i = 8 Then
  981.                         Using Carattere As Font = New Font("Arial", 26, FontStyle.Regular)
  982.                             g.DrawString(Testo, Carattere, Brushes.White, New PointF(8, 22)) ' 512
  983.                         End Using
  984.                     ElseIf i = 9 Then
  985.                         Using Carattere As Font = New Font("Arial", 22, FontStyle.Regular)
  986.                             g.DrawString(Testo, Carattere, Brushes.LimeGreen, New PointF(5, 26)) ' 1024
  987.                         End Using
  988.                     ElseIf i = 10 Then
  989.                         Using Carattere As Font = New Font("Arial", 22, FontStyle.Regular)
  990.                             g.DrawString(Testo, Carattere, Brushes.White, New PointF(5, 26)) ' 2048
  991.                         End Using
  992.                     ElseIf i = 11 Then
  993.                         Using Carattere As Font = New Font("Arial", 22, FontStyle.Regular)
  994.                             g.DrawString(Testo, Carattere, Brushes.DarkRed, New PointF(5, 26)) ' 4096
  995.                         End Using
  996.                     ElseIf i = 12 Then
  997.                         Using Carattere As Font = New Font("Arial", 22, FontStyle.Regular)
  998.                             g.DrawString(Testo, Carattere, Brushes.Red, New PointF(5, 26)) ' 8192
  999.                         End Using
  1000.                     End If
  1001.                 End Using
  1002.                 ImageList1.Images.Add(imgbmp)
  1003.             Next
  1004.             Panel1.BackColor = Color.Snow
  1005.             PictureBox1.BackColor = Color.Silver
  1006.             Call ToolStrip_Checked(TipoGrafica)
  1007.         ElseIf TipoSimboli = 2 Then
  1008.             Dim Fondo As New SolidBrush(Color.FromArgb(255, 245, 245, 245))
  1009.             For i = 0 To 12
  1010.                 imgbmp = New Bitmap(84, 84) ' creo una bitmap
  1011.                 Using g As Graphics = Graphics.FromImage(imgbmp) ' g agisce su imgbmp
  1012.                     g.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAliasGridFit
  1013.                     Dim Testo As String = 2 ^ (i + 1).ToString ' testo da scrivere
  1014.                     If i = 1 Then Fondo = New SolidBrush(Color.FromArgb(255, 245, 245, 220))
  1015.                     If i = 2 Then Fondo = New SolidBrush(Color.FromArgb(255, 242, 177, 121))
  1016.                     If i = 3 Then Fondo = New SolidBrush(Color.FromArgb(255, 245, 149, 99))
  1017.                     If i = 4 Then Fondo = New SolidBrush(Color.FromArgb(255, 245, 124, 97))
  1018.                     If i = 5 Then Fondo = New SolidBrush(Color.FromArgb(255, 255, 10, 10))
  1019.                     If i = 6 Then Fondo = New SolidBrush(Color.FromArgb(255, 250, 220, 90))
  1020.                     If i = 7 Then Fondo = New SolidBrush(Color.FromArgb(255, 240, 225, 80))
  1021.                     If i = 8 Then Fondo = New SolidBrush(Color.FromArgb(255, 235, 200, 0))
  1022.                     If i = 9 Then Fondo = New SolidBrush(Color.FromArgb(255, 230, 190, 0))
  1023.                     If i = 10 Then Fondo = New SolidBrush(Color.FromArgb(255, 220, 160, 0))
  1024.                     If i = 11 Then Fondo = New SolidBrush(Color.FromArgb(255, 0, 64, 0))
  1025.                     If i = 12 Then Fondo = New SolidBrush(Color.FromArgb(255, 0, 0, 192))
  1026.                     g.FillRectangle(Fondo, 4, 4, 76, 76)
  1027.                     If i < 3 Then
  1028.                         Using Carattere As Font = New Font("Arial", 32, FontStyle.Bold)
  1029.                             g.DrawString(Testo, Carattere, Brushes.DarkSlateGray, New PointF(24, 20))
  1030.                         End Using
  1031.                     ElseIf i < 6 And i > 2 Then
  1032.                         Using Carattere As Font = New Font("Arial", 32, FontStyle.Bold)
  1033.                             g.DrawString(Testo, Carattere, Brushes.White, New PointF(12, 20))
  1034.                         End Using
  1035.                     ElseIf i < 9 And i > 5 Then
  1036.                         Using Carattere As Font = New Font("Arial", 28, FontStyle.Bold)
  1037.                             g.DrawString(Testo, Carattere, Brushes.White, New PointF(6, 22))
  1038.                         End Using
  1039.                     ElseIf i < 13 And i > 8 Then
  1040.                         Using Carattere As Font = New Font("Arial", 22, FontStyle.Bold)
  1041.                             g.DrawString(Testo, Carattere, Brushes.White, New PointF(5, 26))
  1042.                         End Using
  1043.                     End If
  1044.                 End Using
  1045.                 ImageList1.Images.Add(imgbmp)
  1046.             Next
  1047.             Panel1.BackColor = Color.Gray
  1048.             PictureBox1.BackColor = Color.Gray
  1049.             Call ToolStrip_Checked(TipoGrafica)
  1050.         ElseIf TipoSimboli = 3 Then
  1051.             Dim Fondo As New SolidBrush(Color.FromArgb(255, 220, 220, 220))
  1052.             Dim Penna As New SolidBrush(Color.FromArgb(255, 40, 40, 40))
  1053.             Dim Testo As String
  1054.             For i = 0 To 12
  1055.                 imgbmp = New Bitmap(84, 84) ' creo una bitmap
  1056.                 Using g As Graphics = Graphics.FromImage(imgbmp) ' g agisce su imgbmp
  1057.                     g.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAliasGridFit
  1058.                     g.SmoothingMode = SmoothingMode.AntiAlias ' qualità disegno
  1059.                     Testo = 2 ^ (i + 1).ToString ' testo da scrivere
  1060.                     Penna = New SolidBrush(Color.FromArgb(255, 10 * i, i * 10, 21 * i))
  1061.                     g.FillRectangle(Fondo, 0, 0, 84, 84)
  1062.                     Call Poligono_Regolare(g, Penna, 28 - i, i + 3, 42, 41, 0)
  1063.                     If i < 13 And i > 8 Then
  1064.                         Using Carattere As Font = New Font("Arial", 22, FontStyle.Bold)
  1065.                             g.DrawString(2 ^ (i + 1).ToString, Carattere, Brushes.White, New PointF(5, 26))
  1066.                         End Using
  1067.                     End If
  1068.                 End Using
  1069.                 ImageList1.Images.Add(imgbmp)
  1070.             Next
  1071.             Panel1.BackColor = Color.IndianRed
  1072.             PictureBox1.BackColor = Color.DarkKhaki
  1073.             Call ToolStrip_Checked(TipoGrafica)
  1074.         ElseIf TipoSimboli = 4 Then
  1075.             Dim Fondo As New SolidBrush(Color.Blue)
  1076.             Dim Penna As New SolidBrush(Color.Yellow)
  1077.             For i = 0 To 12
  1078.                 imgbmp = New Bitmap(84, 84) ' creo una bitmap
  1079.                 Using g As Graphics = Graphics.FromImage(imgbmp) ' g agisce su imgbmp
  1080.                     g.FillRectangle(Fondo, 0, 0, 84, 84)
  1081.                     g.FillRectangle(Penna, 0, 80 - i * 6, 84, 84)
  1082.                 End Using
  1083.                 ImageList1.Images.Add(imgbmp)
  1084.             Next
  1085.             Panel1.BackColor = Color.Coral
  1086.             PictureBox1.BackColor = Color.Brown
  1087.             Call ToolStrip_Checked(TipoGrafica)
  1088.         ElseIf TipoSimboli = 5 Then
  1089.  
  1090.             For i = 0 To 12
  1091.                 ImageList1.Images.Add(ImageList2.Images(i))
  1092.             Next
  1093.             Panel1.BackColor = Color.Brown
  1094.             PictureBox1.BackColor = Color.Brown
  1095.             Call ToolStrip_Checked(TipoGrafica)
  1096.         ElseIf TipoSimboli = 6 Then
  1097.  
  1098.             For i = 0 To 12
  1099.                 ImageList1.Images.Add(ImageList3.Images(i))
  1100.             Next
  1101.             Panel1.BackColor = Color.DarkGreen
  1102.             PictureBox1.BackColor = Color.DarkGreen
  1103.             Call ToolStrip_Checked(TipoGrafica)
  1104.         ElseIf TipoSimboli = 7 Then
  1105.  
  1106.             Dim Roma() As String = {"    I", "   II", "  III", "  IV", "   V", "   VI", "  VII", " VIII", "  IX", "   X", "  XI", "  XII", " XIII"}
  1107.             For i = 0 To 12
  1108.                 imgbmp = New Bitmap(84, 84) ' creo una bitmap
  1109.                 Using g As Graphics = Graphics.FromImage(imgbmp) ' g agisce su imgbmp
  1110.                     g.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAliasGridFit
  1111.                     g.FillRectangle(Brushes.Navy, 0, 0, 84, 84)
  1112.                     Using Carattere As Font = New Font("Georgia", 22, FontStyle.Regular)
  1113.                         g.DrawString(Roma(i), Carattere, Brushes.Red, New PointF(5, 26))
  1114.                     End Using
  1115.                 End Using
  1116.                 ImageList1.Images.Add(imgbmp)
  1117.             Next
  1118.             Panel1.BackColor = Color.Tomato
  1119.             PictureBox1.BackColor = Color.Navy
  1120.             Call ToolStrip_Checked(TipoGrafica)
  1121.         ElseIf TipoSimboli = 8 Then
  1122.  
  1123.             Dim Lettere() As String = {"   A", "   B", "   C", "   D", "   E", "   F", "   G", "   H", "   I", "   J", "   K", "   L", "   M"}
  1124.             For i = 0 To 12
  1125.                 imgbmp = New Bitmap(84, 84) ' creo una bitmap
  1126.                 Using g As Graphics = Graphics.FromImage(imgbmp) ' g agisce su imgbmp
  1127.                     g.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAliasGridFit
  1128.                     g.FillRectangle(Brushes.Navy, 0, 0, 84, 84)
  1129.                     Using Carattere As Font = New Font("Georgia", 32, FontStyle.Regular)
  1130.                         g.DrawString(Lettere(i), Carattere, Brushes.Red, New PointF(-10, 16))
  1131.                     End Using
  1132.                 End Using
  1133.                 ImageList1.Images.Add(imgbmp)
  1134.             Next
  1135.             Panel1.BackColor = Color.Tomato
  1136.             PictureBox1.BackColor = Color.Navy
  1137.             Call ToolStrip_Checked(TipoGrafica)
  1138.         End If
  1139.  
  1140.     End Sub
  1141.  
  1142.     Public Sub ToolStrip_Checked(ByRef TS As Short)
  1143.  
  1144.         Me.ImmaginiSet1ToolStrip.Checked = False
  1145.         Me.ImmaginiSet2ToolStrip.Checked = False
  1146.         Me.ImmaginiSet3ToolStrip.Checked = False
  1147.         Me.ImmaginiSet4ToolStrip.Checked = False
  1148.         Me.ImmaginiSet5ToolStrip.Checked = False
  1149.         Me.ImmaginiSet6ToolStrip.Checked = False
  1150.         Me.ImmaginiSet7ToolStrip.Checked = False
  1151.         Me.ImmaginiSet8ToolStrip.Checked = False
  1152.  
  1153.         Select Case TS
  1154.  
  1155.             Case = 1
  1156.                 Me.ImmaginiSet1ToolStrip.Checked = True
  1157.             Case = 2
  1158.                 Me.ImmaginiSet2ToolStrip.Checked = True
  1159.             Case = 3
  1160.                 Me.ImmaginiSet3ToolStrip.Checked = True
  1161.             Case = 4
  1162.                 Me.ImmaginiSet4ToolStrip.Checked = True
  1163.             Case = 5
  1164.                 Me.ImmaginiSet5ToolStrip.Checked = True
  1165.             Case = 6
  1166.                 Me.ImmaginiSet6ToolStrip.Checked = True
  1167.             Case = 7
  1168.                 Me.ImmaginiSet7ToolStrip.Checked = True
  1169.             Case = 8
  1170.                 Me.ImmaginiSet8ToolStrip.Checked = True
  1171.         End Select
  1172.  
  1173.     End Sub
  1174.  
  1175.     Private Sub VisualizzaTest()
  1176.         For i As Int32 = 0 To 12
  1177.             Mat4x4Pict_2040(i + 1).Image = ImageList1.Images(i)
  1178.         Next i
  1179.     End Sub
  1180.  
  1181.     Private Sub printmatrice(ByRef Matr2048 As Int32(,))
  1182.         ' mostra lo stato della matrice solo per debug
  1183.         For R = 1 To 4
  1184.             Debug.Print(Matr2048(R, 1).ToString & Matr2048(R, 2).ToString & Matr2048(R, 3).ToString & Matr2048(R, 4).ToString)
  1185.         Next
  1186.     End Sub
  1187.  
  1188.     Private Sub ImmaginiSet1ToolStrip_Click(sender As Object, e As EventArgs) Handles ImmaginiSet1ToolStrip.Click
  1189.  
  1190.         TipoGrafica = 1
  1191.         My.Settings.Immagini_Set = TipoGrafica
  1192.         My.Settings.Save()
  1193.         Call Crea_Simboli(TipoGrafica)
  1194.         For j = 1 To 16
  1195.             Mat4x4Pict_2040(j).BackColor = Color.Bisque
  1196.         Next
  1197.         Call Visualizza_Immagine_Celle2048(Matrice4x4)
  1198.         InMovimento = False
  1199.     End Sub
  1200.  
  1201.     Private Sub ImmaginiSet2ToolStrip_Click(sender As Object, e As EventArgs) Handles ImmaginiSet2ToolStrip.Click
  1202.  
  1203.         TipoGrafica = 2
  1204.         My.Settings.Immagini_Set = TipoGrafica
  1205.         My.Settings.Save()
  1206.         Call Crea_Simboli(TipoGrafica)
  1207.         For j = 1 To 16
  1208.             Mat4x4Pict_2040(j).BackColor = Color.DarkGray
  1209.         Next
  1210.         Call Visualizza_Immagine_Celle2048(Matrice4x4)
  1211.         InMovimento = False
  1212.     End Sub
  1213.  
  1214.     Private Sub ImmaginiSet3ToolStrip_Click(sender As Object, e As EventArgs) Handles ImmaginiSet3ToolStrip.Click
  1215.  
  1216.         TipoGrafica = 3
  1217.         My.Settings.Immagini_Set = TipoGrafica
  1218.         My.Settings.Save()
  1219.         Call Crea_Simboli(TipoGrafica)
  1220.         For j = 1 To 16
  1221.             Mat4x4Pict_2040(j).BackColor = Color.DarkKhaki
  1222.         Next
  1223.         Call Visualizza_Immagine_Celle2048(Matrice4x4)
  1224.         InMovimento = False
  1225.     End Sub
  1226.  
  1227.     Private Sub ImmaginiSet4ToolStrip_Click(sender As Object, e As EventArgs) Handles ImmaginiSet4ToolStrip.Click
  1228.  
  1229.         TipoGrafica = 4
  1230.         My.Settings.Immagini_Set = TipoGrafica
  1231.         My.Settings.Save()
  1232.         Call Crea_Simboli(TipoGrafica)
  1233.         For j = 1 To 16
  1234.             Mat4x4Pict_2040(j).BackColor = Color.DarkKhaki
  1235.         Next
  1236.         Call Visualizza_Immagine_Celle2048(Matrice4x4)
  1237.         InMovimento = False
  1238.     End Sub
  1239.  
  1240.     Private Sub ImmaginiSet5ToolStrip_Click(sender As Object, e As EventArgs) Handles ImmaginiSet5ToolStrip.Click
  1241.  
  1242.         TipoGrafica = 5
  1243.         My.Settings.Immagini_Set = TipoGrafica
  1244.         My.Settings.Save()
  1245.         Call Crea_Simboli(TipoGrafica)
  1246.         For j = 1 To 16
  1247.             Mat4x4Pict_2040(j).BackColor = Color.Brown
  1248.         Next
  1249.         Call Visualizza_Immagine_Celle2048(Matrice4x4)
  1250.         InMovimento = False
  1251.     End Sub
  1252.  
  1253.     Private Sub ImmaginiSet6ToolStrip_Click(sender As Object, e As EventArgs) Handles ImmaginiSet6ToolStrip.Click
  1254.  
  1255.         TipoGrafica = 6
  1256.         My.Settings.Immagini_Set = TipoGrafica
  1257.         My.Settings.Save()
  1258.         Call Crea_Simboli(TipoGrafica)
  1259.         For j = 1 To 16
  1260.             Mat4x4Pict_2040(j).BackColor = Color.DarkGreen
  1261.         Next
  1262.         Call Visualizza_Immagine_Celle2048(Matrice4x4)
  1263.         InMovimento = False
  1264.     End Sub
  1265.  
  1266.     Private Sub ImmaginiSet7ToolStrip_Click(sender As Object, e As EventArgs) Handles ImmaginiSet7ToolStrip.Click
  1267.  
  1268.         TipoGrafica = 7
  1269.         My.Settings.Immagini_Set = TipoGrafica
  1270.         My.Settings.Save()
  1271.         Call Crea_Simboli(TipoGrafica)
  1272.         For j = 1 To 16
  1273.             Mat4x4Pict_2040(j).BackColor = Color.Navy
  1274.         Next
  1275.         Call Visualizza_Immagine_Celle2048(Matrice4x4)
  1276.         InMovimento = False
  1277.     End Sub
  1278.  
  1279.     Private Sub ImmaginiSet8ToolStrip_Click(sender As Object, e As EventArgs) Handles ImmaginiSet8ToolStrip.Click
  1280.  
  1281.         TipoGrafica = 8
  1282.         My.Settings.Immagini_Set = TipoGrafica
  1283.         My.Settings.Save()
  1284.         Call Crea_Simboli(TipoGrafica)
  1285.         For j = 1 To 16
  1286.             Mat4x4Pict_2040(j).BackColor = Color.Navy
  1287.         Next
  1288.         Call Visualizza_Immagine_Celle2048(Matrice4x4)
  1289.         InMovimento = False
  1290.     End Sub
  1291.  
  1292.     Private Sub Animazione1ToolStrip_Click(sender As Object, e As EventArgs) Handles Animazione1ToolStrip.Click
  1293.         Me.Animazione1ToolStrip.Checked = True
  1294.         Me.Animazione2ToolStrip.Checked = False
  1295.         Me.Animazione3ToolStrip.Checked = False
  1296.         My.Settings.Animazione_1 = True
  1297.         My.Settings.Animazione_2 = False
  1298.         My.Settings.Animazione_3 = False
  1299.     End Sub
  1300.  
  1301.     Private Sub Animazione2ToolStrip_Click(sender As Object, e As EventArgs) Handles Animazione2ToolStrip.Click
  1302.         Me.Animazione2ToolStrip.Checked = True
  1303.         Me.Animazione1ToolStrip.Checked = False
  1304.         Me.Animazione3ToolStrip.Checked = False
  1305.         My.Settings.Animazione_2 = True
  1306.         My.Settings.Animazione_1 = False
  1307.         My.Settings.Animazione_3 = False
  1308.     End Sub
  1309.  
  1310.     Private Sub Animazione3ToolStrip_Click(sender As Object, e As EventArgs) Handles Animazione3ToolStrip.Click
  1311.         Me.Animazione3ToolStrip.Checked = True
  1312.         Me.Animazione1ToolStrip.Checked = False
  1313.         Me.Animazione2ToolStrip.Checked = False
  1314.         My.Settings.Animazione_3 = True
  1315.         My.Settings.Animazione_1 = False
  1316.         My.Settings.Animazione_2 = False
  1317.     End Sub
  1318.  
  1319.     Private Sub Poligono_Regolare(ByVal GR As Graphics, ByVal Solido As Brush, ByVal MisurLato As Single, ByVal NumLati As Single, ByVal XCentro As Single, ByVal YCentro As Single, ByVal GradiRotaz As Single)
  1320.  
  1321.         'Trasforma i GradiRotaz in Radianti
  1322.         Dim RadiantiRotaz As Single = GradiRotaz * Math.PI / 180
  1323.  
  1324.         'Archi del cerchio(IN RADIANTI)entro il quale s'immagina inscritto il poligono,
  1325.         'occupati dal punto ZERO (minima coordinata Y dell'area di disegno)all'estremo
  1326.         'finale di ogni lato. Non serve l'estremo dell'ultimo lato, perchè è uguale al  
  1327.         'punto ZERO.
  1328.         Dim ARCHI As Single = 360 * Math.PI / 180 / NumLati
  1329.  
  1330.         'Dichiara una Matrice con numero elementi pari a NumLati per contenere
  1331.         'l'arco complessivo(in RADIANTI)occupato dal punto più alto del cerchio
  1332.         '(zero radianti)ai punti successivi (estremi dei lati).
  1333.         Dim Arc(NumLati) As Single
  1334.  
  1335.         'Carica la matrice con gli archi complessivi (in radianti) dei suddetti punti
  1336.         For k As Short = 0 To NumLati
  1337.             Arc(k) = ARCHI * k
  1338.         Next
  1339.  
  1340.         '  1)Calcolo del Numero Fisso (serve solo il numero dei lati: NumLati)
  1341.         Dim NFisso As Single = 0.5 / Math.Tan(Math.PI / NumLati)
  1342.  
  1343.         '  2)Calcolo Apotema (servono Numero Fisso e Misura del Lato)
  1344.         Dim Apotema As Single = NFisso * MisurLato
  1345.  
  1346.         '  3)Calcolo Raggio del cerchio in cui il poligono si immagina iscritto (è
  1347.         '  anche il raggio del poligono)
  1348.         Dim Raggio As Single = Math.Sqrt(Apotema ^ 2 + (MisurLato / 2) ^ 2)
  1349.  
  1350.         'Dichiara una Matrice con numero elementi pari a NumLati per contenere le
  1351.         'coordinate X di ogni punto
  1352.         Dim XPunto(NumLati) As Single
  1353.  
  1354.         'Dichiara una Matrice con numero elementi pari a NumLati per contenere le
  1355.         'coordinate Y di ogni punto
  1356.         Dim YPunto(NumLati) As Single
  1357.  
  1358.         'Carica le 2 matrici suddette con le relative coordinate X ed Y
  1359.         For k As Short = 0 To NumLati - 1
  1360.             XPunto(k) = XCentro + Raggio * Math.Sin(Arc(k) + RadiantiRotaz)
  1361.             YPunto(k) = YCentro - Raggio * Math.Cos(Arc(k) + RadiantiRotaz)
  1362.         Next
  1363.  
  1364.         'Definisce un'istanza della Classe GraphicsPath, atta a contenere un
  1365.         ' "insieme" di disegni
  1366.         Dim pa As New GraphicsPath
  1367.  
  1368.         ' Crea un Path(=Percorso) con tutte le linee CONSECUTIVE che costituiscono
  1369.         ' i Lati di un poligono tranne l'ultima, che è aggiunta poi tramite
  1370.         ' "CloseFigure()"
  1371.         For k As Short = 0 To NumLati - 2
  1372.             pa.AddLine(XPunto(k), YPunto(k), XPunto(k + 1), YPunto(k + 1))
  1373.         Next (k)
  1374.  
  1375.         'La seg. istruzione chiude il poligono, creando automaticamente l'ultimo lato
  1376.         pa.CloseFigure()
  1377.  
  1378.         'DISEGNA IL POLIGONO REGOLARE (che corrisponde al path appena costruito)
  1379.         GR.FillPath(Solido, pa)
  1380.  
  1381.     End Sub
  1382.  
  1383.     Private Sub VediSetimmaginiToolStrip_Click(sender As Object, e As EventArgs) Handles VediSetimmaginiToolStrip.Click
  1384.         Call VisualizzaTest()
  1385.     End Sub
  1386.  
  1387.     Private Sub AnimazioneOnoffToolStrip_Click(sender As Object, e As EventArgs) Handles AnimazioneOnoffToolStrip.Click
  1388.         If Animazione_On Then
  1389.             Animazione_On = False
  1390.         Else
  1391.             Animazione_On = True
  1392.         End If
  1393.     End Sub
  1394.  
  1395.     Private Sub AudioOnOffToolStrip_Click(sender As Object, e As EventArgs) Handles AudioOnOffToolStrip.Click
  1396.         If Audio_On Then
  1397.             Audio_On = False
  1398.         Else
  1399.             Audio_On = True
  1400.         End If
  1401.     End Sub
  1402.  
  1403. End Class
  1404.  
  1405.  
  1406. Modificato :k:


Ultima modifica effettuata da Ultimo il 03/06/2018 alle 11:57


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 16:44
Sabato, 02/06/2018
vorrei propèorre una cosetta che qui si vede raramente...

Ma una piccola guida? il gioco non è complicato o con tante opzioni, ma visto pure l'introduzione delle scorciatorie da tastiera..(guida del gioco, no documentazione tecnica del sorgente, che potrebbe anche farsi visto che siamo in un sito di programmazione XD )

ad esempio, qualcuno di voi usa il Latex?

PM Quote
Avatar
Ultimo (Member)
Guru


Messaggi: 877
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 18:17
Sabato, 02/06/2018
Testo quotato

Postato originariamente da Mikelius:

vorrei propèorre una cosetta che qui si vede raramente...

Ma una piccola guida? il gioco non è complicato o con tante opzioni, ma visto pure l'introduzione delle scorciatorie da tastiera..(guida del gioco, no documentazione tecnica del sorgente, che potrebbe anche farsi visto che siamo in un sito di programmazione XD )

ad esempio, qualcuno di voi usa il Latex?




Idee?


no il Latex mai usato :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 20:24
Sabato, 02/06/2018
Testo quotato

Postato originariamente da Ultimo:
Idee?



Puoi passarmi in uno zip tutte le imagini usate? provo a fare qualcosa

PM Quote
Avatar
Ultimo (Member)
Guru


Messaggi: 877
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 21:49
Sabato, 02/06/2018
Testo quotato

Postato originariamente da Mikelius:

Testo quotato

Postato originariamente da Ultimo:
Idee?



Puoi passarmi in uno zip tutte le imagini usate? provo a fare qualcosa



la maggior parte delle immagini sono disegnate direttamente con il  System.Drawing

solo le immagini del mahjong ti posso dare




If ok Then GOTO Avanza else GOTO Inizia

PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1316
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 1:50
Domenica, 03/06/2018
Testo quotato

Postato originariamente da Mikelius:
Puoi passarmi in uno zip tutte le imagini usate? provo a fare qualcosa


Attenzione i nomi sono di fantasia, devono essere confermati da Ultimo.
Su alfabeto, ho inserito la lettera K dopo la J


Carlo ha allegato un file: Immagini.zip (809824 bytes)
Clicca qui per scaricare il file

Ultima modifica effettuata da Carlo il 03/06/2018 alle 1:59


in programmazione tutto è permesso
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