Giter Site home page Giter Site logo

Donald Calhoun's Projects

abstract-sorter icon abstract-sorter

In this project, you are asked to scan an input set of points in the plane in the order of their polar angles with respect to a reference point. This reference point, called the median coordinate point (MCP), has its x-coordinate equal to the median of the x-coordinates of the input points and its y-coordinate equal to the median of their y-coordinates. A polar angle with respect to this point lies in the range [0, 2π). Finding the median x- and y-coordinates is done by sorting the points separately by the corresponding coordinate.1 Once the MCP has been constructed, a third round of sorting will be conducted by the polar angle with respect to this point. You need to scan the input points four times, each time using one of the four sorting algorithms presented in class: selection sort, insertion sort, merge sort, and quicksort. Note that the same sorting algorithm must be used in all three rounds of sorting within one scan. We make the following two assumptions: • All input points have integer coordinates ranging between −50 and 50, inclusive. • The input points may have duplicates. Integer coordinates are assumed to avoid issues with floating-point arithmetic. The rectangular range [−50, 50] × [−50, 50] is big enough to contain 10,201 points with integer coordinates. Since the input points will be either generated as pseudo-random points or read from an input file, duplicates may appear. Also, it is unnecessary to test your code on more than 10,201 input points (otherwise duplicates will certainly arise).

c-space-path-planing-with-obstacles icon c-space-path-planing-with-obstacles

Consider a robot consisting of 2 links, A 1 and A 2 . Each link has width W and length L . The distance between the two points of attachment is D . A 2 is attached to A 1 while A 1 is attached to the origin. Each link is allowed to rotate about its point of attachment. The configuration of the robot is expressed with 2 angles ( θ 1 , θ 2 ). The first angle, θ 1 , represents the angle between the segment drawn between the two points of attachment of A 1 and the x -axis. The second angle, θ 2 , represents the angle between A 2 and A 1 ( θ 2 = 0 when they are parallel).

dorm-a-c icon dorm-a-c

Used 6 120mm fans and Arduino to create a thermostat to help control the temperature of my dorm room.

infixtopostfix-conversion icon infixtopostfix-conversion

In this project, you are asked to implement the following three utilities for integer expressions using stacks: • Postfix evaluation • Infix to postfix conversion • Infix evaluation The two types (infix and postfix) of expressions are implemented by the classes InfixExpression and PostfixExpression, which extend the abstract class Expression. You are only allowed to use the stack implementation provided in the files Purestack.java and ArrayBasedStack.java. You may add new instance variables and methods to the classes Expression, InfixExpression and PostfixExpression, but you may not rename or remove any existing ones, or change any of them from public to private or vice versa.

kinglandsystems-automation icon kinglandsystems-automation

A a basic web scraper using Jsoup to help automate the company classification process for my job at Kingland Systems. Still a work in progress so code is not complete, planning to update regularly as I get further along.

msgtree icon msgtree

Build a tree and then take input file to decipher a message

path-finding-using-rrt icon path-finding-using-rrt

The C-space and C-space obstacles Consider the C-space C = [ − 3 , 3] × [ − 1 , 1] and C-space obstacles shown in Figure 1. The C-space obstacles are defined by two half circles centered at (0 , − 1) and (0 , 1), respectively, both having radius 1 − dt , where dt = 0 . 02. (I suggest making dt a parameter in your code. We will consider a similar configuration but with a different value of dt in the next project.) Anything within the two half circles are considered obstacle regions. The initial configuration is q I = ( − 2 , − 0 . 5) and the goal configuration is q G = (2 , − 0 . 5)

paystation-for-parking icon paystation-for-parking

In this homework you will have the opportunity to create a system involving several interacting objects. In addition, you'll get some practice using conditional statements. The system consists of six classes: ExitGate.java RateUtil.java PayStation.java TimeClock.java ParkingCard.java CardDispenser.java You will be implementing four of the six classes: TimeClock and ParkingCard are already implemented for you and should not be modified. The system is a model of the payment system for the ISU Memorial Union parking garage. Here is the scenario: When you enter the garage, you take a parking card from a card dispenser. The card includes a magnetic stripe that can store a small amount of information. The dispenser sets the card with a timestamp based on its internal clock. When you are ready to leave the MU, you stop at a pay station and insert your card. The machine displays a payment amount that depends on how long you have been parked, based on the machine's internal clock and the timestamp recorded on the card. The amount due is calculated using a rate calculator that contains an algorithm based on current parking rates. You can observe the amount due when looking at the machine. You make the payment (e.g. with a credit card) and then eject the card from the machine. The card is now modified to have one more piece of information: a second timestamp indicating when you made the payment. You now have 15 minutes to get to your car and exit the garage. When you leave the garage, you insert the card into an exit gate. If the exit gate determines (using its internal clock) that it has been 15 minutes or less from the time you made payment, then the gate goes up and you exit the garage. Otherwise, you have to go back to the payment machine and pay some more. In describing the scenario, the primary nouns in the description (in bold) become the objects in our design, and the actions on those objects (in italics) become methods. The section below specifies the types and methods in detail.

