diff --git a/1stdraft.html b/1stdraft.html new file mode 100644 index 00000000..95e8717d --- /dev/null +++ b/1stdraft.html @@ -0,0 +1,38 @@ + + + + +
+ +
-### Overview
+Game Link: https://matthewfrancisong.github.io/project-1/
-Let's start out with something fun - **a game!**
+## Table of Contents
-Everyone will get a chance to **be creative**, and work through some really **tough programming challenges** – since you've already gotten your feet wet with Tic Tac Toe, it's up to you to come up with a fun and interesting game to build.
+1. How to play
+2. Why Snakes & Ladders
+3. My 7 days plan
+4. Game Documentation
+5. References
-**You will be working individually for this project**, but we'll be guiding you along the process and helping as you go. Show us what you've got!
----
+## How to Play
-### Technical Requirements
+Goal: Reach above and beyond square numbered 100 at the top-left hand corner of the board.
-Your app must:
+Players begin at square number 1. Each player takes a turn to roll a dice and move them along the numbered squares. If a player lands on a square which has the base of a ladder, they will advance to the square that sits on the top of the ladder.
-* **Render a game in the browser**
-* **Any number of players** will be okay, switch turns will be great
-* **Design logic for winning** & **visually display which player won**
-* **Include separate HTML / CSS / JavaScript files**
-* Stick with **KISS (Keep It Simple Stupid)** and **DRY (Don't Repeat Yourself)** principles
-* Use **Javascript** for **DOM manipulation**, jQuery is not compulsory
-* **Deploy your game online**, where the rest of the world can access it
-* Use **semantic markup** for HTML and CSS (adhere to best practices)
-* **No canvas** project will be accepted, only HTML5 + CSS3 + JS please
+Similarly, if a player lands on a square which has the head of a snake, it would drop to the tail of the snake.
----
+## Why Snakes & Ladders
-### Necessary Deliverables
+When I was young, I played a lot. Everything from board games, donkey cards to remote-controlled cars. I thought how wonderful would it be to design the game that I actually played then. It was meaningful.
-* A **working game, built by you**, hosted somewhere on the internet
-* A **link to your hosted working game** in the URL section of your GitHub repo
-* A **git repository hosted on GitHub**, with a link to your hosted game, and frequent commits dating back to the very beginning of the project
-* **A ``readme.md`` file** with explanations of the technologies used, the approach taken, installation instructions, unsolved problems, etc.
+Some of the animated characters in this game brought me back to happy memories where I remembered slogging thousands of hours. It was all fun. Wonderful memories to recollect and one day share with my family.
+
+
+## 7 days Plan
+
+
+#### 29th Sept
+##### Day 1: (Friday)
+
+1. Flow-chart
+2. Pseudo Codes
+
+
+
+#### 30th Sept
+##### Day 2 & 3 (Weekend)
+
+1. Create 16 grid MVP (Minimal Viable Game)
+
+ * Logic to switch players
+ * Win-Game condition. Create 2 markers. if >16, win game
+ * Reset Function
+ * Snakes & Ladders Logic
+
+2. Make game functional
+
+
+
+#### 2nd Oct
+##### Day 4 (Monday)
+
+1. Create actual game. (100 Grid)
+
+Deliverables:
+1. Jquery 100 Grid
+ * Use JQuery to create 100 grids instead of using html.
+ * Use for-loop to give each individual grid an ID.
+ * Use modular function to alternate grid background color.
+ * Reverse rows so that board number flows bottoms-up in a zig-zag fashion.
+2. WhoWon() , Reset() , rollDice() Functions.
+
+
+Challenges:
+ * Refactoring html 16grid into Jquery nested loop function.
+ * Create a div instead of '| ') // create column
+ $column.css({ 'width': '50px', 'height': '50px'})
+ $column.attr('id', id--) // give each individual column a number
+
+ $column.attr('id') % 2 === 0 ? $column.css('backgroundColor', '#ffff00') : $column.css('backgroundColor', 'white') // giving grid bg colors.
+
+ // reverse the numbering for even or odd rows.
+ $row.each(function() {
+ $(this).attr('class') % 2 === 0 ? $row.append($column) : $row.prepend($column)
+ })
+ $column.html(id + 1).addClass('cell')
+ }
+ $tbl.append($row)
+ }
+ }
+ createTable()
+ startPosition()
+
+ // Using Array to input Snakes & Ladders
+ var painAndPleasureArray = [0, 'ladder0', 0, 'ladder1', 0, 0, 'snake0', 0, 'ladder2', 0, // row 1
+ 'snake1', 0, 'ladder3', 'ladder1', 0, 0, 'snake0', 'ladder0', 'snake3', 'ladder4', // row 2
+ 0, 0, 0, 'snake5', 0, 0, 'ladder3', 'ladder5', 'snake1', 0, // row 3
+ 'ladder2', 0, 0, 'snake2', 0, 0, 0, 'ladder4', 0, 'ladder6', // row 4
+ 0, 0, 'snake4', 0, 0, 0, 0, 0, 0, 0, // row 5
+ 'ladder7', 0, 0, 'snake2', 0, 0, 0, 0, 'ladder6', 0, // row 6
+ 0, 'snake3', 'ladder8', 'snake4', 0, 0, 'ladder7', 0, 0, 0, // row 7
+ 'ladder9', 0, 'snake6', 0, 'snake7', 0, 0, 'snake8', 0, 0, // row 8
+ 'ladder8', 0, 0, 'ladder5', 0, 0, 'snake5', 0, 0, 0, // row 9
+ 'ladder9', 0, 'snake6', 0, 'snake7', 0, 0, 0, 'snake8', 0] // row 10
+
+// Player 1 Snakes & Ladders
+ function painOrPleasureP1 () {
+ var currentP1Index = totalStepsTakenByP1 - 1
+ painAndPleasureArray.forEach(function (element) {
+ // if length equal to 7, search for the next similar ladder word to find index
+ if (painAndPleasureArray[currentP1Index] === element && element.length === 7) {
+ totalStepsTakenByP1 = (painAndPleasureArray.indexOf(element, painAndPleasureArray.indexOf(element) + 1)) + 1
+ $player1.appendTo(`#${totalStepsTakenByP1}`)
+ // if length equal to 6, search for the next similar snake word to find index
+ } else if (painAndPleasureArray[currentP1Index] === element && element.length === 6) {
+ totalStepsTakenByP1 = (painAndPleasureArray.indexOf(element, painAndPleasureArray.indexOf(element) - 1)) + 1
+ $player1.appendTo(`#${totalStepsTakenByP1}`)
+ } else { return totalStepsTakenByP1 }
+ })
+ }
+
+// Player 2 Snakes & Ladders
+ function painOrPleasureP2 () {
+ var currentP2Index = totalStepsTakenByP2 - 1
+ painAndPleasureArray.forEach(function (element) {
+ if (painAndPleasureArray[currentP2Index] === element && element.length === 7) {
+ totalStepsTakenByP2 = (painAndPleasureArray.indexOf(element, painAndPleasureArray.indexOf(element) + 1)) + 1
+ $player2.appendTo(`#${totalStepsTakenByP2}`)
+ } else if (painAndPleasureArray[currentP2Index] === element && element.length === 6) {
+ totalStepsTakenByP2 = (painAndPleasureArray.indexOf(element, painAndPleasureArray.indexOf(element) - 1)) + 1
+ $player2.appendTo(`#${totalStepsTakenByP2}`)
+ } else { return totalStepsTakenByP2 }
+ })
+ }
+})
diff --git a/doc/created.rid b/doc/created.rid
new file mode 100644
index 00000000..e69de29b
diff --git a/doc/css/fonts.css b/doc/css/fonts.css
new file mode 100644
index 00000000..57302b51
--- /dev/null
+++ b/doc/css/fonts.css
@@ -0,0 +1,167 @@
+/*
+ * Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/),
+ * with Reserved Font Name "Source". All Rights Reserved. Source is a
+ * trademark of Adobe Systems Incorporated in the United States and/or other
+ * countries.
+ *
+ * This Font Software is licensed under the SIL Open Font License, Version
+ * 1.1.
+ *
+ * This license is copied below, and is also available with a FAQ at:
+ * http://scripts.sil.org/OFL
+ */
+
+@font-face {
+ font-family: "Source Code Pro";
+ font-style: normal;
+ font-weight: 400;
+ src: local("Source Code Pro"),
+ local("SourceCodePro-Regular"),
+ url("../fonts/SourceCodePro-Regular.ttf") format("truetype");
+}
+
+@font-face {
+ font-family: "Source Code Pro";
+ font-style: normal;
+ font-weight: 700;
+ src: local("Source Code Pro Bold"),
+ local("SourceCodePro-Bold"),
+ url("../fonts/SourceCodePro-Bold.ttf") format("truetype");
+}
+
+/*
+ * Copyright (c) 2010, Łukasz Dziedzic (dziedzic@typoland.com),
+ * with Reserved Font Name Lato.
+ *
+ * This Font Software is licensed under the SIL Open Font License, Version
+ * 1.1.
+ *
+ * This license is copied below, and is also available with a FAQ at:
+ * http://scripts.sil.org/OFL
+ */
+
+@font-face {
+ font-family: "Lato";
+ font-style: normal;
+ font-weight: 300;
+ src: local("Lato Light"),
+ local("Lato-Light"),
+ url("../fonts/Lato-Light.ttf") format("truetype");
+}
+
+@font-face {
+ font-family: "Lato";
+ font-style: italic;
+ font-weight: 300;
+ src: local("Lato Light Italic"),
+ local("Lato-LightItalic"),
+ url("../fonts/Lato-LightItalic.ttf") format("truetype");
+}
+
+@font-face {
+ font-family: "Lato";
+ font-style: normal;
+ font-weight: 700;
+ src: local("Lato Regular"),
+ local("Lato-Regular"),
+ url("../fonts/Lato-Regular.ttf") format("truetype");
+}
+
+@font-face {
+ font-family: "Lato";
+ font-style: italic;
+ font-weight: 700;
+ src: local("Lato Italic"),
+ local("Lato-Italic"),
+ url("../fonts/Lato-RegularItalic.ttf") format("truetype");
+}
+
+/*
+ * -----------------------------------------------------------
+ * SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+ * -----------------------------------------------------------
+ *
+ * PREAMBLE
+ * The goals of the Open Font License (OFL) are to stimulate worldwide
+ * development of collaborative font projects, to support the font creation
+ * efforts of academic and linguistic communities, and to provide a free and
+ * open framework in which fonts may be shared and improved in partnership
+ * with others.
+ *
+ * The OFL allows the licensed fonts to be used, studied, modified and
+ * redistributed freely as long as they are not sold by themselves. The
+ * fonts, including any derivative works, can be bundled, embedded,
+ * redistributed and/or sold with any software provided that any reserved
+ * names are not used by derivative works. The fonts and derivatives,
+ * however, cannot be released under any other type of license. The
+ * requirement for fonts to remain under this license does not apply
+ * to any document created using the fonts or their derivatives.
+ *
+ * DEFINITIONS
+ * "Font Software" refers to the set of files released by the Copyright
+ * Holder(s) under this license and clearly marked as such. This may
+ * include source files, build scripts and documentation.
+ *
+ * "Reserved Font Name" refers to any names specified as such after the
+ * copyright statement(s).
+ *
+ * "Original Version" refers to the collection of Font Software components as
+ * distributed by the Copyright Holder(s).
+ *
+ * "Modified Version" refers to any derivative made by adding to, deleting,
+ * or substituting -- in part or in whole -- any of the components of the
+ * Original Version, by changing formats or by porting the Font Software to a
+ * new environment.
+ *
+ * "Author" refers to any designer, engineer, programmer, technical
+ * writer or other person who contributed to the Font Software.
+ *
+ * PERMISSION & CONDITIONS
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of the Font Software, to use, study, copy, merge, embed, modify,
+ * redistribute, and sell modified and unmodified copies of the Font
+ * Software, subject to the following conditions:
+ *
+ * 1) Neither the Font Software nor any of its individual components,
+ * in Original or Modified Versions, may be sold by itself.
+ *
+ * 2) Original or Modified Versions of the Font Software may be bundled,
+ * redistributed and/or sold with any software, provided that each copy
+ * contains the above copyright notice and this license. These can be
+ * included either as stand-alone text files, human-readable headers or
+ * in the appropriate machine-readable metadata fields within text or
+ * binary files as long as those fields can be easily viewed by the user.
+ *
+ * 3) No Modified Version of the Font Software may use the Reserved Font
+ * Name(s) unless explicit written permission is granted by the corresponding
+ * Copyright Holder. This restriction only applies to the primary font name as
+ * presented to the users.
+ *
+ * 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+ * Software shall not be used to promote, endorse or advertise any
+ * Modified Version, except to acknowledge the contribution(s) of the
+ * Copyright Holder(s) and the Author(s) or with their explicit written
+ * permission.
+ *
+ * 5) The Font Software, modified or unmodified, in part or in whole,
+ * must be distributed entirely under this license, and must not be
+ * distributed under any other license. The requirement for fonts to
+ * remain under this license does not apply to any document created
+ * using the Font Software.
+ *
+ * TERMINATION
+ * This license becomes null and void if any of the above conditions are
+ * not met.
+ *
+ * DISCLAIMER
+ * THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+ * OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+ * COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+ * DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+ * OTHER DEALINGS IN THE FONT SOFTWARE.
+ */
+
diff --git a/doc/css/rdoc.css b/doc/css/rdoc.css
new file mode 100644
index 00000000..2f4dca7e
--- /dev/null
+++ b/doc/css/rdoc.css
@@ -0,0 +1,590 @@
+/*
+ * "Darkfish" Rdoc CSS
+ * $Id: rdoc.css 54 2009-01-27 01:09:48Z deveiant $
+ *
+ * Author: Michael Granger
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Decide who is paying for Lunch with Snakes & Ladder!+
+
+ P1 P2+
+
+
+
+
+
+ 0
+ |