sticky
Nominate games (or other programs) here to get featured on our Blog! (PART 3)

    General discussion

  • Continued from https://social.msdn.microsoft.com/Forums/en-US/51adebb3-ed34-49be-8cc1-98c98063ef72/nominate-games-or-other-programs-here-to-get-featured-on-our-blog-part-2?forum=smallbasic

     

    Got a game you made that you want us to review for being featured on the blog? Maybe someone else's game that you think is great?

    The Small Basic blog: http://blogs.msdn.com/b/smallbasic/

    Post the game/program in this thread to nominate them!

    Please include the following information:

    1. Name of the game/program. Try to come up with something cool and that differentiates it. Instead of "Maze Game", call it "Smily Face Maze" or "Turtle Maze". For example, rather than "Tank Game", the TeamChallenge teams came up with "Tankinator" and "Tank Rampage". I might help you come up with a more interesting/different name if yours seems to generic.
    2. Link to the program listinghttp://smallbasic.com/smallbasic.com/program/ - What's your listing code? Include the full link to get us there faster.
    3. Link to the download page. If your game/program runs better locally, then zip the files/folders together and upload it to the TechNet Gallery. Include the link to your gallery page. We've got a"Small Basic" tag going in the gallery. Here's the TechNet Gallery: http://gallery.technet.microsoft.com/
    4. Name and Link to the creator's Profile Page. If it was you, then just include your name. Your profile link is attached to your post anyway. But if someone else wrote it, please link to their profile. If multiple people made the game/program, please include a profile link for each person and explain what they did (if you know).

     

    Small Basic community folks (like Small Basic Blog contributors) will evaluate the programs to select the ones to feature on the blog. If we don't select yours, we can explain why (if you want) and give you steps to make your program "better" (more fun/unique/etc.).

    Thanks!


    Nonki Takahashi

    Wednesday, June 24, 2015 2:12 AM
    Moderator