pokemon icon pokemon

a Pokemon-inspired Roguelike game using ASCII graphics. Two ´ iconic modern examples of roguelike games are Angband and NetHack, and (most of) you are of an age that I won’t have to tell you about Pokemon. The figure shows a screen shot of a typical NetHack game. Your games will probably ´ not be nearly as extensive as these two examples—unless you want them to be!—but by the end of the semester, you will have developed a playable game with, at minimum, nice-looking, randomly-generated dungeon maps, items and monsters that are specified in files that your classmates’ games will be able to read and use, turn-based play with keyboard input and terminal output, and the ability to save and restore. Many people write such games in a week as a part of a contest, for fun; some of them are even pretty good.

prime-factorization icon prime-factorization

In this project we will use a brute force strategy named the direct search factorization. It is based on the observation that a number n, if composite, must have a prime factor less than or equal to √ n. Clearly, the number cannot have more than one prime factor greater than √ n. This method initializes m ← n and systematically tests divisors d from 2 up to b √ nc. 1 In your implementation, test the condition d · d ≤ n instead of d ≤ √ n for efficiency. If d divides m (i.e., is a factor of m), then set m ← m/d, and repeat this check with the divisor d until it no longer divides m. Then increment d to continue the testing until d · d > m. For example, to factorize 25480, we start by trying to divide the number by 2. Since 2 divides 25480, we record it and divide 25480 by 2 to obtain 12740. We find that the number 12740 can be divided by 2 two more times. The original number thus contains the prime factor 2 with multiplicity 3. Now we work on 25480 / 8 = 3185. The next number to test is 3, which does not divide 3185; neither does 4. The number 5 divides 3185 only one time, yielding the quotient 637. Moving on, 6 does not divide 637. We find that 7 divides 637 twice to yield 13. The algorithm terminates since 8 · 8 > 13. You can cut down the number of test candidates by half by ignoring all the even numbers greater than 2 (because they are apparently not prime).

pydubins icon pydubins

Python wrapper of the C version of the Dubins-Curves library

simpletaxcalculator icon simpletaxcalculator

A basic Tax Calculator which determines your tax bracket, asks for single or joint, and asks for number of dependents to calculate tax owed

the-flying-horror icon the-flying-horror

A simple Quadcopter with self stabilizing. As quadcopter implies it has 4 arms with a 30a brushless motor and propellers at the end of each arm, with each motor connected to a 30a motor controller. Each controller is then connected to the Power Distribution Board (I only lit on fire one of these bad boys in the process) which also has the 2200mAH battery. I am using a GY-521 gyro/accelerometer to measure the stability of it, of which is connected to an Arduino Uno which is the micro controller I am using.

two-link-robot-path-finding-with-rrt icon two-link-robot-path-finding-with-rrt

We revisit the two-link robot described in Project 2. Consider a robot consisting of 2 links, A 1 and A 2 . Each link has width W and length L . The distance between the two points of attachment is D . A 2 is attached to A 1 while A 1 is attached to the origin. Each link is allowed to rotate about its point of attachment. The configuration of the robot is expressed with 2 angles ( θ 1 , θ 2 ). The first angle, θ 1 , represents the angle between the segment drawn between the two points of attachment of A 1 and the x -axis. The second angle, θ 2 , represents the angle between A 2 and A 1 ( θ 2 = 0 when they are parallel). The world is W = R 2 . The obstacle region O ⊂ W , the link’s parameters, and the initial and goal configurations are described in a json file, which contains the following fields. • "O" : a list [ O 1 , . . . , O n ], where O i is a list [( x i, 0 , y i, 0 ) , . . . , ( x i,m , y i,m )] of coordinates of the vertices of the i th obstacle. • "W" : the width of each link. • "L" : the length of each link. • "D" : the distance between the two points of attachment on each link • "xI" : a list [ θ 1 , θ 2 ] specifying the initial configuration x I = ( θ 1 , θ 2 ) ∈ [0 , 2 π ] × [0 , 2 π ], and • "xG" : a list [ θ 1 , θ 2 ] specifying the goal configuration x G = ( θ 1 , θ 2 ) ∈ [0 , 2 π ] × [0 , 2 π ]

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.