|
Advanced Rogue Copyright (C) 1984, 1985, 1986 Michael Morgan, Ken Dalka and AT&T All rights reserved. |
|
Based on "Rogue: Exploring the Dungeons of Doom" Copyright (C) 1980, 1981 Michael Toy, Ken Arnold and Glenn Wichman All rights reserved. |
See the file LICENSE.TXT for full copyright and licensing information.
Rogue is a screen-oriented fantasy game set in the ever-changing Dungeons of Doom. The game comes complete with monsters, spells, weapons, armor, potions, and other magical items. The dungeon's geography changes with every game, and although many magical items have certain identifiable properties, such as turning the player invisible, the physical manifestation of the magic changes each game. A red potion, for example, will cause the same reaction throughout a given game, but it may be a completely different potion in a new game.
Entering the dungeon with only a little food, armor, and a weapon, the player must develop a good strategy of when to fight, when to run, and how to best use any magical items found in the dungeon. To make things interesting, the player has a quest to return one of several unique artifacts, rumored to lie deep in the dungeon's bowels. Returning with this artifact brings great glory and the title of Complete Winner. But even after finding the artifact, the player may wish to continue further to match wits with an arch-devil, demon prince, or even a deity found far down in the dungeon. Defeating such a creature will gain the player many experience points, the basis for scoring in Rogue.
It is very difficult to return from the Dungeons of Doom. Few people ever make it out alive. Should this unlikely event occur, the player would be proclaimed a complete winner and handsomely rewarded for any booty removed from the dungeon.
Before placing the player in the dungeon, the game requests the player to select what type of character they would like to be: a fighter, a magic user, a cleric, a druid, a thief, a paladin, a ranger, a monk, or an assassin.
2.1 The Fighter
A fighter is very strong and will have a high strength rating. This great strength gives a fighter the best odds of winning a battle with a monster. At high experience levels the fighter also gets to attack multiple times in a single turn. This obviously further increases his chances at winning battles. Intrinsic to the fighter class is a robustness which results in 1 to 12 extra hit points for every new experience level.
2.2 The Magician
A Magician is able to "cast" spells. The number and variety of spells increases as the magician gains experience and intelligence. Magic users are not as hearty as fighters; they receive 1 to 6 extra hit points for every new experience level.
2.3 The Cleric
A cleric is able to "pray" to his god for help. The number and variety of prayers which the gods are willing to grant to a cleric increase as the cleric gains experience and wisdom.
Because of their religious nature, clerics can also affect the "undead" beings, like zombies and ghouls, which became monsters after they died. If an "undead" creature is next to a cleric, the cleric may try to turn it and cause it to flee. If the cleric is sufficiently powerful relative to the monster, the cleric will destroy it. This ability increases as the character gains experience levels.
Clerics can gain from 1 to 8 extra hit points on reaching a new experience level.
2.4 The Druid
The druid is a cleric of sorts but worships nature rather than a god. The druid is able to "chant" and thereby recieve certain types of spells. Most of the chants are targeted more towards the elements and nature.
Druids gain from 1 to 8 hit points when they gain an experience level.
2.5 The Thief
A thief is exceptionally dextrous and has a good chance to set a trap or rob a monster.
By their nature, thieves can automatically detect all the gold on the current level of the dungeon. They are also good at detecting hidden traps. Because thieves slink along, they are not as likely as other characters to wake sleeping monsters. If a thief manages to sneak up on a creature without waking it, he will get a chance to backstab the monster. When this is done, the damage done by the thief greatly increases based on his experience level.
Thieves gain from 1 to 6 extra hit points from a new experience level.
2.6 The Paladin
The paladin is a type of holy warrior. Somewhat of a cross between a fighter and a cleric. He is able to pray and turn undead as a cleric, (but to a lesser degree) but fights as a fighter. He is on the side of all that is good and righteous. Therefore he would never attack a creature that would not attack him first.
Paladins gain 1 to 10 hit points per experience level.
2.7 The Ranger
The ranger is somewhat of a cross between a druid and a fighter. He too is on the side of righteousness and good. Therefore, the same same restrictions apply to his as they do to a paladin. The ranger can "chant" and "cast" but to a lesser degree than the druid and magician.
Rangers gain 1 to 8 hit points per experience level.
2.8 The Monk
The Monk is a martial arts expert. He wears no armor but has an effective armor class based on his ability to dodge attacks. He does not need a weapon in combat for his hands and feet are a formidable weapon. His ability to dodge and use his hands as weapons increases as he gains in level.
Monks gain 1 to 6 hit points per experience level.
2.9 The Assassin
The assassin is a person trained in the art of killing people by surprise. He has most of the abilities of the thief except the "backstab". Instead, the assassin has the chance to kill an opponent outright with one strike. He is also a ruthless character and trained in the use of poison. He can recognize poison on sight and can coat his weapon with it thereby making his next attack an exceptionally lethal one.
Assassins gain 1 to 6 hit points per experience level.
3.1 Intelligence
Intelligence is the primary attribute associated with casting spells. With higher intelligence comes the knowledge of more spells, the ability to cast more spells, and faster recovery of spells that have been cast.
3.2 Strength
This is, of course, the measure of a character's physical strength. With higher strength a character can carry more, cause more damage when striking, have a better chance to strike an opponent, and move about more quickly when carrying a load.
3.3 Wisdom
Wisdom is the primary attribute associated with Praying to a god. With higher wisdom comes the knowledge of more prayers, the ability to pray more often, and faster recovery of prayer ability.
3.4 Dexterity
Dexterity is a measure of a character's agility. With higher dexterity a character is harder to hit, can hit a opponent more easily, and can move about more quickly when carrying a load.
3.5 Constitution
Every character has a constitution rating. A character with an exceptionally good constitution will gain more than the normal amount of hit points associated with the character's class when the character reaches a new experience level. Exceptional constitution also provides better protection versus poison-based attacks and diseases.
3.6 Charisma
Charisma is a measure of a characters looks and general likeableness. It effects transactions when trying to purchase things.
3.7 Experience Levels
Characters gain experience for killing monsters, stealing from monsters, and turning monsters. Each character class has a set of thresholds associated with it. When a character reaches a threshold, the character attains the next experience level. This new level brings extra hit points and a greater chance of success in performing the abilities associated with the character's class. For example, magicians receive new spells, and clerics receive new prayers.
3.8 Allocating Attributes
The player starts with 72 "attribute points" to create a character and can distribute them in any manner among the six attributes described above. When prompting the player for each attribute, the game displays the minimum and maximum allowable values for that attribute. The player can type a backspace (control-H) to go back and change a value; typing an escape (ESC) sets the remaining attributes to the maximum value possible given the remaining attribute points.
During the normal course of play, the screen consists of three separate sections: the top line of the terminal, the bottom two lines of the terminal, and the remaining middle lines. The top line reports actions which occur during the game, the middle section depicts the dungeon, and the bottom lines describe the player's current condition.
4.1 The Top Line
Whenever anything happens to the player, such as finding a scroll or hitting or being hit by a monster, a short report of the occurrence appears on the top line of the screen. When such reports occur quickly, one right after another, the game displays the notice followed by the prompt '--More--.' After reading this notice, the player can press a space to display the next message. At such a point, the game ignores all commands until the player presses a space.
4.2 The Dungeon Section
The large middle section of the screen displays the player's surroundings using the following symbols:
| | | A wall of a room. | |
| - | A wall of a room. | |
| * | A pile of gold. | |
| % | A way to another level. | |
| + | A doorway. | |
| . | The floor in a room | |
| @ | The player. | |
| _ | The player, when invisible. | |
| # | The floor in a passageway | |
| ! | A flask containing a potion. | |
| ? | A sealed scroll. | |
| : | Some food. | |
| ) | A weapon. | |
| Solid rock (denoted by a space) | ||
| ] | Some armor. | |
| ; | A miscellaneous magic item. | |
| , | An artifact. | |
| = | A ring. | |
| / | A wand or a staff. | |
| ^ | The entrance to a trading post. | |
| > | A trapdoor leading to the next level. | |
| { | An arrow trap. | |
| $ | A sleeping gas trap. | |
| } | A beartrap. | |
| ~ | A trap that teleports you somewhere else. | |
| ` | A poison dart trap. | |
| " | a shimmering magic pool. | |
| ' | An entrance to a maze. | |
| $ | Any magical item. (During magic detection) | |
| > | A blessed magical item. (Duriing magic detection) | |
| < | A cursed magical item. (During magic detection) | |
| A letter | A monster. Note that a given letter may signify multiple monsters, depending on the level of the dungeon. The player can always identify a current monster by using the identify command ('/'). |
4.3 The Status Section
The bottom two lines of the screen describe the player's current status. The first line gives the player's characteristics:
Intelligence (Int)
Strength (Str)
Wisdom (Wis)
Dexterity (Dxt)
Constitution (Const)
Charisma (Char)
Encumberance (Carry)
Intelligence, strength, wisdom, dexterity, charisma, and constitution have a normal maximum of 25, but can be higher when augmented by a ring. Encumberance is a measurement of how much the player can carry versus how much he is currently carrying. The more you carry relative to your maximum causes you to use more food.
The second status line provides the following information:
The current level (Lvl) in the dungeon. This number increases as the player goes further down.
The player's current number of hit points (Hp), followed in parentheses by the player's current maximum number of hit points. Hit points express the player's health. As a player heals by resting, the player's current hit points gradually increase until reaching the current maximum. This maximum increases each time a player attains a new experience level. If the player's current hit points reach 0, the player dies.
The player's armor class (Ac). This number describes the amount of protection provided by the armor, cloaks, and/or rings currently worn by the player. It is also affected by high or low dexterity. Wearing no armor is equivalent to an armor class of 10. The protection level increases as the armor class decreases.
The player's current experience level (Exp) followed by the player's experience points. The player can gain experience points by killing monsters, successfully stealing from monsters, and turning monsters. When a player gains enough experience points to surpass a threshold that depends on the player's character type, the player reaches a new experience level. A new experience level brings extra hit points and possibly added abilities, such as a new spell for a magician or a new prayer for a cleric.
A description of the player's character. This description depends on the player's character type and experience level.
A player can invoke most Rogue commands by typing a single character. Some commands, however, require a direction, in which case the player types the command character followed by a directional command. Many commands can be prefaced by a number, indicating how many times the command should be executed.
When the player invokes a command referring to an item in the player's pack (such as reading a scroll), the game prompts for the item. The player should then type the letter associated with the item, as displayed by the inventory command. Typing a '*' at this point produces a list of the eligible items.
Rogue understands the following commands:
| ? | Preceding a command by a '?' produces a brief explanation of the command. The command '?*' gives an explanation of all the commands. | |
| / | Preceding a symbol by a '/' identifies the symbol. | |
| = | Clarify. After typing an '=' sign, the player can use the movement keys to position the cursor anywhere on the current level. As long as the player can normally see the selected position, Rogue will identify whatever is at that space. Examples include a sleeping giant rat, a blue potion, and a food ration. | |
| h | Move one position to the left. | |
| j | Move one position down. | |
| k | Move one position up. | |
| l | Move one position to the right. | |
| y | Move one position to the top left. | |
| u | Move one position to the top right. | |
| b | Move one position to the bottom left. | |
| n | Move one position to the bottom right | |
| H | Run to the left until reaching something interesting. | |
| J | Run down until reaching something interesting. | |
| K | Run up until reaching something interesting. | |
| L | Run to the right until reaching something interesting. | |
| Y | Run to the top left until reaching something interesting. | |
| U | Run to the top right until reaching something interesting. | |
| B | Run to the bottom left until reaching something interesting. | |
| N | Run to the bottom right until reaching something interesting | |
| t | This command prompts for an object from the players pack. The player then throws the object in the specified direction. | |
| f | When this command is preceded with a directional command, the player moves in the specified direction until passing something interesting. | |
| z | This command prompts for a wand or staff from the player's pack and zaps it in the specified direction. | |
| > | Go down to the next level. | |
| < | Go up to the next level. | |
| s | Search for a secret door or a trap in the circle surrounding the player. | |
| . | This command (a dot) causes the player to rest a turn. | |
| i | Display an inventory of the player's pack. | |
| I | This command prompts for an item from the player's pack and displays the inventory information for that item. | |
| q | Quaff a potion from the player's pack. | |
| r | Read a scroll from the player's pack. | |
| e | Eat some food from the player's pack. | |
| w | Wield a weapon from the player's pack. | |
| W | Wear some armor, ring, or a miscellaneous magic item from the player's pack. The player can wear a maximum of 8 rings. | |
| T | Take off whatever the player is wearing. | |
| ^U | Use a magic item in the player's pack. | |
| d | Drop an item from the player's pack. | |
| P | Pick up the items currently under the player. | |
| ^N | When the player types this command, Rogue prompts for a monster or
an item from the player's pack and a one-line name. For monsters, the
player can use the movement keys to position the cursor over the desired
monster, and Rogue will use the given name to refer to that monster. For items, Rogue gives all similar items (such as all the blue potions) the specified name. |
|
| m | When the player types this command, Rogue prompts for an item from the player's pack and a one-line name. Rogue then marks the specified item with the given name.. | |
| o | Typing this command causes Rogue to display all the settable options. The player can then merely examine the options or change any or all of them. | |
| C | This command, restricted to magicians and rangers produces a listing of the current supply of spells. The player can select one of the displayed spells and, if the player's energy level is sufficiently high, Cast it. The more complicated the spell, the more energy it takes. | |
| c | This command, restricted to druids and rangers produces a listing of the current supply of chants. The player can select one of the displayed chants and, if the player's energy level is sufficiently high, chant it. The more complicated the spell, the more energy it takes. | |
| p | This command, restricted to clerics and paladins, produces a listing of the character's known prayers. The player can then offer one of these prayers to the character's deity. Deities are not known for favoring characters which continually pray to them, and they are most likely to answer the least "ambitious" prayers. | |
| a | This command is restricted to clerics and paladins must be followed by a directional command. If there is an "undead" monster standing next to the player in the specified direction, there is a chance the player will affect the monster by causing it to flee or possibly even destroying it. | |
| * | Count the gold in the player's pack. | |
| ^ | This command sets a trap and is limited to thieves and assassins. If the character is successful, Rogue prompts the player for a type of trap and sets it where the player is standing. | |
| G | This command is restricted to thieves and assassins. It causes Rogue to display all the gold on the current level. | |
| D | Dip something into a magic pool. | |
| ^T | This command is restricted to thieves and assassins. It must be followed by a directional command. If there is a monster standing next to the player in the specified direction, the player tries to steal an item from the monster's pack. If the player is successful, the monster does not notice anything, but if the player is unsuccessful, there is a chance the monster will wake up. | |
| ^L | Redraw the screen. | |
| ^R | Repeat the last message that was displayed on the top line of the screen. | |
| Escape (^[) | Typing an escape will usually cause Rogue to cancel the current command. | |
| v | Print the current Rogue version number. | |
| ! | Escape to the shell level. | |
| S | Quit and save the game for resumption at a later time. | |
| Q | Quit without saving the game. |
There is no "attack" command. If a player wishes to attack a monster, the player simply tries to move onto the spot where the monster is standing. The game then assumes that the player wishes to attack the monster with whatever weapon the player is wielding.
When the player moves onto an item, the game automatically places the object into the player's pack. If there is no room left in the pack, the game announces that fact and leaves the item on the floor.
All actions except for purely bookkeeping commands, such as taking an inventory, take time. The amount of time varies with the command. Swinging a weapon, for example, takes more time than simply moving; so a monster could move several spaces in the time it takes the player to make one attack. The time it takes to swing a weapon also varies based on the bulk of the weapon, and the time it takes to simply move a space varies with the type of armor worn. Movement is always faster when flying.
Since actions take time, some of them can be disrupted. If the player is casting a spell, for example, and gets hit before finishing it, the spell is lost. Similarly, the player might choke if hit while trying to eat. Of course, the same rule applies when the player hits a monster.
Magical hasting (or slowing) will decrease (or increase) the time it takes to perform an action.
Some rooms in the dungeon possess a natural light source. In other rooms and in corridors the player can see only those things within a one space radius from the player. These dark rooms can be lit with magical light or by a fire beetle.
The player can wield exactly one weapon at a time. When the player attacks a monster, the amount of damage depends on the particular weapon the player is wielding. To fire a projectile weapon, such as a crossbow or a short bow, the player should wield the bow and "throw" the bolt or arrow at the monster.
A weapon may be cursed or blessed, affecting the likelihood of hitting a monster with the weapon and the damage the weapon will inflict on the monster. If the player has identified a weapon, the "to hit" and "to damage" bonuses appear in that order before the weapon's name in an inventory listing.  The player cannot release a cursed weapon.
Without any armor the player has an armor class of 10. The lower the player's armor class, the harder it is for a monster to hit the player, so wearing armor can improve the player's armor class. A cursed suit of armor, however, offers poor protection and may sometimes be worse than no armor at all.
After the player has identified a suit of armor, the protection bonus appears before the armor's name in an inventory listing. If the bonus is positive the armor is blessed, and if it is negative, the armor is usually cursed. The player cannot remove a cursed suit of armor.
Some monsters can corrode armor when they hit it. If such a monster hits the player when the player is wearing metal armor, the armor loses some of its protection value, but the corrosion does not curse the armor. This corrosive property can also apply to weapons when the player hits such a monster.
The player can frequently find potions and scrolls in the dungeon. In any given dungeon, the player can distinguish among the different types of potions by a potion's color and among the different types of scrolls by a scroll's name. Quaffing a potion or reading a scroll usually causes some magical occurrence. Most potions and scrolls may be cursed or blessed.
The player can wear a maximum of eight rings, and they have a magical effect on the player as long as they are worn. Some rings also speed up the player's metabolism, making the player require food more often. Many rings can be cursed or blessed, and the player cannot remove a cursed ring. The player can distinguish among different types of rings by a ring's jewel.
Wands and staves affect the player's environment. The player can zap a wand or staff at something and perhaps shoot a bolt of lightning at it or teleport it away. All wands or staves of the same type are constructed with the same type of wood. Some wands and staves may be cursed or blessed.
The player must be careful not to run out of food since moving through the dungeon fighting monsters consumes a lot of energy. Starving results in the player's fainting for increasingly longer periods of time, during which any nearby monster can attack the player freely.
Food comes in the form of standard rations and as a variety of berries. Some berries have side effects in addition to satisfying one's hunger.
Gold has one use in a dungeon: buying things. One can buy things in two ways, either in a trading post or from a quartermaster. A trading post is a place that sometimes occurs "between levels" of the dungeon and can be entered by stepping on the entrance. A quartermaster is a person who will sometimes appear and will try to sell the player some of his wares. These wares are never cursed and frequently blessed, though blessed goods cost more than normal goods. If the player chooses to buy one of the quartermaster's items, the quartermaster trades the item for the specified amount of gold and disappears. Attacking a quartermaster causes him to vanish without offering a trade.
The player starts the game in a trading post with a class-dependent allotment of gold. Although there are restrictions on the use of some items (eg. only fighters, paladins, and rangers can wield two-handed swords), the market will happily sell the player anything that he can afford.
Miscellaneous items such as a pair of boots or a book may be found within the dungeon. These items can usually be used to the player's advantage (assuming they are not cursed). Some of these items can be worn, such as a cloak, while others are to be used, such as a book.
Some monsters down in the depths of the dungeon carry unique artifacts. The game begins as a quest to retrieve one of these items. Each artifact appears only on its owner's person. These items also can usually be used to the player's advantage. However, care must be taken when handling them for they are intelligent and will reject mishandling or abuse. These items consume food and merely carrying them will result in increased food use.
A variety of traps, including trap doors, bear traps, and sleeping traps, are hidden in the dungeon. They remain hidden until sprung by a monster or the player. A sprung trap continues to function, but since it is visible, an intelligent monster is not likely to tread on it.
Each monster except for the merchant quartermaster appears in a limited range of dungeon levels. All monsters of the same type share the same abilities; all giant rats, for example, can give the player a disease, and all jackalweres can put the player to sleep. Monsters of the same type can vary, however, such that one kobold may be much more difficult to kill than another one. In general, the more difficult it is to kill a monster, the more experience points the monster is worth.
Most monsters attack by biting and clawing, but some monsters carry weapons, including such projectile weapons as short bows and crossbows, and some monsters have breath weapons. Some monsters even use magical items, such as wands. Monsters with distance weapons or magic can attack the player from across a room or down a corridor.
Some monsters are more intelligent than others, and the more intelligent a monster, the more likely that the monster will run away if it is about to die. A fleeing monster will not attack the player unless cornered.
It is sometimes possible to enlist a monster's aid. Reading a charm monster scroll, for example, or singing a charm monster chant can make a monster believe the player is its friend. A charmed monster will fight hostile monsters for the player as long as they are not of its race.
As the player moves down in the dungeon, the monsters get more powerful. Deep down in the dungeon there exist some one-of-a-kind monsters. These monsters are greatly feared. However, once a "unique monster" is killed, the player will not find another in the current dungeon.
Rogue has several options which may be set by the player:
| terse | Setting this Boolean option results in shorter messages appearing on the top line of the screen. | |
| jump | Setting this Boolean option results in waiting until the player has finished running to draw the player's path. Otherwise the game always displays the path one step at a time. | |
| step | Setting this Boolean option results in most listings, such as an inventory, appearing one item at a time on the top line of the screen. When this option is not set, the game clears the screen, displays the list, and then redraws the dungeon. | |
| flush | Setting this Boolean option results in flushing all typeahead (pending) commands when the player encounters a monster. | |
| askme | Setting this Boolean option results in the game prompting the player for a name upon encountering a new type of scroll, potion, ring, staff, or wand. | |
| pickup | This option specifies whether items should be picked up automatically as the rogue steps over them. In the non-automatic mode, the player may still pick up items via the pickup (P) command. The option defaults to true. | |
| name | This string is the player's name and defaults to the player's account name. | |
| file | This string, which defaults to arogue77.sav, specifies the file to use for saving the game. | |
| score | This string identifies the top-twenty score file to use for the game. | |
| class | This option specifies the character class of the rogue. It can be
set only in the ROGUEOPTS environment variable. |
|
| quested item | This option is set by the game at the start and cannot be reset by
the player. It is merely listed to remind the player of his quest. |
The player can set options at the beginning of a game via the ROGUEOPTS environment variable. Naming a Boolean option sets it, and preceding the Boolean option name by "no" clears it. The syntax "stringoption=name" sets a string option to "name." So setting ROGUEOPTS to "terse, jump, nostep, flush, askme, name=Ivan the Terrible" would set the terse, jump, flush, and askme Boolean options, clear the step Boolean option, set the player's name to "Ivan the Terrible," and use the defaults for the save file and the score file.
The player may change an option at any time during the game via the option command, which results in a listing of the current options. Typing a new value changes the option, a RETURN moves to the next option, a '-' moves to the previous option, and an ESCAPE returns the player to the dungeon.
The player receives experience points for stealing items from monsters, turning monsters (a clerical ability), and killing monsters. When the player gets killed, the player's score equals the player's experience points. A player who quits gets a score equal to the player's experience points and gold. If the player makes it back up out of the dungeon, the player's score equals the player's experience points plus the gold the player carried and the gold received from selling the player's possessions.
Rogue maintains a list of the top twenty scores to date, together with the name of the player obtaining the score, the level where the player finished, and the manner in which the player ended the game. As an installation option, the game may record only one entry per character type and login; this restriction encourages a greater number of different players in the scorechart.
This version of Rogue is based on a version developed at the University of California.


MICHAEL PIMLOTT
WEB DESIGN & DEVELOPMENT
WEB DESIGN & DEVELOPMENT
I’m a web designer and full-stack developer. I enjoy creating beautiful, clean compositions with a focus on the user experience. I am a visual, creative thinker that wants to tell stories with images and structure. I am passionate about art in technology. I try to always be learning new skills, and I want each project that I work on to be better than the last. I am inspired by working with a team, but I enjoy the challenge and reward of figuring something out for myself.
HTML5 | CSS3 | JavaScript(jQuery, AngularJS) | NodeJS(Express, Jade) | SQL(PostgreSQL,Knex) | Mongo(Mongoose) | Responsive Design | Pair Programming | Adobe Creative Suite


Never miss a deadline again! Our academia-first app makes setting reminders effortless.
Stay up to date with your obligations using powerful tools to keep your academic life sorted and clutter-free. Everything where you need it to be, so you can focus on what matters.
Streamlined management allows you to be the mentor your students deserve. Quickly view students and their deadlines, avoiding the need for tedious email updates.
Our highly customizable app empowers you to create the right reminders for you and your students. Leave no room for confusion with personalized messages.
 Reminders can be made with a personalized message and are sent at a date and time specified by you.
Your list of students is easily managed. Add or remove students to your list and view projects or research papers you're mentoring on with a single click.


To complete this exercise, edit your main.js
file. You'll get practice with some basic D3
syntax by selecting elements, appending elements to the DOM, and manipuating element attributes and styles.
sandbox
and append a div
element to it. Make sure to store the div
in a JavaScript varaible.mySvg
by appending an svg
element to your newly created div
.svg
to 300circle
element to your svg
, setting these properties (note, some of these are attributes and others are styles):
r
)cx
)cx
)opacity
)fill
)rect
element to your svg
, setting these properties (note, some of these are attributes and others are styles):
x
)y
)width
)width
)opacity
)fill
)Sandbox section: you'll add elements here


|
aerogear-xamarin-sdk
AeroGear Xamarin SDK
|
Abstract implementation of IAuthService. More...
Public Member Functions | |
| abstract User | CurrentUser () |
| Retrieve the current user. More... | |
| AbstractAuthService (MobileCore mobileCore=null, ServiceConfiguration serviceConfig=null) | |
| Initializes a new instance of the T:AeroGear.Mobile.Auth.AbstractAuthService class. More... | |
| abstract void | Configure (AuthenticationConfig authConfig) |
| Configure the service module. More... | |
| Task< User > | Authenticate (IAuthenticateOptions authenticateOptions) |
| Initiate an authentication flow. More... | |
| void | Destroy () |
| Perform teardown steps that should be done before destroying the instance. More... | |
| Task< bool > | Logout (User user) |
| Logout the specified user. More... | |
| void | Configure (MobileCore core, ServiceConfiguration config) |
Public Attributes | |
| string | Type => "keycloak" |
| bool | RequiresConfiguration => false |
| string | Id => null |
Protected Attributes | |
| readonly KeycloakConfig | KeycloakConfig |
| readonly MobileCore | Core |
Properties | |
| CredentialManager | CredentialManager [get, set] |
| AuthenticationConfig | AuthenticationConfig [get] |
| IAuthenticator | Authenticator [get, set] |
| Properties inherited from AeroGear.Mobile.Core.IServiceModule | |
| String | Id [get] |
| String | Type [get] |
| Type/name used in the mobile-singleThreadService.json More... | |
| bool | RequiresConfiguration [get] |
| Whether the singleThreadService module requires its singleThreadService configuration to be defined or if it can be null. If this is More... | |
Abstract implementation of IAuthService.
| AeroGear.Mobile.Auth.AbstractAuthService.AbstractAuthService | ( | MobileCore | mobileCore = null , |
| ServiceConfiguration | serviceConfig = null |
||
| ) |
Initializes a new instance of the T:AeroGear.Mobile.Auth.AbstractAuthService class.
| mobileCore | Mobile core. |
| serviceConfig | Service config. |
| Task<User> AeroGear.Mobile.Auth.AbstractAuthService.Authenticate | ( | IAuthenticateOptions | authenticateOptions | ) |
Initiate an authentication flow.
| authenticateOptions | Authenticate options. |
Implements AeroGear.Mobile.Auth.IAuthService.
|
pure virtual |
Configure the service module.
| authConfig | Authentication configuration. |
Implements AeroGear.Mobile.Auth.IAuthService.
| void AeroGear.Mobile.Auth.AbstractAuthService.Configure | ( | MobileCore | core, |
| ServiceConfiguration | config | ||
| ) |
Implements AeroGear.Mobile.Core.IServiceModule.
|
pure virtual |
| void AeroGear.Mobile.Auth.AbstractAuthService.Destroy | ( | ) |
Perform teardown steps that should be done before destroying the instance.
Implements AeroGear.Mobile.Core.IServiceModule.
| Task<bool> AeroGear.Mobile.Auth.AbstractAuthService.Logout | ( | User | user | ) |
Logout the specified user.
| user | The user to logout. |
Implements AeroGear.Mobile.Auth.IAuthService.
|
protected |
| string AeroGear.Mobile.Auth.AbstractAuthService.Id => null |
|
protected |
| bool AeroGear.Mobile.Auth.AbstractAuthService.RequiresConfiguration => false |
| string AeroGear.Mobile.Auth.AbstractAuthService.Type => "keycloak" |
|
getprotected |
|
getsetprotected |
|
getsetprotected |


Options that will be passed to Apollo Client useMutation
hook along with deleteMutation.
Use to provide the entity list directly instead of obtaining it from backend. This is the full list of entities, before applying pagination, filtering and sorting.
Pass true
if you don't want the query to be automatically executed upon invocation of the hook.
You will be able to trigger the query manually by invoking EntityListHookResult.executeListQuery function.
GraphQL query that retrieves the list of entities. Will be passed to Apollo Client useLazyQuery hook along with listQueryOptions.
Options that will be passed to Apollo Client useLazyQuery hook along with listQuery.
A callback that will be executed when entityList is changed (e.g. entities are added, removed or modified).
Determines the initial pagination state. Note that route parameters will override this prop.
Base route path
Generated using TypeDoc
GraphQL mutation that deletes a given entity instance. Will be passed to Apollo Client
useMutation
hook along with deleteMutationOptions.


The web application calculates the credit capability based on data such
as net income, interest rate, and loan term. The maximum loan amount
is calculated on the basis of the inverse PMT function, fixed
interest rate of 10% and 80% pure savings. This service also allows
you to create a user account that will be stored in a MySQL database.
You can also remind your password on email.
Tools and technologies used for the application:
- Java
- JavaServer Faces
- Primefaces
- MySQL
- Hibernate
- JavaMail API
Check-out source code of maven project on
GitHub.


The larger this value, the slower running time, but the probability to get short code would be increased.


Custom element Docking represents a widget which enables you to manage and layout multiple windows on a web page.
Date and Time
Sunny
Mo: 23 C
To 25 C
We: 27 C
News
World
Local
Sports
Microsoft is set to get a little more pushy ensuring
you have an up-to-date browser and will automatically update Internet Explorer...
(BBC)
The High Court has dismissed a challenge to laws that
require immigrant spouses to be able to speak English in order to live in the UK...
(BBC)
British number one Elena Baltacha says Judy Murray is
a "fantastic" appointment as Great Britain's new Fed Cup captain... (BBC)
Zodiac
Leo
Individuals born under the zodiac sign of Leo are very
good looking and have a healthy physique, with a broad forehead. Leo are very intelligent,
extremely courageous, love their freedom and live by their own rules. Indulgence
and extravagance is like second nature to them and they love to...


Simulation of our Solar System
*go back to simulation
What is it?
In this program we simulate the motion of 22 celestial objects in our solar
system. This includes the Sun, planets and some of their natural satellites.
The initial position and velocity data (Ephemeris) are being loaded from
NASA's HORIZONS telnet server. You can visit the
web interface of this
service to get an idea what that is. After initial positions are loaded,
a runge-kutta-4 integrator is used to solve the differential equation of
motion, Newton's universal gravitational law. Here is the overview of the
features:
Physical Background
Newton's universal gravitational law between celestial bodies \( i \) and \( j \)
can be written as follows:
\[ \vec{F}_{ij} = G \frac{ m_i m_j (\vec{x}_j - \vec{x}_i) }{
|\vec{x}_j - \vec{x}_i|^3}. \]
Hier \( \vec{F}_{ij} \) is the force on the body \( i \) applied by \( j \).
\( G=6.67\times 10^{-11} m^3 kg^{-1}s^{-2} \) is the gravitational constant.
\( m_i \) and \( \vec{x}_i \) are the mass and position vector of the body i respectively.
Summing over index \( j \) would give the total force on the body \( i \):
\[
\vec{F}_{i} = \sum\limits_{j=1}^N G \frac{ m_i m_j (\vec{x}_j - \vec{x}_i) }{
|\vec{x}_j - \vec{x}_i|^3}.
\]
\( N \) is the number of celestial bodies in the simulation, hence the name N-body simulation.
Using Newton's second law \( \vec{F} = m \vec{a} \) and writing acceleration as the second
derivative of the position vector \( \vec{a} = \ddot{\vec{x}} \), we can rewrite the gravitation law
as follows:
\[
m_i\ddot{\vec{x}}_{i} = \sum\limits_{j=1}^N G \frac{ m_i m_j (\vec{x}_j - \vec{x}_i) }{
|\vec{x}_j - \vec{x}_i|^3}.
\]
This is a second order
ordinary differential equation (ODE):
\[
\ddot{\vec{x}} = f(t, \vec{x}).
\]
One can rewrite a second order ODE as a first order ODE as follows:
$$
\begin{align}
\vec{y} &= \left( \vec{x}, \dot{\vec{x}} \right), \\
\dot{\vec{y}} &= \left( \dot{\vec{x}}, f(t, \vec{x}) \right),\\
\dot{\vec{y}} &= \tilde{f}(t, \vec{y}).
\end{align}
$$
Numerical Integrators
This particular type of ODE we are dealing with in the N-body-simulation is called
initial value problem. There are many mathematical methods to solve initial value
problems numerically. One of the simplest ones is the
euler method. It is an iterative
solution, where one starts at the given initial values \( \vec{y}_0 \) at \( t_0 \) and calculate the \( n \)-th
solution as follows:
\[
\vec{y}_n = \vec{y}_{n-1} + h \tilde{f}(t_{n-1}, \vec{y}_{n-1}),
\]
where \( h \) is the time step size: \( t_n = t_{n-1} + h \).
The euler method gives reasonable numerical approximations to the solutions of
the ODEs when the step size \( h \) is small enough. The
runge-kutta algorithms
are slightly more complicated. But they deliver better results than euler method for the same stepsize.
In our program one can change the integrator used by the physics engine during runtime.
Simulation
Simulating N-body-problem means solving the ODE of the problem in the runtime. Our program aims to call 30
physics ticks per second. In a physics tick the next step of the solution for all bodies is calculated.
One can change the speed of the time progress in the simulation simple by changing the step size \( h \).
This feature is also implemented in our program. Though for some speeds the step size is so big, that the simulation
becomes unstable, e.g. jupiters and saturns satellites jump around. To prevent this we increased the
number of physics ticks per second for high simulation speeds, which, sadly, resulted in the performance drop.
Object Trajectories
From the start of the simulation position vectors of the celestial bodies in every physics frame is saved and
the array of this points are visualized in form of a trajectory. The number of the points saved in the trajectory
is fixed to be 200. For slower simulation speeds the trajectory seems to be really short.
Adding New Bodies To The System
Clicking the button Create Body will pause the simulation and allow placing new celestial objects into our solar
system. We suggest to play around with this feature to see, e.g. what happens if we add another sun between
Earth and Mars. A mouse drag with right mouse button will place the body at the start point of the drag and allow to
determine the direction and magnitude of the speed vector according the drag end position. For now it is only possible
to place new bodies on the ecliptical plane. You can add custom name
and change mass and radius of the new body at the top of the screen.


{% extends "global/Base.html" %} {% load staticfiles otree_tags %} {% block title %} Part 3 {% endblock %} {% block content %}
For the final part of today’s experiment, you are asked to complete three short tasks.
First, you will complete the Earnings Task from before. However, this time you will play against the clock. Your earned points will be directly converted into tokens. The number of tokens you earn thus depends solely on your own performance. The task will be the same for everyone.
Secondly, you will be asked to decide on a bonus for a randomly matched participant in the lab. The level of this bonus will be 200 tokens or 600 tokens. The computer will randomly select one participant from the lab session to receive the bonus that was chosen by their match. They will not know who chose the level of their bonus. The lottery outcome is revealed at the end of the experiment.
Finally, you will be asked to complete a several survey questions. After the survey, you will find out your total payoff from the experiment.
The Earnings Task will start on the next screen.
{% endblock %}


{% extends "faq_base.html" %} {% block content %}
{{DOMAIN_NAME}} is a remittance transfer service built by Redcore Interactive that offers real-time debit / credit card to mobile-money transfers from all over the world to registered mobile-money users in Uganda. Remit’s advantage is that it is the fastest, cheapest, and safest way for Uganda’s diaspora to send money home.
Africans in the Diaspora send up to $60 billion annually to the continent. At an average cost per transaction of 11.89%, Africans are spending more than $7 billion in fees.
We think we can do better. So we built {{DOMAIN_NAME}}, the fastest, cheapest, and secure way to send money home directly to a mobile wallet. We are currently in Uganda, and soon expanding to the rest of Africa. Remit is a product of Redcore Interactive.


Welcome! My name is Rachael Homann, a DePaul Alumn with a passion for PR and Advertising. Born in the south and raised in the north, I've been calling Chicago home for a decade.
I'm a freelance copywriter by day and an up-and-coming full-stack developer by night.
I encourage you to give my works a look over, and hopefully I'll be hearing from you soon.


About Me
Sumant Bagade
21, Leo, Young as the Morning & Old as the Sea
Born and Brought up in Maharashtra. Currently pursuing Integrated M.Tech in IT(4th year) at IIITM Gwalior. How I think is shaped by my life’s experiences. One thing that defines me is that I love to learn. I get excited about new tools and technologies. I sign up for more letters on email than I could read and sign up for more online courses than I can actually finish. The things about watch people do great things; learn new concept is something what truly excites me. This is an 'About Me' page. Some things that define me - Music, Football, Reading, Quotes and Notes, Food, Tech and Rest....
Music
Because Music is food for soul. Avid music listener; Some of the many listenings which I can refer- Coldplay,Linkin Park, Passenger, Owl City,Taylor Swift, Kodaline , Eminem, The Script etc.
Television
Some good and rich content is always good for your mind. Following Suits, Big Bang Theory , Silicon Valley, House of Cards, Mr. Robot
Liverpool FC
The second most successful English club. Because Blood is red for a reason.The club of passion, loyalty and legends. One of the most decorated Football Club Y.N.W.A


BITAND
computes an AND
operation on the bits of two nonnegative integers, and returns an integer. This function is commonly used with the DECODE
function.
An AND
operation compares two bit values. If both values are 1, the operator returns 1. If one or both values are 0, the operator returns 0.
NUMBER
BITAND(expr1, expr2)
expr1
and expr2
are numeric expressions for nonnegative integers.
BITAND(7, 29)
returns the value 5
.
The binary value of 7
is 111
and of 29
is 11101
. A bit-by-bit comparison generates the binary value 101
, which is decimal 5
.


Learn Scheme For Max¶
- Introduction
- Getting Started
- Part 1 - Scheme Basics
- Basic syntax
- Variables
- Functions
- Output in Scheme For Max
- Basic types
- Lists - an introduction
- Evaluation and quoting
- Keywords
- Lists, in more depth
- Optional function arguments
- Vectors
- Hash-Tables
- Branching with if
- Grouping statements with begin
- Testing equality
- Logical operators: and, or, not
- Branching with cond
- Scopes with the let statement
- Looping
- Looping with recursion
- Recursion with named let
- Looping with while
- Conclusion of Part 1


lli - directly execute programs from LLVM bitcode
lli [options] [filename] [program args]
lli directly executes programs in LLVM bitcode format. It takes a program in LLVM bitcode format and executes it using a just-in-time compiler, if one is available for the current architecture, or an interpreter. lli takes all of the same code generator options as llc, but they are only effective when lli is using the just-in-time compiler.
If filename is not specified, then lli reads the LLVM bitcode for the program from standard input.
The optional args specified on the command line are passed to the program as arguments.
Override the argv[0]
value passed into the executing program.
If set to true, use the interpreter even if a just-in-time compiler is available for this architecture. Defaults to false.
Print a summary of command line options.
Causes lli to load the plugin (shared object) named pluginfilename and use it for optimization.
Print statistics from the code-generation passes. This is only meaningful for the just-in-time compiler, at present.
Record the amount of time needed for each code-generation pass and print it to standard error.
Print out the version of lli and exit without doing anything else.
Override the target triple specified in the input bitcode file with the specified string. This may result in a crash if you pick an architecture which is not compatible with the current system.
Specify the architecture for which to generate assembly, overriding the target encoded in the bitcode file. See the output of llc -help for a list of valid architectures. By default this is inferred from the target triple or autodetected to the current architecture.
Specify a specific chip in the current architecture to generate code for. By default this is inferred from the target triple and autodetected to the current architecture. For a list of available CPUs, use: llvm-as < /dev/null | llc -march=xyz -mcpu=help
Override or control specific attributes of the target, such as whether SIMD operations are enabled or not. The default set of attributes is set by the current CPU. For a list of available attributes, use: llvm-as < /dev/null | llc -march=xyz -mattr=help
Disable optimizations that may increase floating point precision.
Enable optimizations that assume no Inf values.
Enable optimizations that assume no NAN values.
Causes lli to enable optimizations that may decrease floating point precision.
Causes lli to generate software floating point library calls instead of equivalent hardware instructions.
Choose the code model from:
default: Target default code model small: Small code model kernel: Kernel code model medium: Medium code model large: Large code model
Disable scheduling after register allocation.
Disable fusing of spill code into instructions.
Make the -lowerinvoke pass insert expensive, but correct, EH code.
Exception handling should be enabled in the just-in-time compiler.
Coalesce copies (default=true).
Instruction schedulers available (before register allocation):
=default: Best scheduler for the target =none: No scheduling: breadth first sequencing =simple: Simple two pass scheduling: minimize critical path and maximize processor utilization =simple-noitin: Simple two pass scheduling: Same as simple except using generic latency =list-burr: Bottom-up register reduction list scheduling =list-tdrr: Top-down register reduction list scheduling =list-td: Top-down list scheduler -print-machineinstrs - Print generated machine code
Register allocator to use (default=linearscan)
=bigblock: Big-block register allocator =linearscan: linear scan register allocator =local - local register allocator =simple: simple register allocator
Choose relocation model from:
=default: Target default relocation model =static: Non-relocatable code =pic - Fully relocatable, position independent code =dynamic-no-pic: Relocatable external references, non-relocatable code
Spiller to use (default=local)
=simple: simple spiller =local: local spiller
Choose style of code to emit from X86 backend:
=att: Emit AT&T-style assembly =intel: Emit Intel-style assembly
If lli fails to load the program, it will exit with an exit code of 1. Otherwise, it will return the exit code of the program it executes.
llc
Maintained by the LLVM Team (http://llvm.org/).


Xander Roper's Portfolio
I am 2nd year Computer Science major at Hampton University from Hampton, Virginia! I'm passionate about local church work, healthy eating, and forming relationships with new people.
GitHub: https://github.com/AlexanderRoper/
LinkedIn: https://www.linkedin.com/in/xanderroper/
Click this button to see the server's greeting.
Click here to see the server response directly.


The students put in a lot of effort this semester and have created a lot of great work. This showcase features ome of the final projects created by students this semester!
Students are introduced to graphics and illustration programs in the computer environment. Students also learn skills and production techniques which help to design effective interfaces for websites, mobile websites and mobile applications. Focus is placed on hands-on learning of software, such as Adobe Photoshop and Illustrator. Basic design concepts are covered within the context of becoming productive with the software packages.
{% include snippets/link-external.liquid link="https://brightspace.algonquincollege.com/d2l/common/dialogs/quickLink/quickLink.d2l?ou=332375&type=lti&rcode=5D0A62E3-9FCD-4186-8FE2-4DAA73394FE0-2477272&srcou=6606" text="View full course outline" class="scale-5 btn--gradient push content-sec-1" wrapped=true %} {% include snippets/link-external.liquid link="https://brightspace.algonquincollege.com/d2l/common/dialogs/quickLink/quickLink.d2l?ou=317259&type=lti&rcode=5D0A62E3-9FCD-4186-8FE2-4DAA73394FE0-2477272&srcou=6606" text="View full course outline" class="scale-5 btn--gradient push content-sec-2" wrapped=true %}All of course content for this semester can be found on this website. However, exercise & assignment submissions, as well as discussion boards and quizzes will still take place on Brightspace.
{% include snippets/link-external.liquid link="https://brightspace.algonquincollege.com/d2l/home/332375" text="View course on Brightspace" class="scale-5 btn--primary content-sec-1" aria-label="View Brightspace page for section 300" wrapped=true %} {% include snippets/link-external.liquid link="https://brightspace.algonquincollege.com/d2l/home/317259" text="View course on Brightspace" class="scale-5 btn--primary content-sec-2" aria-label="View Brightspace page for section 310" wrapped=true %}Adam is an Interaction Designer at {% include snippets/link-external.liquid text="Spruce Creative Inc" link="https://sprucecreative.ca" %} specializing in website design, development, and user experience. A graduate of Algonquin College's {% include snippets/link-external.liquid text="Graphic Design" link="https://algonquindesign.ca" %} program, Adam has experience in a wide variety of design, development, branding, and visual communication disciplines.


An asortment of things on values
Rather late.
02014-12-14
Cooperation is really important to me. From a very early age I realized how peculiar the societies we live in are compared to the rest of the universe. I need walk no more than 10 meters to get to a little metal protrusion hooked up by someone I'll never meet that when I fiddle with for a fraction of a second, will rapidly pour out more water than I'll need for a week. And this water has an astonishingly low chance of giving me any kind of disease, because other people I'll never meet have set up implementations of chemical operations to clean it, chemical operations developed by yet more people neither I, nor any of the previously mentioned people, will ever meet. All of society is held up by explicit and implicit cooperation.
I think I tend to edit out the times I was actually useful, that or I don't get asked for advice very often. The two that come to mind are when a first year asked for help on a linear algebra assignment, and it invoked a concept that I have never seen used in physics, so I was no use there, and another when what I must assume was a new faculty member asked how to use the coffee machine in the lounge, wherein I gave a quick demonstration which hopefully resolved everything clearly.
Scientists are rarely esteemed for their compassion or affection, their courage, or even their creativity. It changes from time to time and person to person, but scientists are very much one of the Others that people tend to lump into some box that describes that entire person, and when things happen outside that box, it is remarked on as odd, and then ignored. These stereotypes can hurt and I don't know if being aware of stereotype threats is helping, I've only had a week to meditate on and experience them. I'm hoping that it's useful, but there are lots of pyschological problems that are easy to spot, but hard to over power.