Nicole Kristen Uy

Logo

Friendly and Intuitive Software Developer who learns quickly and specializes in application, web, and game development.

I have experience in the following programming languages: • C# • Java • C++ • JavaScript • SQL • HTML • CSS3 • PHP • JQuery

View My LinkedIn Profile

View My GitHub Profile

Unity-as-a-production-line-simulator

A project I made in 2 weeks using Unity to create a simulation of a production line for doors and windows

Motivation

This was created as a coding test for an interview. I incredibly enjoyed creating this project because I had to learn how to create and manage threads. I was also curious if I would be able to create this project on Unity because it isn’t very thread friendly and is not necessarily designed for how I envisioned the project.

Build status

Build Status

Preview

Screenshots

screenshot 1

Tech/framework used

Built with

Features

Multi-threaded application

Door measurements are randomly generated to simulate orders

Calculates height and width of the window using door measurements. Windows are calculated differently depending on 3 different window types.

Constantly calculates the average measurements of finished doors and windows after each new addition

The speed of the lasers and products can be changed during runtime

Generates a report in a .txt file that lists each product information as well as the final averages of the measurements

Code Sample

Method to calculate window measurements using given door measurements

/// <summary>
    /// Gets all doors and matches each door with their corresponding window using their IdNumber
    /// The measurements are then calculated by:
    ///     *Getting the height and width of the door
    ///     *Subtracting the difference to create a gap
    ///     *Do calcuations depending on the selected window type
    /// </summary>
    public void calculateWindowMeasurements()
    {

        foreach (Door door in allDoors)
        {

            foreach (Window window in allWindows)
            {

                if (door.getIdNum() == window.getIdNum())
                {
                    if (door.getSelectedWindowType().Equals("Full"))
                    {
                        //calculates height of a full window by subtracting the height of door from the gaps 
                        //multiplied by 2 to account for both top and bottom gaps
                        windowHeight = door.getDoorHeight() - (heightDifference * 2);

                        //calculates width of a full window by subtracting the width of door from the gaps 
                        //multiplied by 2 to account for gaps on both sides
                        windowWidth = door.getDoorWidth() - (widthDifference * 2);

                        //set the window measurements
                        window.setWindowHeight(windowHeight);
                        window.setWindowWidth(windowWidth);

                    }
                    else if (door.getSelectedWindowType().Equals("Half"))
                    {
                        //calculates height of a half window by dividing the height of door by 2 and subtracting the gap
                        windowHeight = (door.getDoorHeight() / 2) - heightDifference;

                        //calculates width of a full window by subtracting the width of door from the gaps 
                        //multiplied by 2 to account for gaps on both sides
                        windowWidth = door.getDoorWidth() - (widthDifference * 2);

                        //set the window measurements
                        window.setWindowHeight(windowHeight);
                        window.setWindowWidth(windowWidth);

                    }
                    else if (door.getSelectedWindowType().Equals("Quarter"))
                    {
                        //calculates height of a quarter window by dividing the height of door by 4 and subtracting the gap
                        windowHeight = (door.getDoorHeight() / 4) - heightDifference;

                        //calculates width of a full window by subtracting the width of door from the gaps 
                        //multiplied by 2 to account for gaps on both sides
                        windowWidth = door.getDoorWidth() - (widthDifference * 2);

                        //set the window measurements
                        window.setWindowHeight(windowHeight);
                        window.setWindowWidth(windowWidth);
                    }
                    else
                    {

                    }

                    //print(window.getId() + "\nHeight:" + window.getWindowHeight() + "\nWidth:" + window.getWindowWidth() + "\nWindow Type:" + door.getSelectedWindowType());
                }
                else
                {

                }
            }
        }

        computationWindowDone = true;
    }

Projects

  1. 50’s Diner Themed Website
  2. Tiny Planet Defender
  3. School Manager Android Application
  4. Inventory Manager Java Application
  5. Appointment Manager Java Application
  6. Unity as a Production Line Simulator

Copyright 2019 © niknik27