BufferedReader r = new BufferedReader(new FileReader(fileName));
# First evarrr website "title": "Toggle Semicolons"// (because it's the percentage of the total length), and within every set a delay is applied to make
.then((user: User) => authorTickets = user.ticketIds.length)); switch (commonFeature) {import objects from '../assets/objects'; }
return { "scripts": {} if (authorTickets === null || ticketComments === null || avgPrice === null) {const speed = 2;
if (risk > 95) return 95; return _.merge(state, action.abouts) await Promise.all(queries) newImg = document.createElement("img");
}
</div> this.props.login(data.email, data.password) return ( return goldRequired;
 private String message;
* Default constructor, creates the default map "Very small Labyrinth of doom".
// the spheres follow after one another and then also some "randomness" to make the whole thing feel more organic.
}, return mapName;
private char[][] map;
/**
function getAveragePrice(tickets: Ticket[]): number { *
import {ABOUT_TEXTS_FETCHED} from '../actions/abouts'; return state;}
function fraudRiskAlgorithm(ticketsOfAuthor: number, averagePrice: number, price: number, createdAt: string, commentCount: number): number { else {
is.close();
default: */
// Could also do all this fetching of data via a single QueryBuilder that embeds everything in the ticket let ownCounter = (counters[j] - spaceBetweenSheres * k - 0.1 * j - 0.5 * (j % 2)) % 1;
/**
* @param The filename of the map file.
* @param The filename of the map file.
const hrefSet = ["https://www.facebook.com/jiri.swen", "", "", "https://nl.linkedin.com/in/jiriswen", "", ""];
 return tickets <Redirect to="/" />
protected int getGoldRequired() {
mapName = r.readLine().replace("name ", "");
const sphereOrders = [[3,5,2,1,4,0],[0,1,2,3,4,5],[1,4,0,2,5,3],[5,4,1,2,0,3],[1,2,4,3,0,5],[2,5,4,1,0,3],[3,4,0,5,2,1]]
import java.util.ArrayList;
import { NotFoundError, BadRequestError } from 'routing-controllers'; const authorTickets = await User.findOne({id: tickets[0].authorId}) iconSets[j][i].style.transform = "translate(" + (svg[j].getPointAtLength(ownCounter * svgLengths[j]).x -15) * 0.10 + "vw, " + (svg[j].getPointAtLength(ownCounter * svgLengths[j]).y -15) * 0.08 + "vh)";
}
} map = new char[lineNumber][];
"publisher": "jirin", goldRequired = Integer.parseInt(r.readLine().replace("win ", ""));
class LoginPage extends PureComponent { "@types/mocha": "^2.2.42", * @return The height and width of the map stored together in an array.
/**
private String mapName;
* @see {@link GameLogic.java}
// First reads in the map name and amount of required gold
const priceRisk: number = ((averagePrice - price) / averagePrice) * 100; /**
int lineNumber = countLines(fileName) - 2;
} */
InputStream is = new BufferedInputStream(new FileInputStream(fileName));
* @return The name of the current map.
return Promise.all(tickets.map(async ticket => await updateFraudRisk(ticket)));export async function updateFraudRisk(ticket: Ticket, avgPriceInherit?: number, authorTicketsInherit?: number): Promise<Ticket> { .then(tickets => avgPrice = getAveragePrice(tickets)) );
if (counters[j] % 1 < (increments[j] + 0.00001)) {
const svgLengths = [];
}
function move() {
import _ from 'lodash'; "@types/node": "^8.10.25",# Technologic return new int[] {map.length, map[0].length};

import {Redirect} from 'react-router-dom' */
{'#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#'},
For the Codaisseur Code Academy, we were asked to make a web page introducing ourselves. This is what I came up with. "start_url": ".", map[coordinates[0]][coordinates[1]] = '.';
### Programming-like technologies for (let i = 0; i < 6; i++) {
mapName = "Very small Labyrinth of Doom";
]import {connect} from 'react-redux'}
}
System.err.println(message);
/**
public class MathException extends Exception {
}, for (int i = 0; i < readChars; ++i) {
public MathException(String message) {
* @throws Exception : Thrown if map is not rectangular.
while ((readChars = is.read(c)) != -1) {
 currentUser: state.currentUser, */
{'#','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','#'},
} }
protected void removeItemAtCoordinate(int[] coordinates) {
// Preparatory work: lots of copies of the social media spheres are created and put in a 2D array for
} iconSets.push(newIconSet);
import java.io.InputStream;
* @release 15/12/2017
 int count = 1; // I changed this from 0 to 1 because it was counting one too few lines for some reason
