diff --git a/ServerCore/Pages/EventSpecific/Encodings.cshtml b/ServerCore/Pages/EventSpecific/Encodings.cshtml new file mode 100644 index 00000000..28f5de1c --- /dev/null +++ b/ServerCore/Pages/EventSpecific/Encodings.cshtml @@ -0,0 +1,10 @@ +@page "/{eventId}/{eventRole}/encodings" +@model ServerCore.Pages.EventSpecific.EncodingsModel +@{ + ViewData["Title"] = "Encodings"; + ViewData["AdminRoute"] = "/EventSpecific/Encodings"; + ViewData["AuthorRoute"] = "/EventSpecific/Encodings"; + ViewData["PlayRoute"] = "/EventSpecific/Encodings"; +} + + \ No newline at end of file diff --git a/ServerCore/Pages/EventSpecific/Encodings.cshtml.cs b/ServerCore/Pages/EventSpecific/Encodings.cshtml.cs new file mode 100644 index 00000000..43bd9acf --- /dev/null +++ b/ServerCore/Pages/EventSpecific/Encodings.cshtml.cs @@ -0,0 +1,16 @@ +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Identity; +using ServerCore.DataModel; +using ServerCore.ModelBases; + +namespace ServerCore.Pages.EventSpecific +{ + [AllowAnonymous] + public class EncodingsModel : EventSpecificPageModel + { + public EncodingsModel(PuzzleServerContext serverContext, UserManager userManager) : base(serverContext, userManager) + { + + } + } +} \ No newline at end of file diff --git a/ServerCore/Pages/EventSpecific/Tools.cshtml b/ServerCore/Pages/EventSpecific/Tools.cshtml new file mode 100644 index 00000000..c2bdedd6 --- /dev/null +++ b/ServerCore/Pages/EventSpecific/Tools.cshtml @@ -0,0 +1,10 @@ +@page "/{eventId}/{eventRole}/tools" +@model ServerCore.Pages.EventSpecific.FAQModel +@{ + ViewData["Title"] = "Tools"; + ViewData["AdminRoute"] = "/EventSpecific/Tools"; + ViewData["AuthorRoute"] = "/EventSpecific/Tools"; + ViewData["PlayRoute"] = "/EventSpecific/Tools"; +} + + \ No newline at end of file diff --git a/ServerCore/Pages/EventSpecific/Tools.cshtml.cs b/ServerCore/Pages/EventSpecific/Tools.cshtml.cs new file mode 100644 index 00000000..7e36c1f7 --- /dev/null +++ b/ServerCore/Pages/EventSpecific/Tools.cshtml.cs @@ -0,0 +1,16 @@ +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Identity; +using ServerCore.DataModel; +using ServerCore.ModelBases; + +namespace ServerCore.Pages.EventSpecific +{ + [AllowAnonymous] + public class ToolsModel : EventSpecificPageModel + { + public ToolsModel(PuzzleServerContext serverContext, UserManager userManager) : base(serverContext, userManager) + { + + } + } +} \ No newline at end of file diff --git a/ServerCore/Pages/Resources/Encodings.cshtml b/ServerCore/Pages/Resources/Encodings.cshtml new file mode 100644 index 00000000..39e820dc --- /dev/null +++ b/ServerCore/Pages/Resources/Encodings.cshtml @@ -0,0 +1,3 @@ +@page + + \ No newline at end of file diff --git a/ServerCore/Pages/Resources/EncodingsPartial.cshtml b/ServerCore/Pages/Resources/EncodingsPartial.cshtml new file mode 100644 index 00000000..e71fd5af --- /dev/null +++ b/ServerCore/Pages/Resources/EncodingsPartial.cshtml @@ -0,0 +1,136 @@ + +
+

Sample Encodings

+

+ Over time, some encoding schemes have been used so frequently that they've + formed a kind of basic vocabulary for Puzzlehunters. Here are some things + to look out for as you try to determine how to extract a final answer. +

+ +

Number to Letter Conversion

+