All replies

  •      Hello. I just started learning how to program this year and found out about Small Basic. I made a game called Batting Practice (WGD247). It is my first program with the Graphics window. There are cheat codes, but you have to read the code for those.

    • Edited by Cody_M Monday, August 24, 2015 12:36 AM
    Tuesday, August 18, 2015 7:49 PM
  •      Hello. I just started learning how to program this year and found out about Small Basic. I made a game called Batting Practice (WGD247). It is my first program with the Graphics window. There are cheat codes, but you have to read the code for those.

    Cody, Nonki featured your game here:

    Batting Practice - Small Basic Featured Program

    Thanks!

    Oh, and I'm making this forum thread sticky so people know how to get their games featured on the blog.


    Ed Price, Azure & Power BI Customer Program Manager (Blog, Small Basic, Wiki Ninjas, Wiki)

    Answer an interesting question? Create a wiki article about it!

    Thursday, August 27, 2015 12:48 AM
    Owner
  • Hello, last week I published two games on TechNet gallery:

    Small Block Builder (https://gallery.technet.microsoft.com/Small-Block-Builder-6bdb1c87) is a Minecraft-like block building game.

    Triple Six! (https://gallery.technet.microsoft.com/Triple-Six-Simple-Dice-8cecf0b8) is a simple dice game.

    I'm using Small Basic for a few month already but these are the first two programs I published.

    Monday, October 26, 2015 7:31 PM
  • Hi Bluegrams. Nice games.

    Here's the blog: Featured Games: Small Block Builder & Triple Six!

    Tuesday, October 27, 2015 8:55 PM
    Moderator
  • Hi Bluegrams. Nice games.

    Here's the blog: Featured Games: Small Block Builder & Triple Six!


    Thank you very much!!
    Thursday, October 29, 2015 7:27 AM
  • Hi,

    This week I published a Shapes tool in TechNet Gallery.

    Thread - https://social.msdn.microsoft.com/Forums/en-US/1f8d92af-9f6b-4085-a9a9-766c1c6b0085/tool-for-drawing-objects?forum=smallbasic

    Link to download - https://gallery.technet.microsoft.com/Small-Basic-GUI-v01-54b167b3

    About the tool

    GUI in Small Basic is a Graphics editor used to draw basic objects like Ellipse,Rectandle,Controls etc.
    It has the small basic code generation feature that can convert the objects you draw to small basic. This project is my learning
    project to learn about the controls development using Small Basic.

    The zip includes:
    SmallBasicLibrary.dll - Small Basic Library
    GUI.exe - Application
    GUI.sb - source code
    GUI.pdb

    Thanks,


    Roshan - 7th Grade Student (Age 11) - Learning Small Basic and Visual Basic





    Friday, December 1, 2017 2:56 AM
  • Hi Roshan, I wrote a blog about your tool.  Thanks.

    https://blogs.msdn.microsoft.com/smallbasic/2017/12/08/gui-designer-small-basic-featured-program/


    Nonki Takahashi

    Saturday, December 9, 2017 6:45 AM
    Moderator
  • Hi Roshan, I wrote a blog about your tool.  Thanks.

    https://blogs.msdn.microsoft.com/smallbasic/2017/12/08/gui-designer-small-basic-featured-program/


    Nonki Takahashi

    Hi,

    Thanks a lot

    Thanks,


    Roshan - 7th Grade Student (Age 11) - Learning Small Basic and Visual Basic

    Saturday, December 9, 2017 6:59 AM
  • Hello I'm french. I post here hoping not to be wrong.

    I created a program to help solve the SuDoKu Chaos.

    The link is an image preview

    https://nsa39.casimages.com/img/2018/04/26/18042612185847971.jpg

    For it to work, it will be necessary to change 3 repeatable line by £ £ £.

    https://nsa39.casimages.com/img/2018/04/26/180426123620586997.jpg

    After you can load the images if you want, just keep the original lines of code and change the file names

    the sharing code is

    http://smallbasic.com/program/?PTX661

    If you have questions or remarks take care to speak traditional and correct English to facilitate understanding with the translator, and also short sentences


    Wednesday, April 25, 2018 10:44 PM
  • Great the binary converter method of [Amir Rke].

    Converter [Amir Rke]

    By cons I do not understand why he does not use it in both directions

    I made a table to facilitate his understanding

    Method to convert to binary

    and personalized his code for my usefulness

    Cr = Text.GetCharacter(10)
    Txt = "0=Binary;1=Decimal"
    TextWindow.Title = "Binary to Decimal To Binary Converter [Amir Rke]"
    While 1 = 1
      TextWindow.ForegroundColor = "White"
      TextWindow.Write(Cr + "Enter Your Choice : [1 for Binary to Decimal] Or [2 for Decimal to Binary] ")
      Choice = TextWindow.ReadNumber() - 1
      TextWindow.Write("Convert " + Txt[Choice] + " To " + Txt[Math.Abs(Choice - 1)] + " ..." + Cr + "Enter " + Txt[Choice] + " Value : ")
      If Choice = 0 Then
        BinLine = TextWindow.ReadNumber()
        DecValue = 1
        For NbFois = Text.GetIndexOf(BinLine, "1") + 1 To Text.GetLength(BinLine)
          DecValue = DecValue * 2 + Text.GetSubText(BinLine,NbFois,1)
        EndFor
        TextWindow.ForegroundColor = "red"
        TextWindow.WriteLine("Decimal form : " + DecValue)
      ElseIf Choice = 1 Then
        DecValue = TextWindow.ReadNumber()
        BinLine = "!"
        While DecValue > 0
          BinLine =  Math.Remainder(DecValue,2) + BinLine
          DecValue = Math.Floor(DecValue / 2)
        EndWhile
        TextWindow.ForegroundColor = "Green"
        TextWindow.Writeline("Binary Form : " + text.GetSubText(BinLine, 1, Text.GetLength(BinLine) - 1))
      EndIf
    EndWhile

    Thursday, April 26, 2018 2:49 PM
  • Hi ErmiteUrbain, thank you for sharing your program.  I've started to translate your program to English for my understanding.  Please wait to post this to Small Basic Blog.  Thanks again.

    Nonki Takahashi

    Wednesday, May 9, 2018 2:00 AM
    Moderator
  • I rewrote your program as KNT157.  Comments after line 235 are not translated to English yet.

    This program uses a bitmap chk03E.bmp uploaded below.

    https://1drv.ms/f/s!AhJQNthxuVmbg7Vj11BVbNEJUoBG6A


    Nonki Takahashi


    Friday, May 11, 2018 3:20 PM
    Moderator
  • Hi ErmiteUrbain,

    I wrote a blog post about your program.  Thanks.


    Nonki Takahashi

    Saturday, May 12, 2018 3:44 AM
    Moderator
  • Great the binary converter method of [Amir Rke].

    Converter [Amir Rke]

    By cons I do not understand why he does not use it in both directions

    I made a table to facilitate his understanding

    Method to convert to binary

    and personalized his code for my usefulness

    Hi ErmiteUrbain, I wrote a blog about your table and program.  Thanks.

    Nonki Takahashi

    Friday, June 1, 2018 7:55 AM
    Moderator
  • Hello, I wanted to learn how to use OnKeyDown and OnMouseDown events in the GraphicsWindow so I wrote a simple matching game. You need to click when EITHER the colours match OR the symbols match. First to Five wins.

    I did publish the game, but it seems that FontSize doesn't work in the Silverlight player: PRP467

    ' Set up the graphics windows
    GraphicsWindow.BackgroundColor = "Gray"
    GraphicsWindow.Height = 600
    GraphicsWindow.Width = 600
    
    start:
    ' Set up the default font style
    GraphicsWindow.FontBold = "True"
    GraphicsWindow.FontName = "Courier New"
    GraphicsWindow.FontSize = 300
    GraphicsWindow.BrushColor = "Black"
    
    ' Enable the graphics window to respond to mouse and keyboard events.
    GraphicsWindow.MouseDown = OnMouseDown
    GraphicsWindow.KeyDown = OnKeyDown
    
    pause = 20
    win = "False"
    canclick = "True" 'flag to only allow clicks when a new pair appear
    p1score = 0
    p2score = 0
    targetscore = 5
    number1 = 0
    number2 = 0
    number3 = 0
    number4 = 0
    colours = "1=DeepPink;2=Yellow;3=YellowGreen;4=Blue;5=White;6=Black"
    symbols = "1=#;2=$;3=!;4=?;5=@;6=%"
    
    ' Display the Game Start Screen
    GraphicsWindow.BrushColor = "Black"
    GraphicsWindow.FillRectangle(30,150,540,300)
    GraphicsWindow.FontSize = 50
    GraphicsWindow.BrushColor = "White"
    GraphicsWindow.DrawText(100,200,"Match colours")
    GraphicsWindow.DrawText(100,250,"or symbols.")
    GraphicsWindow.FontSize = 35
    GraphicsWindow.DrawText(100,320, "First to " + targetscore + " wins.")
    GraphicsWindow.FontSize = 20
    GraphicsWindow.DrawText(100,400, "Press space to play")
    p1clicked = "False"
    While ("True")
      If p1clicked = "True" Then
        Goto beginround
      EndIf
    EndWhile
    
    beginround:
    ' Set up the default font size and colour (for the big numbers)
    GraphicsWindow.FontSize = 300
    GraphicsWindow.BrushColor = "Black"
    
    While (win = "False")
      GraphicsWindow.Clear() '  Clear the screen to remove the old numbers
      GraphicsWindow.BackgroundColor = "Gray" ' Return the background to grey
      p1clicked = "False"
      p2clicked = "False"
      canclick = "True"
      number1 = Math.GetRandomNumber(6)
      number2 = Math.GetRandomNumber(6)
      GraphicsWindow.BrushColor = colours[number1]
      GraphicsWindow.DrawText(75,125, symbols[number2])
      number3 = Math.GetRandomNumber(6)
      number4 = Math.GetRandomNumber(6)
      GraphicsWindow.BrushColor = colours[number3]
      GraphicsWindow.DrawText(325,125, symbols[number4])
      Updatep1Score()
      Updatep2Score()
      For i = 1 To 50 ' 50 * 20ms = 1 second delay between number pairs
        Program.Delay(pause)
        If canclick = "True" And p1clicked = "True" And (number1 = number3 Or number2 = number4) Then
          GraphicsWindow.BackgroundColor = "Green"
          p1score = p1score + 1
          Updatep1Score()
          canclick = "False"
        ElseIf canclick = "True" And p2clicked = "True" And (number1 = number3 Or number2 = number4) Then
          GraphicsWindow.BackgroundColor = "Green"
          p2score = p2score + 1
          Updatep2Score()
          canclick = "False"
        ElseIf canclick = "True" And p1clicked = "True" Then
          GraphicsWindow.BackgroundColor = "Red"
          p1score = p1score - 1
          If p1score < 0 Then
            p1score = 0
          EndIf
          Updatep1Score()
          canclick = "False"
        ElseIf canclick = "True" And p2clicked = "True" Then
          GraphicsWindow.BackgroundColor = "Red"
          p2score = p2score - 1
          If p2score < 0 Then
            p2score = 0
          EndIf
          Updatep2Score()
          canclick = "False"
        EndIf
      EndFor
      If p1score = targetscore Or p2score = targetscore Then
        win = "True"
      EndIf
    EndWHile
    
    ' Display the Game Over Screen
    GraphicsWindow.BrushColor = "Black"
    GraphicsWindow.FillRectangle(30,150,540,300)
    GraphicsWindow.FontSize = 50
    GraphicsWindow.BrushColor = "White"
    GraphicsWindow.DrawText(100,200,"Game Over")
    GraphicsWindow.BrushColor = "Yellow"
    if p1score > p2score Then
      GraphicsWindow.DrawText(100,250,"Player 1 Wins!")
    Else
      GraphicsWindow.DrawText(100,250,"Player 2 Wins!")
    Endif
    GraphicsWindow.BrushColor = "White"
    GraphicsWindow.FontSize = 20
    GraphicsWindow.DrawText(100,400, "Press space to play again")
    p1clicked = "False"
    While ("True")
      If p1clicked = "True" Then
        Goto start
      EndIf
    EndWhile
      
        
    Sub OnKeyDown
      if GraphicsWindow.LastKey = "Space" Then
        p1clicked = "True"
      EndIf
    EndSub
    
    Sub OnMouseDown
      p2clicked = "True"
    EndSub
    
    Sub Updatep1Score
      GraphicsWindow.BrushColor = "Black"
      GraphicsWindow.FillRectangle(10,10,80,50)
      GraphicsWindow.FontSize = 50
      GraphicsWindow.BrushColor = "White"
      GraphicsWindow.DrawText(20,10, p1score)
      GraphicsWindow.BrushColor = "Black"
      GraphicsWindow.FontSize = 18
      GraphicsWindow.DrawText(12, 62, "P1 Press Space")
      GraphicsWindow.FontSize = 300
    EndSub
    
    Sub Updatep2Score
      GraphicsWindow.BrushColor = "Black"
      GraphicsWindow.FillRectangle(510,10,80,50)
      GraphicsWindow.FontSize = 50
      GraphicsWindow.BrushColor = "White"
      GraphicsWindow.DrawText(520,10, p2score)
      GraphicsWindow.BrushColor = "Black"
      GraphicsWindow.FontSize = 18
      GraphicsWindow.DrawText(435, 62, "P2 Click Mouse")
      GraphicsWindow.FontSize = 300
    EndSub
    Friday, June 1, 2018 2:14 PM
  • Hello, I wanted to learn how to use OnKeyDown and OnMouseDown events in the GraphicsWindow so I wrote a simple matching game. You need to click when EITHER the colours match OR the symbols match. First to Five wins.

    I did publish the game, but it seems that FontSize doesn't work in the Silverlight player: PRP467

    Thanks Glenn.  I wrote a blog about your program.

    Nonki Takahashi

    Friday, June 8, 2018 11:59 AM
    Moderator
  • Hi I am Simakov Misha. I make my own game Click the button DSX769
    Wednesday, July 11, 2018 6:39 PM
  • Hi I am Simakov Misha. I make my own game Click the button DSX769

    Hi Simakov, I wrote a blog post about the game.  Thanks.

    Nonki Takahashi

    Friday, July 13, 2018 6:26 AM
    Moderator
  • Exospheric Freight Service   (A Space Simulation Game)

    http://smallbasic.com/smallbasic.com/program/?QTN895

    I tried to upload the game with all it’s assets to TechNet Gallery but as I am a new user there I do not have enough creds to submit any content.

    https://social.msdn.microsoft.com/profile/cvmarus/

    EXFS is a 3D space simulation that places you as the pilot driver of a loader vehicle. You must move shipping containers from a storage unit to a transport vehicle. The latest LD extension is required. Graphic Images are downloaded from my gallery at imgbox.com when the program starts as well as noaa.gov.

    Let me know what you think of the game. But most of all have fun!

    Wednesday, October 10, 2018 8:05 PM
  • Exospheric Freight Service   (A Space Simulation Game)

    http://smallbasic.com/smallbasic.com/program/?QTN895

    I tried to upload the game with all it’s assets to TechNet Gallery but as I am a new user there I do not have enough creds to submit any content.

    https://social.msdn.microsoft.com/profile/cvmarus/

    EXFS is a 3D space simulation that places you as the pilot driver of a loader vehicle. You must move shipping containers from a storage unit to a transport vehicle. The latest LD extension is required. Graphic Images are downloaded from my gallery at imgbox.com when the program starts as well as noaa.gov.

    Let me know what you think of the game. But most of all have fun!

    Hi cvmarus, thank you for sharing nice 3D game!  I will write about this game in the next blog post.

    Nonki Takahashi

    Wednesday, November 7, 2018 8:54 AM
    Moderator
  • Hi Nonki, Thanks for your comments. I look forward to your next blog post.

    See below, an updated zip file version of the game.

    Exospheric Freight Service   (A Space Simulation Game)

    The  Original small basic code QTN895 (With web assets)

    EXFS  Zip file updated with bug fixes, save game feature (suggested by litdev), and local assets.

    Download and save the zip somewhere
    Unblock the downloaded zip file (this allows the unzipped exe and dlls to be used): Locate the downloaded zip in File Explorer, then right click -> Properties -> General -> Unblock
    Unzip the contents of the zip somewhere, maybe an empty folder in Documents
    Run exfs.exe

    EXFS is a 3D space simulation that places you as the pilot driver of a loader vehicle. You must move shipping containers from a storage unit to a transport vehicle. The latest LD extension is required. Graphic Images in the Zip version are local assets.

    cvmarus

    Thursday, November 8, 2018 8:52 PM
  • Friday, November 9, 2018 10:03 AM
    Moderator
  • Bonjour

    Débutant en smallbasic ,j'ai écrit un programme feux tricolores publié sous le n° TWM801 créant un carrefour et des feux tricolores qui fonctionnent en continu

    http:smallbasic.com/program/?TWM801

    merci de vos conseils portant sur une amélioration éventuelle

    peut être que j'essaierai par la suite d'introduire dans le fonctionnement les détecteurs de présence pour modifier en fonction le fonctionnement des feux

    JC Michel

    Monday, November 26, 2018 9:22 AM
  • Hi JC,

    Nice program.

    You don't actually need all the Timers, since simple Program.Delay will work fine - modified with this - TWM801-0.

    Can anyone simplify it more?

    Monday, November 26, 2018 6:37 PM
    Moderator
  • Merci des encouragements et de la modification formulée

    J'essaierai de poursuivre à partir de TWM801-0 pour introduire les détecteurs de présence dans le fonctionnement

    Mon idée pour cela est d'affecter à chaque détecteur une variable à 0 et de la faire passer à 1 pour modifier le fonctionnement

    Mais il y a une autre histoire, il va falloir créer dans la zone graphique une zone de saisie ou l'on peut faire varier la valeur des variables

    Ce dernier point me gène pas mal


    Tuesday, November 27, 2018 9:11 AM
  • Hi JC,

    how about to use Controls object for input?

    https://social.technet.microsoft.com/wiki/contents/articles/25278.small-basic-controls.aspx


    Nonki Takahashi

    Saturday, December 8, 2018 7:53 AM
    Moderator
  • Bonjour

    Je n'ai pas repris mon programme depuis quelques jours pour résoudre les problèmes familiaux. Lorsque je recommence à utiliser les fonctions d'événement avec appui sur un bouton déclenchant le fonctionnement. Peut-être que les fonctions de contrôle que vous proposez rapidement aussi. Orange clignotants qui me posaient de gros problèmes au début mais maintenant que j'ai écrit le programme général je pense avoir les solutions avec délai ou les timers

    merci des conseils

    Bonjour

    J'ai repris mon programme, lorsqu'on l'exécute il fonctionne bien en orange clignotant  et affiche, une boîte de dialogue pour choisir un mode de fonctionnement. 1 en fonctionnement auto (le programme initial) 2 un fonctionnement à partir d'action sur les détecteurs de présence partie appelée en routine que je n'ai pas encore écrite car le reste ne fonctionne pas

    parfois le test ne fonctionne pas et m'affiche erreur de saisie sur une saisie correcte

    parfois sur le choix 1 fonctionnement auto dans le programme bloque et semble perdu.

    Je pense que j'ai besoin d'aide pour aller plus loin car j'ai passé des heures et des résultats sans résultats. Je crois que je maîtrise les fonctions de contrôle et que mon programme se bloque et se perd entre les étapes initiales, initiales et finales. Voila je suis perdu et je n'avance plus 

    Autre souci comment faire évoluer un indice de programme après modification . Je pensais qu'on le faisait en publiant mais ça m'a généré un nouveau n° CPD214 alors que j'aurais voulu TWM801-1 au lieu de TWM801-0

    • Edited by JC Michel Sunday, December 23, 2018 6:06 PM
    Saturday, December 8, 2018 8:24 AM
  • Bonjour

    J'ai repris mon programme, lorsqu'on l'exécute il fonctionne bien en orange clignotant et affiche, une boîte de dialogue pour choisir un mode de fonctionnement. 1 en fonctionnement auto (programme initial) 2 en fonctionnement à partir de détecteurs de présence (partie non encore ecrite car le reste ne fonctionne pas)

    parfois le test ne fonctionne pas et m'affiche erreur de saisie  sur un saisie correcte surtout depuis que j'utilise un buffer avant j'utilisais une variable x et il me semble que ça allait mieux

    sur le choix 1 fonctionnement automatique on va bien dans le programme initial utilisé ici en routine maisle programme bloque et semble perdu.

    Je pense que j'ai besoin d'aide pour aller plus loin car j'ai passé des heures et des heurs sans résultats. Je crois que je maîtrise mal les fonctions "Controls" et mon programme se bloque et se perd entre les "goto begin", "goto begin1"  et "endsub". Voila je suis perdu et je n'avance plus 

    Autre souci comment faire évoluer un indice de programme après modification. Je pense que nous faisions cela en publication mais non je génère un nouveau numéro CPD214 alors que j'aurais voulu TWM801-1 au lieu de TWM801-0

    Monday, December 24, 2018 8:01 AM
  • General suggestions.

    1] Place all subroutines after the main code.  The subroutines are called when required and placing them in the body of the main code makes it hard to read and debug.

    2] Try to not use GoTo at all.  There is almost always a better way.

    These may sound trivial, but they will help to get you thinking clearly about program structure which is critical to writing software.

    Also, I would suggest taking the time to go through the Small Basic curriculum to understand fully and get practice with the main constructs, loops, arrays, subroutines, events etc.

    P.S. don't worry about publish code names - you have no control over them.

    Monday, December 24, 2018 10:27 AM
    Moderator
  • I made a change to your program by replacing the input textbox by
    two buttons. They call the Sub OnButton.
    The Sub OnTextTyped can than be deleted, and your problem with the buffer is avoided.

    'création d'une boite de dialogue
    GraphicsWindow.DrawText(300,310 "choix de fonctionement auto ou détection présence.")
    butt1=Controls.AddButton("            auto             ",350,350)
    butt2=Controls.AddButton("detection présence",350,380)
    Controls.ButtonClicked=OnButton
    
    Sub OnButton
      butt=Controls.LastClickedButton
      If butt=butt1 Then
        drawauto()
      EndIf
      If butt=butt2  Then
        drawprésence()
      EndIf
    EndSub

    ADDITION:

    When you go into automatic in the Sub drawauto, you have to switch off the loop from begin1 to goto Begin1. You can do that with while loop when a blinking flag is set and a reset of that flag in "Drawauto"


    Jan [ WhTurner ] The Netherlands




    Monday, December 24, 2018 1:20 PM
    Answerer
  • Further testing of your program shows erratic behavoir due to the fact that the GraphicsWindow is not always updated while the program calls the GW from inside a Subroutine.

    I put the contents of the drawauto Sub to the main program in an endless loop and then the program works as expacted! So in the main part:

    while blinking=1 

    ---

    endwhile

    while auto=1 

    -----

    endwhile

    On clicking the "Auto" button set blinking=0 and auto=1


    Jan [ WhTurner ] The Netherlands


    Monday, December 24, 2018 3:12 PM
    Answerer
  • converted to shapes ur nice game KHC424

    • ld xtension required
    • added timer
    • added shadows

    Saturday, December 29, 2018 4:00 AM