newA.appendChild(newImg);
} * @param The filename of the map file to count the lines of.
let avgPrice = avgPriceInherit || null; *
let risk = 0; */
"onCommand:extension.toggleSemicolons" }{ "vscode-test": "^1.6.1" ticket.fraudRisk = fraudRiskAlgorithm(authorTickets, avgPrice, ticket.price, ticket.createdAt!, ticketComments);[Click here to see it in action](https://modest-ritchie-26c33d.netlify.com) // Checks if all lines have the same length
* @param Coordinates to replace with an 'empty' slot.
let icons = document.getElementsByClassName("icon");
});
// Constants to impact flow of spheres
* @version 3.0
} }// lengths of the SVG curves and the corresponding amount to increment their counters with
}
* Super quick line counter by martinus:
 ],import {login} from '../../actions/users'}}Though I wanted to make it spiffy and responsive, but then the whole thing started to die slowly as some small glitchings caused the whole page to look like crap ¯\\\_(ツ)\_/¯ * @throws IOException : The usual IOException from a BufferedReader.
}
{ ], newA.href = hrefSet[i];
const queries: Promise<number>[] = []; readMap(fileName);
"theme_color": "#000000", */
<LoginForm onSubmit={this.handleSubmit} />
return map;
import java.util.List;
"short_name": "React App", // Gold required for the human player to win
 return map[coordinates[0]][coordinates[1]];