+ Numbers between 1 and 26 often represent indices into the alphabet, where + 1=A, 2=B, and so on through 26=Z. If a puzzle solved to the following list + of values: 3, 15, 18, 18, 5, 3, 20, you would translate that into the final + answer CORRECT. If numbers are outside this range, sometimes you need to + bring them into that range via a mod 26 operation: divide the number by 26 + and use the remainder, treating 0 as 26. +

+ + +

ASCII to Letter Conversion

+

+ Numbers in the 65-90 range often represent the ASCII code values for the + alphabet, where 65=A and 90=Z. 97-122 can represent lower-case ASCII + codes. You can see it here +

+ +

Indexing

+

+ Another extremely common use of numbers in puzzles is as an index into other + text. A clue with a number 5 next to it might mean that after solving the + clue, the important thing is the fifth letter of the answer. Typically, a + puzzle using indexing will require you to index multiple times, often using + a different answer and number each tim e, to extract a series of letters + which can then be read as something meaningful. +

+ +

Implied Indexing

+

+ If the puzzle resolves to a list of answers and there is no numeric data + to suggest indexing, the answer may be an acrostic, which is essentially an + implied index of 1 for each answer. Try reading only the first letters of + the answers. Another common implied index is the "diagonal read"-an index of + 1 for the first answer, 2 for the second, 3 for the third, and so forth. +

+ +

Binary

+

+ A stream of data with only two different values-black and white, true and + false, dead or alive, 1 or 0-often represents binary values. The most useful + binary values are 5-bits long, since that's the smallest number of bits + required to represent the numbers 1-26 (which can in turn be converted into + the letters A-Z). +

+ +

Morse Code

+

+ The other choice for a stream of binary data is Morse code. Data with + three different values can also be Morse, with the third value used for + letter breaks. A puzzle might be encode Morse more visually, by containing + dots and dashes in the puzzle (for example, as the stripes or emblems on + national flags). +

+ + +

Semaphore

+

+ Semaphore is a flag signaling system in which the alphabet is represented + by holding two flags at various angles from the body. In puzzles, if a data + stream consists of compass directions, angles, or lines emanating from a + common center, it might be semaphore. +

+ + +

Braille

+

+ Braille is a system of raised dots used to allow non-sighted people to + read by touch. Each letter in the Braille alphabet is composed of a 2x3 grid + of dots, some of which are "on" and some "off". Any time your data can be + subdivided evenly into a 2x3 grid, consider trying to treat it as + Braille. +

+ + +

Nautical Signal Flags

+

+ The system of international maritime signal flags is a way of representing + every number and every letter of the alphabet in signals to or from ships. + Each flag features a simple pattern in a palette of five colors: red, white, + blue, black, and yellow. +

+ + +

NATO Phonetic Alphabet

+

+ The NATO alphabet assigns code words to letters of the alphabet (ALPHA, + BRAVO, CHARLIE, etc) so that critical combinations of letters can be + pronounced and understood via radio or telephone. +

+ +

Pigpen Cipher

+

The Pigpen Cipher, developed by the Freemasons for secret communication, encodes each letter as a symbol. The encoding is described by the grids below: each letter is encoded by replacing it with the symbol corresponding to the part of the grid that contains the letter.

+ +

For example:

+ + +

Rainbow Order

+

Rainbow order is the order that colors appear in the color spectrum. A common mnemonic to remember the order is Roy G. Biv: Red, Orange, Yellow, Green, Blue, Indigo, Violet.

+ +

Color Wheel

+

When color pigments are combined, new colors are created.

+ + +

Resistor Color Codes

+

Electrical resistors use color bands on them to indicate their resistance values. Here is a good reference.

+ +

Base Encodings

+

+ Base 10 encoding is used most often, but you'll frequently see other base encodings in puzzles. Base 2, 8, and 16 are common. + An example: suppose you have the number or a representation of the number "00010". This is 10 in decimal (Base 10), 16 in hexadecimal (Base 16), 8 in octal (Base 8), and 2 in binary (Base 2). Remember, the value of the number may map to another encoding, for example "01010" (Base 2) --> "10" (Base 10) --> 'J', the 10th letter of the alphabet. + + + + + + + + +
Base 2Base 8Base 10Letter
00001 00001 1 A
00101 00005 5 E
01001 00011 9 I
01111 00017 15 O
10101 00025 21 U
+ +

