Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • namy2/se3xa3
  • bokhari/se3xa3
  • kanwalg/se3xa3
  • sunx20/se3xa3
  • hameea1/se3xa3
  • aij/se3xa3
  • hanzy3/se3xa3
  • linl20/se3xa3
  • zhous20/se3xa3
9 results
Show changes
Commits on Source (36)
Showing
with 875 additions and 44 deletions
No preview for this file type
\documentclass{article}
\usepackage{pdfpages}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{hyperref}
\title{SE 3XA3: Development Plan\\Title of Project}
\author{Team \#, Team Name
\\ Student 1 name and macid
\\ Student 2 name and macid
\\ Student 3 name and macid
\title{SE 3XA3: Development Plan\\Snake 2.o}
\author{Team \# 30, VUA30
\\ Vaibhav Chadha , chadhav
\\ Usman Irfan , irfanm7
\\ Andy Hameed , hameea1
}
\date{}
\input{../Comments}
\begin{document}
......@@ -23,9 +26,12 @@
\toprule
\textbf{Date} & \textbf{Developer(s)} & \textbf{Change}\\
\midrule
Date1 & Name(s) & Description of changes\\
Date2 & Name(s) & Description of changes\\
... & ... & ...\\
Sept 25, 2018 & Vaibhav, Usman, Andy & Worked on part 1 to 4\\
Sept 27, 2018 & Vaibhav, Usman, Andy & Worked on part 4 to 8\\
Sept 27, 2018 & Vaibhav & Added the information from the meeting documents to the LaTeX file\\
Sept 28, 2018 & Andy & Proof of concept, Git workflow, Final editing and formatting\\
Sept 28, 2018 & Usman & Updated proof of concept\\
Oct 12, 2018 & Andy & Made changes according to feedback on development plan and added section on POC demo\\
\bottomrule
\end{tabularx}
\end{table}
......@@ -34,25 +40,97 @@ Date2 & Name(s) & Description of changes\\
\maketitle
Put your introductory blurb here.
\section{Team Meeting Plan}
Meetings will be held \textbf{twice a week} at the following times:
\begin{itemize}
\item Mondays 5:30 - 6:30 pm at KTH Computer Labs
\item Wednesdays 12:30 to 2:00pm at Health science library
\end{itemize}
\subsection{Roles and Agenda}
\textbf{Chair}: Andy Hameed
\begin{itemize}
\item Responsible for creating the agenda and selecting topics that pertain to all team members
\item Agenda items will be listed as questions\\
\end{itemize}
\textbf{Notettaker}: Usman Irfan
\begin{itemize}
\item Responsible for taking meeting minutes
\item Meeting decisions will be summarized in a statement at the end of the meeting
\end{itemize}
\textbf{Timekeeper}: Vaibhav Chadha
\begin{itemize}
\item Keeps track of time in case we are spending too much time on one topic
\end{itemize}
\section{Team Communication Plan}
Main source of communication is \textbf{Facebook Messenger}, it will be used for general inquiries, updates, reminders of team meetings, any links to useful resources and so on. Phone and texting will be used as a backup in case of urgent matters, for example not being able to get in contact with a team member through messenger.
Aside from these, the team will be using Workflowy to assign small tasks that are promptly due or ones that may not necessarily fit on the gantt chart because they are minor - this tool will be used to delegate a small to-do list for each team member .
\section{Team Member Roles}
Vaibhav Chadha:
\begin{itemize}
\item Latex Documentation
\item Analyst - makes sure the requirements of the clients are met through the software
\item gantt chart management\\
\end{itemize}
Usman Irfan:
\begin{itemize}
\item Scribe
\item Technology Research
\item operation manager -ensures project development is running smoothly and software is being developed according to milestones \\
\end{itemize}
Andy Hameed:
\begin{itemize}
\item Final editing
\item latex documentation
\item team leader\\
\end{itemize}
All:
\begin{itemize}
\item GIT project management
\end{itemize}
\section{Git Workflow Plan}
We will be using the Git Feature Branch Workflow to manage the software development. Using branches, each team member is capable of
working on different modules or sections of the software at the same time in localized branches, before pushing their changes to the master branch.
The following procedures will be followed:
\begin{itemize}
\item Vaibhav will be tagging any major milestones for final submission. This makes the submission process consistent. Otherwise, Andy or Usman will agree on one person to tag and submit for final submission.
\item Any major changes can be placed in a branch to avoid merging conflicts and overwriting existing work. They can be merged later on upon team agreement.
\end{itemize}
\section{Proof of Concept Demonstration Plan}
The original project is built using Javascript, HTML and CSS in contrast to our development plan using python and the Pygame library. Since we are using an OOP language, we will be able to create classes for different components of the snake game such as the snake unit block, snake body, and snake bate. The hardest part of the implementation will be the movement of the snake according to the user's keyboard inputs, and second to that would be the process of expanding the snake once a food item is captured. Besides that, the interface may be difficult to implement in python but could be simple with the use of a python framework such as PyQT5.\\
Once our game application has been developed the next part would be to test the project and for that we will be using Pytest, since our backend language is python this will help us test all possible functions and aspects. The functions that will be difficult to test would be to see if the snake eats the food, does the food appear at random locations after eaten by the snake and if the snake tries to leave the borders, will the game end. Portability will have to be taken into consideration since the application is being built for windows. However, it can be compiled and run on any system as long as the necessary files and libraries are download.
\subsection{POC Demo}
The team will be demonstrating the movement of a snake around the screen using unit blocks for the body of the snake. Lengthening the snake body, scoring and eating the bate will not be demonstrated in the demo. This POC should demonstrate that with the movement of the snake, which is the main component of the game, the team will be able to develop classes to represent other components of the game such as the score, food bate, and lengthening of the snake body.
\section{Technology}
Coding Language: Python, Kivy for GUI\\
IDE: IDLE scripting\\
Testing: PyUnit testing\\
Documentation: Doxygen\\
\section{Coding Style}
We will be using the \href{https://github.com/google/styleguide/blob/gh-pages/pyguide.md}{Google Python Style Guide}
for our coding style. It encompasses all the necessary naming conventions and standards required for the project development.
\section{Project Schedule}
Please see the following pages for the project schedule in the form of a gantt chart.
Provide a pointer to your Gantt Chart.
\includepdf[page=-]{../../ProjectSchedule/Team_Gantt}
\section{Project Review}
......
# Development Plan
The folders and files for this folder are as follows:
Describe ...
No preview for this file type
......@@ -3,17 +3,17 @@
\usepackage{tabularx}
\usepackage{booktabs}
\title{SE 3XA3: Problem Statement\\Title of Project}
\title{SE 3XA3: Problem Statement\\ \textbf{Snake Game}}
\author{Team \#, Team Name
\\ Student 1 name and macid
\\ Student 2 name and macid
\\ Student 3 name and macid
\author{Team \#30, VUA30
\\ Usman Irfan - irfanm7
\\ Andy Hameed - hameea1
\\ Vaibhav Chadha - chadhav
}
\date{}
\date{2018-09-21}
\input{../Comments}
\usepackage[left=2cm, right=5cm, top=2cm]{geometry}
\begin{document}
......@@ -23,9 +23,10 @@
\toprule
\textbf{Date} & \textbf{Developer(s)} & \textbf{Change}\\
\midrule
Date1 & Name(s) & Description of changes\\
Date2 & Name(s) & Description of changes\\
... & ... & ...\\
2018-09-20 & Vaibhav & Made the LaTeX file and wrote the section with what the Problem is\\
2018-09-20 & Usman & Added the Importance of Problem section while formatting the LaTeX\\
2018-09-21 & Andy Hameed & Formatted LaTeX file and added Context section, giving the final editing to the document\\
2018-10-09 & Andy Hameed & Edited doc to reflect web app to desktop app decision change\\
\bottomrule
\end{tabularx}
\end{table}
......@@ -34,16 +35,17 @@ Date2 & Name(s) & Description of changes\\
\maketitle
Put your problem statement here.
\subsection*{The Problem}
\wss{comment}
Almost everyone nowadays relies on a computer as a multipurpose tool for research, video streaming, gaming and many other tasks. With the emergence of fast computing, gaming has become a popular pastime activity and a source of entertainment for many. However, not everyone has a device powerful enough to support extensive game applications. A simple, memory effecient application of the Snake game allows it to be accessible for gamers without the need for extensive hardware or a high-performance computer. Our team, VUA30, will be creating a desktop application for the well-known Snake game with new enhancements and features. This competitive and addictive game can allow the user to play at their own pace and challenge their own high score.
\ds{comment}
\subsection*{Importance of the Problem}
\mj{comment}
Buying a computing device with high storage and faster performance can be out of budget. Complicated software covers up all the storage and the user is bound to use these applications as opposed to downloading other software. The importance of the redevelopment of The Snake is to save computing devices' personal storage and allow the user to play a game 24/7 with strong performance, even offline. Creating a desktop version of the snake game can fit into the category of downloadable calssical games such as the solitaire suite. The recreation of this game will allow the user to enjoy the classical game anytime and anywhere as long as they have installed the application. Improving aspects such as graphics and custom speed will also make the game more interesting. We would like to add more features to the game to make it more customizable and help people enjoy the classical game in an exciting and new way.
\cm{comment}
\mh{comment}
\subsection*{Context}
The stakeholders are mainly the gaming audience, the older generation of game enthusiasts, youth and teens. Some other stakeholders that Although the game can be played by anyone, it is targeted towards the audience mentioned above who are most invested in the game. The environment is native app development using Python. This provides provides less flexibility than web API's but there still exists many useful libraries which can be used such as Pygame for example.
\end{document}
\end{document}
\ No newline at end of file
......@@ -7,6 +7,11 @@
%% Saved with string encoding Unicode (UTF-8)
@article{devArticle,
Author = {Sumit Jain},
Title = {Game Development Life Cycle},
Year = {May 2017}
}
@book{RobertsonAndRobertson2012,
Author = {James Robertson and Suzanne Robertson},
......
No preview for this file type
This diff is collapsed.
#standard set up
import pygame
from random import randint
pygame.init()
#setting width and height of window
screen_x = 500
screen_y = 500
win = pygame.display.set_mode((screen_x,screen_y))
pygame.display.set_caption("My Game")
white = (255,255,255)
black = (0,0,0)
x = randint(40,400)
y = randint(40,400)
width = 20
height = 20
vel = 10
speed = 40
# 0 - (- direction) , 1 - (+ direction)
direction = 0
# 0 - x-axis , 1 - y-axis
axis = 0
run = True
def changeXY(x,y,axis,direction):
if not (axis):
x += vel*direction
## else:
## y += vel*direction
while run:
pygame.time.delay(speed) #create a delay to prevent any unwanted behaviour
#events are anything that happens from the user
#we loop through the list of events that happen by the user's actions
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
#Each event type has an integer assigned to it. KEYDOWN has the code 2
if event.type == pygame.KEYDOWN:
if (event.key == pygame.K_LEFT):
axis = 0;direction=-1
if (event.key == pygame.K_RIGHT):
axis = 0;direction=1
if (event.key == pygame.K_UP):
axis = 1;direction=-1
if (event.key == pygame.K_DOWN):
axis = 1;direction=1
#Snake moving depending on axis and direction
if (axis):
y += vel*direction
else:
x += vel*direction
if x < 0:
#x = 0
x = screen_x - height
if y < 0:
#y = 0
y = screen_y - width
if y > screen_y - width:
#y = 500 - width
y = 0
if x > screen_x - height:
#x = 500 - height
x = 0
win.fill(white)
#all colors are defined in RGB with Pygame
pygame.draw.rect(win,(255,0,0), (x,y,width, height))
#we have to update the display to see the drawing of our object. Since it does
#not automatically update
pygame.display.update()
#Quit the game
pygame.quit()
#importing necessary libraries
import pygame, sys
#a function made to execute other files from the system
def runfile(runfilename):
with open(runfilename,"r") as rnf:
exec(rnf.read())
pygame.init()
#while loop required to always refresh the page
while True:
game = pygame.display.set_mode((800, 610))
game.fill([213, 219, 219])
mousepos = pygame.mouse.get_pos() #checking mouse position
mouseclick = pygame.mouse.get_pressed()#checking mouse pressed
pygame.display.set_caption("Lets Play")
title_font = pygame.font.SysFont("monospace", 80)
#Adding the title
gamename = title_font.render('SNAKE GAME', True, (255, 0, 0))
game.blit(gamename,(150,80))
#Adding the play game button
if (270 <= mousepos[0] <= 270+250 and 505 <= mousepos[1] <= 555 ):
#checks if the mouse is hovering over the button
pygame.draw.rect(game,[100,100,100], [270,505,250,50], 0)
#checking if the button is clicked
if mouseclick[0] == 1:
runfile('Snake_2.o_Demo.py')
else:
pygame.draw.rect(game,[180,180,180], [270,505,250,50], 0)
playgame_font = pygame.font.SysFont("comicsansms", 40)
gamebutton = playgame_font.render('GAME TIME', True, (0, 0, 200))
game.blit(gamebutton,(275,500))
#Taking user name
UserName = playgame_font.render('NAME:', True, (0, 250, 0))
game.blit(UserName,(50,200))
#Asking user for theme
ThemeOption = playgame_font.render('THEMES:', True, (0, 200, 0))
game.blit(ThemeOption,(50,300))
#Asking user for speed
SpeedOption = playgame_font.render('SPEED:', True, (0, 150, 0))
game.blit(SpeedOption,(50,400))
#If user wants to quit
pygame.draw.rect(game,[180,180,180], [650,550,130,55], 0)
Quit = playgame_font.render('QUIT', True, (0, 0, 0))
game.blit(Quit,(650,550))
if ( 650 <= mousepos[0] <= 650+130 and 550 <= mousepos[1] <= 550 +55):
#checks if the mouse is hovering over the button
#checking if the button is clicked
if mouseclick[0] == 1:
#print ("quiting")
#pygame.display.quit()
pygame.quit()
sys.exit()
pygame.display.update()
<?xml version="1.0" encoding="UTF-8"?><project name="3XA3: Team Project" company="" webLink="http://" view-date="2018-10-18" view-index="0" gantt-divider-location="300" resource-divider-location="300" version="2.8.9" locale="en_CA">
<description><![CDATA[Developing the clasical Snake game using python and front-end development languages.]]></description>
<view zooming-state="default:0" id="gantt-chart">
<field id="tpd3" name="Name" width="167" order="0"/>
<field id="tpd4" name="Begin date" width="65" order="1"/>
<field id="tpd5" name="End date" width="64" order="2"/>
</view>
<view id="resource-table">
<field id="0" name="Name" width="210" order="0"/>
<field id="1" name="Default role" width="86" order="1"/>
</view>
<!-- -->
<calendars>
<day-types>
<day-type id="0"/>
<day-type id="1"/>
<default-week id="1" name="default" sun="1" mon="0" tue="0" wed="0" thu="0" fri="0" sat="1"/>
<only-show-weekends value="false"/>
<overriden-day-types/>
<days/>
</day-types>
</calendars>
<tasks empty-milestones="true">
<taskproperties>
<taskproperty id="tpd0" name="type" type="default" valuetype="icon"/>
<taskproperty id="tpd1" name="priority" type="default" valuetype="icon"/>
<taskproperty id="tpd2" name="info" type="default" valuetype="icon"/>
<taskproperty id="tpd3" name="name" type="default" valuetype="text"/>
<taskproperty id="tpd4" name="begindate" type="default" valuetype="date"/>
<taskproperty id="tpd5" name="enddate" type="default" valuetype="date"/>
<taskproperty id="tpd6" name="duration" type="default" valuetype="int"/>
<taskproperty id="tpd7" name="completion" type="default" valuetype="int"/>
<taskproperty id="tpd8" name="coordinator" type="default" valuetype="text"/>
<taskproperty id="tpd9" name="predecessorsr" type="default" valuetype="text"/>
</taskproperties>
<task id="0" name="Development Plan" color="#8cb6ce" meeting="false" start="2018-09-25" duration="4" complete="0" thirdDate="2018-09-27" thirdDate-constraint="0" expand="false">
<task id="19" name="Team Meeting Plan" color="#8cb6ce" meeting="false" start="2018-09-25" duration="1" complete="0" thirdDate="2018-09-19" thirdDate-constraint="0" expand="true"/>
<task id="20" name="Team Communication Plan" color="#8cb6ce" meeting="false" start="2018-09-25" duration="1" complete="0" thirdDate="2018-09-13" thirdDate-constraint="0" expand="true"/>
<task id="29" name="Copy_Team Communication Plan" color="#8cb6ce" meeting="false" start="2018-09-25" duration="1" complete="0" thirdDate="2018-09-13" thirdDate-constraint="0" expand="true"/>
<task id="21" name="Team Member Roles" color="#8cb6ce" meeting="false" start="2018-09-25" duration="1" complete="0" thirdDate="2018-09-13" thirdDate-constraint="0" expand="true"/>
<task id="22" name="Git workflow plan" color="#8cb6ce" meeting="false" start="2018-09-25" duration="1" complete="0" thirdDate="2018-09-13" thirdDate-constraint="0" expand="true"/>
<task id="23" name="Proof of Concept" color="#8cb6ce" meeting="false" start="2018-09-26" duration="1" complete="0" thirdDate="2018-09-13" thirdDate-constraint="0" expand="true"/>
<task id="24" name="Technology" color="#8cb6ce" meeting="false" start="2018-09-26" duration="1" complete="0" thirdDate="2018-09-13" thirdDate-constraint="0" expand="true"/>
<task id="25" name="Coding Style" color="#8cb6ce" meeting="false" start="2018-09-27" duration="1" complete="0" thirdDate="2018-09-13" thirdDate-constraint="0" expand="true"/>
<task id="26" name="Project Schedule" color="#8cb6ce" meeting="false" start="2018-09-27" duration="1" complete="0" thirdDate="2018-09-13" thirdDate-constraint="0" expand="true"/>
<task id="27" name="Project review" color="#8cb6ce" meeting="false" start="2018-09-28" duration="1" complete="0" thirdDate="2018-09-13" thirdDate-constraint="0" expand="true"/>
</task>
<task id="8" name="Requirements Document Revision" color="#8cb6ce" meeting="false" start="2018-09-18" duration="14" complete="0" thirdDate="2018-09-27" thirdDate-constraint="0" expand="false">
<task id="31" name="Project Drivers" color="#8cb6ce" meeting="false" start="2018-10-01" duration="2" complete="0" thirdDate="2018-09-17" thirdDate-constraint="0" expand="true"/>
<task id="49" name="Functional Requirements" color="#8cb6ce" meeting="false" start="2018-10-02" duration="2" complete="0" thirdDate="2018-09-12" thirdDate-constraint="0" expand="true"/>
<task id="42" name="Non-Functional Requirements" color="#8cb6ce" meeting="false" start="2018-10-03" duration="2" complete="0" thirdDate="2018-09-12" thirdDate-constraint="0" expand="true"/>
<task id="44" name="Project Issues" color="#8cb6ce" meeting="false" start="2018-10-03" duration="2" complete="0" thirdDate="2018-09-12" thirdDate-constraint="0" expand="true">
<depend id="52" type="2" difference="0" hardness="Strong"/>
</task>
<task id="52" name="Push &amp; Tag Document" color="#8cb6ce" meeting="false" start="2018-10-05" duration="1" complete="0" thirdDate="2018-09-17" thirdDate-constraint="0" expand="true"/>
<task id="55" name="SpellCheck" color="#8cb6ce" meeting="false" start="2018-10-04" duration="1" complete="0" thirdDate="2018-09-18" thirdDate-constraint="0" expand="true">
<depend id="52" type="2" difference="0" hardness="Strong"/>
</task>
<task id="58" name="task_58" meeting="false" start="2018-09-18" duration="1" complete="0" expand="true"/>
</task>
<task id="9" name="Proof of Concept Demonstration" color="#8cb6ce" meeting="false" start="2018-10-10" duration="4" complete="0" thirdDate="2018-09-27" thirdDate-constraint="0" expand="false">
<task id="59" name="Snake Body &amp; Movement" color="#8cb6ce" meeting="false" start="2018-10-10" duration="2" complete="0" thirdDate="2018-09-17" thirdDate-constraint="0" expand="true"/>
<task id="61" name="Home Page GUI" color="#8cb6ce" meeting="false" start="2018-10-11" duration="2" complete="0" thirdDate="2018-09-17" thirdDate-constraint="0" expand="true"/>
<task id="63" name="Border Boundaries" color="#8cb6ce" meeting="false" start="2018-10-15" duration="1" complete="0" thirdDate="2018-09-17" thirdDate-constraint="0" expand="true"/>
</task>
<task id="12" name="Test Plan Revision" color="#8cb6ce" meeting="false" start="2018-10-19" duration="5" complete="0" thirdDate="2018-09-27" thirdDate-constraint="0" expand="true">
<task id="64" name="General Information" color="#8cb6ce" meeting="false" start="2018-10-19" duration="2" complete="0" thirdDate="2018-10-08" thirdDate-constraint="0" expand="true"/>
<task id="65" name="Plan" color="#8cb6ce" meeting="false" start="2018-10-19" duration="2" complete="0" thirdDate="2018-10-08" thirdDate-constraint="0" expand="true"/>
<task id="66" name="System Test Description" color="#8cb6ce" meeting="false" start="2018-10-22" duration="2" complete="0" thirdDate="2018-10-08" thirdDate-constraint="0" expand="true"/>
<task id="67" name="Tests for Proof of Concept" color="#8cb6ce" meeting="false" start="2018-10-22" duration="3" complete="0" thirdDate="2018-10-08" thirdDate-constraint="0" expand="true">
<task id="82" name="Tests for Functional Req." color="#8cb6ce" meeting="false" start="2018-10-22" duration="3" complete="0" thirdDate="2018-10-15" thirdDate-constraint="0" expand="true"/>
<task id="83" name="Tests for Non-Functional Req." color="#8cb6ce" meeting="false" start="2018-10-23" duration="2" complete="0" thirdDate="2018-10-15" thirdDate-constraint="0" expand="true"/>
</task>
<task id="68" name="Comparison to Existing Implementation" color="#8cb6ce" meeting="false" start="2018-10-24" duration="2" complete="0" thirdDate="2018-10-08" thirdDate-constraint="0" expand="true"/>
<task id="69" name="Unit Test Plan" color="#8cb6ce" meeting="false" start="2018-10-24" duration="2" complete="0" thirdDate="2018-10-08" thirdDate-constraint="0" expand="true"/>
</task>
<task id="13" name="Design &amp; Document Revision" color="#8cb6ce" meeting="false" start="2018-10-29" duration="10" complete="0" thirdDate="2018-09-27" thirdDate-constraint="0" expand="true"/>
<task id="14" name="Revision 0 Demonstration" color="#8cb6ce" meeting="false" start="2018-11-12" duration="2" complete="0" thirdDate="2018-09-27" thirdDate-constraint="0" expand="true"/>
<task id="15" name="Final Demonstration" color="#8cb6ce" meeting="false" start="2018-11-19" duration="7" complete="0" thirdDate="2018-09-27" thirdDate-constraint="0" expand="true"/>
<task id="17" name="Peer Evaluation - Final Demo" color="#8cb6ce" meeting="false" start="2018-11-27" duration="4" complete="0" thirdDate="2018-09-27" thirdDate-constraint="0" expand="true"/>
<task id="18" name="Final Documentation" color="#8cb6ce" meeting="false" start="2018-12-06" duration="1" complete="0" thirdDate="2018-09-27" thirdDate-constraint="0" expand="true">
<notes><![CDATA[Problem Statement
Development Plan
Requirements Document
Design Document
Test Plan
Test Report
Users Guide (optional)
Source Code]]></notes>
</task>
</tasks>
<resources>
<resource id="3" name="Andy" function="1" contacts="hameea1@mcmaster.ca" phone="6479276093"/>
<resource id="4" name="Usman" function="4" contacts="irfanm7@mcmaster.ca" phone="4168787844">
<rate name="standard" value="99"/>
</resource>
<resource id="5" name="Vaibhav" function="8" contacts="chadhav@mcmaster.ca" phone="6474545182">
<rate name="standard" value="100"/>
</resource>
<resource id="6" name="Varun Hooda" function="2" contacts="hoodav@mcmaster.ca" phone=""/>
<resource id="7" name="Dr. Bokhari" function="3" contacts="bokhari@mcmaster.ca" phone=""/>
</resources>
<allocations>
<allocation task-id="31" resource-id="3" function="1" responsible="true" load="100.0"/>
<allocation task-id="8" resource-id="3" function="1" responsible="true" load="33.333332"/>
<allocation task-id="44" resource-id="3" function="1" responsible="true" load="100.0"/>
<allocation task-id="55" resource-id="3" function="1" responsible="true" load="100.0"/>
<allocation task-id="59" resource-id="3" function="1" responsible="true" load="100.0"/>
<allocation task-id="67" resource-id="3" function="1" responsible="true" load="100.0"/>
<allocation task-id="66" resource-id="3" function="1" responsible="true" load="20.0"/>
<allocation task-id="64" resource-id="3" function="1" responsible="true" load="100.0"/>
<allocation task-id="8" resource-id="4" function="4" responsible="false" load="33.333332"/>
<allocation task-id="49" resource-id="4" function="4" responsible="true" load="100.0"/>
<allocation task-id="65" resource-id="4" function="4" responsible="true" load="100.0"/>
<allocation task-id="66" resource-id="4" function="4" responsible="false" load="40.0"/>
<allocation task-id="8" resource-id="5" function="8" responsible="false" load="33.333332"/>
<allocation task-id="42" resource-id="5" function="8" responsible="true" load="100.0"/>
<allocation task-id="52" resource-id="5" function="8" responsible="true" load="100.0"/>
<allocation task-id="61" resource-id="5" function="8" responsible="true" load="100.0"/>
<allocation task-id="68" resource-id="5" function="8" responsible="true" load="100.0"/>
<allocation task-id="69" resource-id="5" function="8" responsible="true" load="100.0"/>
<allocation task-id="66" resource-id="5" function="8" responsible="false" load="40.0"/>
</allocations>
<vacations/>
<previous/>
<roles roleset-name="Default"/>
<roles>
<role id="1" name="UI Deisgner | Project Schedule Administrator"/>
<role id="2" name="TA"/>
<role id="3" name="Course Professor"/>
<role id="4" name="Main Programmer | Requirements Documentation"/>
<role id="5" name="Tester"/>
<role id="6" name="Requirements &amp; Documentation Editor"/>
<role id="7" name="Project Schedule Editor"/>
<role id="8" name="Git master | Testing Requirements"/>
</roles>
</project>
File added
Copyright © Patrick Gillespie, http://patorjk.com
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
JavaScript Snake<br/>
By Patrick Gillespie<br/>
License: MIT<br/>
http://patorjk.com/games/snake
This is a DOM-based game of Snake that I wrote in JavaScript a few years back.
Other than the full screen mode demonstrated in the code, it can also be
initialized in div tags within a page. Example:
var mySnakeBoard = new SNAKE.Board( {
boardContainer: "game-area",
fullScreen: false,
width: 580,
height:400
});
The comments are formatted a little strange because at the time I was playing
around with YUI Doc.
/*
JavaScript Snake
By Patrick Gillespie
http://patorjk.com/games/snake
*/
select {
border: black;
color: #3E2E44;
background: black;
}
button {
border: black;
color: #3E2E44;
background: black;
}
body {
margin:0px;
padding:0px;
}
#game-area {
margin:0px;
padding:0px;
}
#high-score {
position: relative;
left: 200px;
bottom: 50px;
}
#game-area:focus { outline: none; }
#mode-wrapper {
font-family: Verdana, arial, helvetica, sans-serif;
font-size: 14px;
color: black;
}
a.snake-link, a.snake-link:link, a.snake-link:visited {
color: black;
}
a.snake-link:hover {
color: #3E2E44;
}
.snake-pause-screen {
font-family: Verdana, arial, helvetica, sans-serif;
font-size: 14px;
position:absolute;
width:300px;
height:80px;
text-align:center;
top:50%;
left:50%;
margin-top:-40px;
margin-left:-150px;
display:none;
background-color:#3E2E44;
color:black;
}
.snake-panel-component {
position: absolute;
font-family: Verdana, arial, helvetica, sans-serif;
font-size: 14px;
color: black;
text-align: center;
background-color: #3E2E44;
padding: 8px;
margin: 0px;
}
.snake-snakebody-block {
margin: 0px;
padding: 0px;
background-color: #3E2E44;
position: absolute;
border: 0px solid black;
background-repeat: no-repeat;
}
.snake-snakebody-alive {
background-image: url('./images/dark-snakeblock.png');
}
.snake-snakebody-dead {
background-image: url('./images/dead-dark-snakeblock.png');
}
.snake-food-block {
margin: 0px;
padding: 0px;
background-color: black;
border: 2px solid #3E2E44;
position: absolute;
}
.snake-playing-field {
margin: 0px;
padding: 0px;
position: absolute;
background-color: #312E44;
border: 3px solid black;
}
.snake-game-container {
margin: 0px;
padding: 0px;
border-width: 0px;
border-style: none;
zoom: 1;
background-color: #3E2E44;
position: relative;
}
.snake-welcome-dialog {
padding: 8px;
margin: 0px;
background-color: black;
color: #3E2E44;
font-family: Verdana, arial, helvetica, sans-serif;
font-size: 14px;
position: absolute;
top: 50%;
left: 50%;
width: 300px;
/*height: 150px;*/
margin-top: -100px;
margin-left: -158px;
text-align: center;
display: block;
}
.snake-try-again-dialog {
padding: 8px;
margin: 0px;
background-color: black;
color: #312E44;
font-family: Verdana, arial, helvetica, sans-serif;
font-size: 14px;
position: absolute;
top: 50%;
left: 50%;
width: 300px;
height: 100px;
margin-top: -75px;
margin-left: -158px;
text-align: center;
display: none;
}
File added
Javascript_Snake_Original/css/images/dark-snakeblock.png

1.01 KiB

Javascript_Snake_Original/css/images/dead-dark-snakeblock.png

1.22 KiB

Javascript_Snake_Original/css/images/deadblock.png

240 B