sphereOrders[currentSphereOrders[j]].forEach(function(i) {
], r.close();
"test": "yarn run compile && node ./node_modules/vscode/bin/test" .reduce((sum, price) => sum + price) {'#','.','.','E','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','#'},
import LoginForm from './LoginForm' currentSphereOrders[j]++;
import Ticket from './tickets/entity'; }
*/
"dependencies": {} "name": "semicolon-spammer", "src": "favicon.ico", )export default function reducer(state=objects, action={}) { "commands": [ *
"vscode:prepublish": "yarn run compile", }
++count;
"activationEvents": [const spaceBetweenSheres = 0.07;
protected int countLines(String fileName) throws IOException {
let ticketComments: number = ticket.commentIds.length || 0;### Creative Software protected String getMapName() {
if (ticket.fraudRisk === oldFraudRisk) return ticket; }
export default connect(mapStateToProps, {login})(LoginPage)import java.util.Arrays;
}
/**
}
let svg = canvas.getElementsByTagName("path");
newImg.src = icons[i].src;
"sizes": "64x64 32x32 24x24 16x16", return Promise.all(tickets.map(async ticket => await updateFraudRisk(ticket, undefined, authorTickets))); * Removes item stored at specified coordinates.
public Map(String fileName) throws Exception {
*
}, }
"@types/vscode": "^1.66.0", "watch": "tsc -watch -p ./", // Map name
} public Map() {
return ticket.save(); * @author Jiri Swen
newImg.className = "moving-icon";
Ordered by how high my intuition wants them to be on the list; convenient!// Every set of 6 spheres has its own counter which increases more rapidly for shorter paths
protected char getItemAtCoordinate(int[] coordinates) {
return (count == 0 && !empty) ? 1 : count;
"Other" "displayName": ";;;;;;;;", private int goldRequired;
counters[j] += increments[j];
/ tickets.length;// Each set also cycles through a series of "orders of the spheres" for every time they start their animation.
return risk; }
* Constructor that accepts a map to read in from.
{'#','.','.','.','.','.','.','.','.','.','.','.','G','.','.','.','.','.','.','#'},
import java.io.FileReader;
I went with a *certain* aesthetic. Hahah. Not too unsatisfied with how it came out. */
risk += timeDuringBusinessHours(createdAt) ? -10 : 10;
error: state.login.errorfor (let j = 0; j < svg.length; j++) {
* @return The map as stored in memory.
if (currentSphereOrders[j] !== 6) {
}
case ABOUT_TEXTS_FETCHED: if (c[i] == '\n') {
for (let j = 0; j < iconSets.length; j++) {
if (!avgPriceInherit) queries.push( Ticket.find({relations: ['event'], where: {event: {id: ticket.eventId}}}) "devDependencies": { * @return The item stored at specified coordinates.
const oldFraudRisk: number|undefined = ticket.fraudRisk; default: * @return The number of lines.
if (!tickets[0]) return; requestAnimationFrame(move); // A function calling itself 60 times per second, yeah that's definitely a good idea
* @return Gold required to exit the current map.
if (!authorTicketsInherit) queries.push( User.findOne({id: ticket.authorId}) if (risk < 5) return 5; }, if (map[i].length != map[0].length) {
* @param The coordinates to get the character at as stored in the map.
* @throws The usual IOException from a BufferedReader.
protected char[][] getMap() {
} switch (action.type) { {'#','.','.','.','.','.','.','G','.','.','.','.','.','.','.','.','.','E','.','#'},
import React, {PureComponent} from 'react' for (int i = 0; i < lineNumber; ++i) {
newA.target = "_blank";
newA = document.createElement("a");
### 3D software <span style={{color:'red'}}>{this.props.error}</span> }public class Map {
if (this.props.currentUser) return (let newImgContainer = document.getElementById("new-icons");
*/
}
/**
int readChars = 0;
} newA.style.position = "absolute";
} <div> let k = 0;
newImgContainer.appendChild(newA);
case 'author': .catch(e => {throw new BadRequestError(e)}); {'#','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','#'},
} "eslint": "^8.12.0",
protected void readMap(String fileName) throws IOException, Exception {
import java.io.FileInputStream;
/**
 throw new NotFoundError('Cannot find certain information related to the ticket you are trying to update'); goldRequired = 2;
const mapStateToProps = function (state) { k++;
"categories": [ risk += ((priceRisk > -10) ? priceRisk : -10);
"type": "image/x-icon"
render() { byte[] c = new byte[1024];
let canvas = document.getElementById("icon-jumble");
import java.io.IOException;
import java.io.BufferedInputStream;
* Reads and contains in memory the map and specifications of the game.
{ this.props.error && const hour = new Date(time).getHours();function timeDuringBusinessHours(time: string): boolean { map = new char[][] {
throw new Exception("\nYour chosen map appears to not be rectangular.");
"name": "Create React App Sample", let authorTickets = authorTicketsInherit || null; let newIconSet = []
{'#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#'}
handleSubmit = (data) => { "display": "standalone", // Representation of the map
"version": "1.2.9", return hour >= 9 && hour < 17; return Promise.all(tickets.map(async ticket => await updateFraudRisk(ticket, avgPrice))); ) * @throws Exceptions thrown by {@link readMap}
import java.io.BufferedReader;
export async function updateFraudRisks(tickets: Ticket[], commonFeature: 'event'|'author'): Promise<Ticket[]|void> { svgLengths.push(svg[j].getTotalLength());
currentSphereOrders[j] = 0;
/**
// the animation-action that's about to follow, and also an array of all the
 if (commentCount > 3) risk += 5; empty = false;
{ }
{'#','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','#'},
"@typescript-eslint/eslint-plugin": "^5.17.0", "main": "./out/extension", * Reads the map from a file using a BufferedReader and sets the appropriate parameters.
boolean empty = true;
These are some technologies that I use / like to use / can use / want to use more etc. }
* https://stackoverflow.com/questions/453018/number-of-lines-in-a-file-in-java
.map(ticket => Number(ticket.price)) }
if (ticketsOfAuthor <= 1) risk += 10; newIconSet.push(newA);
"compile": "tsc -p ./",import User from './users/entity'; } .then((user: User) => user.ticketIds.length); "@typescript-eslint/parser": "^5.17.0", "repository": "https://github.com/Shirijii/semicolon-spammer", "typescript": "^4.6.0", */
} try {
map[i] = r.readLine().toCharArray();
const iconSets = [];
const counters = [2,2,2,2,2,2,2,2,2,2];
"vscode": "^1.32.0" super(message);
"icons": [ };
public MathException() {}
}
"background_color": "#ffffff" "description": "Gives access to a command that adds/removes semicolons at the end of the current line or of all currently selected lines;",const increments = [];
requestAnimationFrame(move); protected int[] getMapSize() {
"command": "extension.toggleSemicolons", }
}
}
{ finally {
"contributes": { increments.push(1 / svgLengths[j] * speed);
{'#','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','#'},
}
/**
I did remove most of the social media links for privacy reasons. const avgPrice = await Ticket.find({relations: ['event'], where: {event: {id: tickets[0].eventId}}}) case 'event':
*/
<h1>Login</h1> .then(getAveragePrice); "engines": { /**
const currentSphereOrders = [0,1,2,3,4,5,6,0,1,2];
*



ABOUT























osu! db manipulator