Giter VIP home page Giter VIP logo

tic--tac--toe's Introduction

TiC#-TaC#-Toe

A C# Windows Forms app to play Tic-Tac-Toe.

Description

A small application to play tic-tac-toe against another player on the same device. Includes multiple colors and symbols to choose from.

Getting Started

Download from the exe branch and run the TiC#-TaC#-Toe.exe file.

Usage

On startup you can choose the names, symbols and colors of the two players playing.
๐Ÿ†• Checking the CPU checkbox turns that player into a computer opponent. When a CPU is enabled pressing the grey button that appeared will switch between 'Standard' and 'Impossible' modes. ๐Ÿ†•
Press confirm to start playing tic tac toe.

The screen on the right shows the two players and their score. The top player always begins. Click on an empty square to fill it with your symbol. The other player is now next to place their symbol.

Pressing the restart button will clear the board. Pressing restart when the board is empty will ask you to completely reset the game.

Whenever a player gets three in a row they win. Their score will be updated and you will be shown how many you have won in a row.

What I learned โœ๏ธ

My first C# project ๐ŸŒฑ

Coming off of a few python projects I decided to start learning C#. After figuring out the basics I decided to design and program a basic tic-tac-toe application as my first C# project.

Windows Forms ๐Ÿ“ฐ

After planning and designing it I learned quickly how easy it was to create an interface compared to how I previously did them in Python (with PyGame and KiVy). I felt like making a good looking interface is what cost me the most time in Python, so dragging premade Controls and using the built-in Properties & Events using Windows Forms felt fantastic.

A different syntax โœจ

Using semicolons is something I remember from a few years ago, but Python made me forget how much of a pain they can be. Luckily I got used to them pretty quickly, starting if statements with brackets however is still something I forget to do every time. ๐Ÿ˜ต

In terms of how the code/math works I felt comfortable using what I already know from Python. Nothing really different in terms of approach there. It's all just a bunch of if and foreach loops anyway.

The non-programming side ๐Ÿ™…โ€โ™‚๏ธ

The hardest part of any programming project for me is before and after the programming. Luckily I keep improving in this aspect as well. I've sped up my ability to churn out a functional design and action plan by a whole entire day! This README I feel like is also an improvement compared to my previous projects' attempts.

One more thing I tried to use this time is GitHub's Releases function. I'm not entirely certain that I'm using it right. Might be a good idea for the next time to combine the exe version with the full project version. Talking about executables, Visual Studio's ability to create .exe incredibely easy is great. No longer trying to get PyInstaller to work properly. ๐Ÿ™Œ

Author

Version History

2.0 Computer Opponent Release

License

This project is licensed under the MIT License - see the LICENSE.md file for details

tic--tac--toe's People

Contributors

mrwalttg1 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.