+ + + +
+ diff --git a/ServerCore/Pages/Resources/Tools.cshtml b/ServerCore/Pages/Resources/Tools.cshtml new file mode 100644 index 00000000..86fb6afd --- /dev/null +++ b/ServerCore/Pages/Resources/Tools.cshtml @@ -0,0 +1,3 @@ +@page + + diff --git a/ServerCore/Pages/Resources/ToolsPartial.cshtml b/ServerCore/Pages/Resources/ToolsPartial.cshtml new file mode 100644 index 00000000..b80c3b7a --- /dev/null +++ b/ServerCore/Pages/Resources/ToolsPartial.cshtml @@ -0,0 +1,70 @@ + +
+

Puzzle Solving Tools

+ +

+ If you're wondering how the top teams are able to solve so many puzzles so + quickly, part of the answer is that they're probably not relying solely on + their brainpower. Puzzles in the Puzzlehunt often involve anagramming, + deleting, or otherwise manipulating letters and words to discover new words. + This is a task well-suited to computers. Since we can't effectively ban the + use of such tools, the least we can do is share the locations of some of them + to help level the playing field. +

+ +

The Electronic Alveary (TEA)

+

+ TEA (The Electronic Alveary) allows you to search word lists for words + that match a pattern. TEA's pattern language supports simple template and + anagram searches, but also has the flexibility to perform many more + complicated queries. Check the Quick Reference page on the help menu to see + the kinds of things TEA can do for you. Typing ;STIN for example will product + all anagrams of the letters STIN (ISN'T, NITS, TINS, SNIT). +

+ +

LeXpert

+

+ LeXpert is a software program designed to assist word game enthusiasts in + expanding their knowledge of words. It offers more than 3500 word lists and + different ways of viewing these lists. Customized lists can be created based on + patterns, cryptograms, anagrams, number of vowels, etc. It offers similar + functionality to TEA. +

+ +

Cryptogram Helper

+

+ Cryptogram solver which not only provides a helpful interface for + replacing letters in a cryptogram, but can also solve the cryptogram for you. + You don't really think we'd give you any cryptograms that can be solved this + way, do you? +

+ +

One Across

+

Database of crossword clues.

+ +

Cryptic Crossword Solving Hints

+

+ Detailed hints for solving cryptic crossword, including explanations and + samples of all the major clue types. +

+ +

+ + National Puzzlers League Base Finding Tools + +

+

Search tools for all kinds of word forms, including many you never knew existed.

+ +

Internet Movie Database

+

Did we really need to tell you about this one?

+ +

Puzz Azz

+

various puzzle solving techinques.

+ +

Geek Card Plus

+

A Windows Phone App written by one of our regular Puzzlehunt Authors!

+ +

Zyzzyva

+

An app on Windows Phone, Android, and iOS. Zyzzyva is the word judge program of choice at major events such as the North American SCRABBLE Championship, the North American School SCRABBLE Championship, the Canadian National SCRABBLE Championship and the World SCRABBLE Championship, as well as at smaller events, clubs and gatherings around the world.

