Project Prototype | <-- Click
- Texan Industries
- Anthony Nosaryev, Thomas Yu
The TI-∞ is a scientific calculator with two distinct modes. The Normal Mode allows the user to interact with a properly functioning scientific calculator. The other, default mode is called the Annoying Mode. When in the Annoying Mode, the TI-∞ does not operate like a normal calculator, despite having the same user interface. The functions no longer match what is displayed on the buttons. Various buttons have their functions changed entirely, with the rest having their functions shuffled throughout the calculator.
No additional libraries or compiler flags necessary, simply cd into TI/, start TI.pde and Run
- Things to Note
- The default mode is Annoying Mode ("Annoy"), click the toggle in the top right to swap to the Normal Mode ("Work") (mode you are in will be white).
- Annoying Mode features are documented in the prototype (see line 1 of readme).
- Most important to note: Pressing del or CE in annoying mode has a 30% to close the processing window; do not be alarmed, this is intentional!
- Thomas Yu:
- Created TI.pde, Calculator.pde and Button.pde.
- Filled in base
TIandButtonmethod headers and instance variables.
- Anthony Nosaryev:
- Filled in base
Calculatormethod headers and instance variables. - Made
gamma()andfactorial()methods.
- Filled in base
- Thomas Yu:
- Worked on
Calculator()constructor - Instantiated all
Calculatorinstance variables except forArrayList<Button> buttonsdue to lack ofButtonimplementation. - Implemented
getExpression()andgetExpressionOld()methods. - Outlined basic UI layout in TI.pde.
- Worked on
- Anthony Nosaryev:
- Implemented
Button()constructor, fixed instance variable names. - Implemented
getIdentity()andsetIdentity()methods,the former of which needs testing. - Publicised Calculator variable annoying for
Buttonclass.
- Implemented
- Thomas Yu:
- Instantiated
ArrayList<Button> buttonsand began implementation of thebuttonClicked()method. - Implemented the display method, but the exact location where the expression should be displayed is subject to change.
- Instantiated
- Anthony Nosaryev:
- Elaborated on UI in default mode, added all button labels, implemented new font, implemented
updateButtons()for toggles and inverse functions. - Modified
buttonClicked()to be more readable through reliability onmouseClicked(). - Fixed error of expression showing function cap Strings instead of intended identity Strings.
- Changed
draw()functionality to no longer constantly loop due to poor graphics quality.
- Elaborated on UI in default mode, added all button labels, implemented new font, implemented
- Thomas Yu:
- Converted expression from String to
String[]helped plan its later conversion toArrayList<String>. - Fixed percent (%) symbol in
String[][] buttonArray.
- Converted expression from String to
- Anthony Nosaryev:
- Implemented new font for on-screen expression.
- Converted expression from String to ArrayList for easier processing.
- Began working on
screenExpression(), a method to display the expression with proper spacing and superscripting.
- Anthony Nosaryev:
- Finished
screenExpression(), whose primary purpose is essentially to facilitate powers/exponents. - Implemented del button with CE as its inverse for more versatility.
- Modified
buttonClicked()to block illegal uses of pow.
- Finished
- Thomas Yu:
- Created helper methods
evalHelp()(to use recursion in eval) andparenthesesCheck()(evaluates the parts of the expression enclosed by a set of parentheses). - Implemented
parenthesesCheck(). For now it only works if there are equal amounts of open and closed parentheses.
- Created helper methods
- Thomas Yu:
- Created
expressionFix()to combine numbers to facilitate calculations.
- Created
- Anthony Nosaryev:
- Began working on
PImages sinful, cosmic and tanned, began working on modifying background calculations to allow for modification of background.
- Began working on
- Anthony Nosaryev
- Finished
sinful, cosmic and tanned, allowed for background modificatio withmake().
- Finished
- Thomas Yu
- Updated
expressionFix()to work with decimal points, add multiplication symbols when implied by parentheses, and add an open parenthesis after every function.
- Updated
- Thomas Yu
- Fixed
expressionFix()to not add multiplication symbols between two open or two closed parentheses. - Updated
expressionFix()to also add extra closed parentheses to balance out the number of open and closed parentheses. - Updated both
buttonClicked()methods to not allow closed parentheses to be added when it directly follows an open parentheses or when it would be an extra.
- Fixed
- Anthony Nosaryev
- Combined
updateButtons()functionality intomake(), thereby significantly cleaning up button creation. - Combined
buttonClicked()methods for processing speed and cleanliness - Implemented
scramble()to shuffle button values in Annoying Mode.
- Combined
- Thomas Yu
- Fixed oversights with openParen and closeParen, particularly after deleting parentheses and replacing them.
- Anthony Nosaryev
- Changed cosmic.jpg to something nicer, made anndef.jpg
- Anthony Nosaryev
- Reworked TI to display all features relative to the size rather than at specific coordinates.
- Thomas Yu
- Implemented the
evalHelp()method. - Updated
expressionFix()to account for negative numbers, Ans, pi, and e.
- Implemented the
- Anthony Nosaryev
- Implemented
ansandansOldinstance variables for history purposes. - Created
cut()method to attempt to alleviate floating point errors with some success.
- Implemented
- Anthony Nosaryev
- Fixed errors with
ansandansOlddisplaying, other general calculator quirks. - Moved instance
booleans annoying, rad and inv(essential calculator statuses) to TI.pde for uiversal access. - Simplified
coords()andexpDebug()to only the console.
- Fixed errors with
- Thomas Yu
- Began implementing annoying mode functions (Rad|Deg swap, !, and %).
- Thomas Yu
- Implemented annoying mode functions for
ln(), history not saving, and the entire line clearing.
- Implemented annoying mode functions for
- Anthony Nosaryev was absent taking an AP test.
- Thomas Yu
- Fixed some issues introduced by annoying mode functions to allow calculations to properly occur.
- Fixed issues with unwanted multiplication symbols being added into the expression.
- Anthony Nosaryev
- Implemented most of the remaining annoying mode features (! amplification, log/ln backgrounds, % output).
- Worked on (but ultimately scrapped) normal mode evaluation delay and processing text.
- Thomas Yu
- Worked on how negative numbers are identified.
- Made an ( follow E.
- Anthony Nosaryev
- Created Previous Expression button.
- Added a highlight to buttons when pressed.
- Fixed
gamma()functionality, changed input to float instead of double.