+
+ diff --git a/ServerCore/Pages/Shared/_NavigationPartial.cshtml b/ServerCore/Pages/Shared/_EventNavigationPartial.cshtml similarity index 88% rename from ServerCore/Pages/Shared/_NavigationPartial.cshtml rename to ServerCore/Pages/Shared/_EventNavigationPartial.cshtml index 80c74a12..854347a0 100644 --- a/ServerCore/Pages/Shared/_NavigationPartial.cshtml +++ b/ServerCore/Pages/Shared/_EventNavigationPartial.cshtml @@ -1,7 +1,8 @@ @{ - var Event = (Model as ServerCore.ModelBases.EventSpecificPageModel)?.Event; - var EventRole = (Model as ServerCore.ModelBases.EventSpecificPageModel)?.EventRole; - var IsRegistered = (Model as ServerCore.ModelBases.EventSpecificPageModel)?.IsRegisteredUser().Result ?? false; + var eventPage = Model as ServerCore.ModelBases.EventSpecificPageModel; + var Event = eventPage?.Event; + var EventRole = eventPage?.EventRole; + var IsRegistered = eventPage?.IsRegisteredUser().Result ?? false; } @@ -49,6 +50,10 @@
  • Rules
  • FAQ
  • +
  • +
  • Encodings
  • +
  • +
  • Tools
  • @@ -105,6 +110,10 @@
  • Rules
  • FAQ
  • +
  • +
  • Encodings
  • +
  • +
  • Tools
  • @@ -159,6 +168,10 @@
  • Rules
  • FAQ
  • +
  • +
  • Encodings
  • +
  • +
  • Tools
  • @@ -201,6 +214,10 @@
  • Rules
  • FAQ
  • +
  • +
  • Encodings
  • +
  • +
  • Tools
  • diff --git a/ServerCore/Pages/Shared/_Layout.cshtml b/ServerCore/Pages/Shared/_Layout.cshtml index c9eb588c..3bf66b41 100644 --- a/ServerCore/Pages/Shared/_Layout.cshtml +++ b/ServerCore/Pages/Shared/_Layout.cshtml @@ -131,8 +131,8 @@
  • FAQ
  • Rules
  • } -
  • Encodings
  • -
  • Tools
  • +
  • Encodings
  • +
  • Tools
  • My Events
  • @if (Event != null) @@ -153,45 +153,48 @@ } - - - + else + { + + + + } -
    - @RenderBody() -
    - -
    +
    + @RenderBody() +
    + +
    - - - - - - - - - - + + + + + + + + + + - @RenderSection("Scripts", required: false) - + @RenderSection("Scripts", required: false) + diff --git a/ServerCore/ServerCore.csproj b/ServerCore/ServerCore.csproj index 75fa0a21..0a669c79 100644 --- a/ServerCore/ServerCore.csproj +++ b/ServerCore/ServerCore.csproj @@ -56,7 +56,7 @@ $(IncludeRazorContentInPack) - + $(IncludeRazorContentInPack) diff --git a/ServerCore/wwwroot/images/AlphaNumbers.png b/ServerCore/wwwroot/images/AlphaNumbers.png new file mode 100644 index 00000000..cb580e28 Binary files /dev/null and b/ServerCore/wwwroot/images/AlphaNumbers.png differ diff --git a/ServerCore/wwwroot/images/Braille.gif b/ServerCore/wwwroot/images/Braille.gif new file mode 100644 index 00000000..587f7a59 Binary files /dev/null and b/ServerCore/wwwroot/images/Braille.gif differ diff --git a/ServerCore/wwwroot/images/ColorMix.png b/ServerCore/wwwroot/images/ColorMix.png new file mode 100644 index 00000000..1e643046 Binary files /dev/null and b/ServerCore/wwwroot/images/ColorMix.png differ diff --git a/ServerCore/wwwroot/images/MaritimeSignalFlags.png b/ServerCore/wwwroot/images/MaritimeSignalFlags.png new file mode 100644 index 00000000..e5c25cfd Binary files /dev/null and b/ServerCore/wwwroot/images/MaritimeSignalFlags.png differ diff --git a/ServerCore/wwwroot/images/MorseCode.png b/ServerCore/wwwroot/images/MorseCode.png new file mode 100644 index 00000000..b6d43265 Binary files /dev/null and b/ServerCore/wwwroot/images/MorseCode.png differ diff --git a/ServerCore/wwwroot/images/Pigpen.gif b/ServerCore/wwwroot/images/Pigpen.gif new file mode 100644 index 00000000..df360ba9 Binary files /dev/null and b/ServerCore/wwwroot/images/Pigpen.gif differ diff --git a/ServerCore/wwwroot/images/PigpenExamples.gif b/ServerCore/wwwroot/images/PigpenExamples.gif new file mode 100644 index 00000000..dda13508 Binary files /dev/null and b/ServerCore/wwwroot/images/PigpenExamples.gif differ diff --git a/ServerCore/wwwroot/images/Semaphore.png b/ServerCore/wwwroot/images/Semaphore.png new file mode 100644 index 00000000..69d2e902 Binary files /dev/null and b/ServerCore/wwwroot/images/Semaphore.png differ