diff options
author | xue <> | 2005-12-28 21:12:54 +0000 |
---|---|---|
committer | xue <> | 2005-12-28 21:12:54 +0000 |
commit | 3faa0d7fd4dc3442330c6037886d300412934cd1 (patch) | |
tree | e7ad161a39aec116152bc3f3f7734350b228f29a /demos/quickstart/protected/pages/Fundamentals/Samples | |
parent | f481e13ebf72336ed2dc90c8ec9f5d4db5b62664 (diff) |
Diffstat (limited to 'demos/quickstart/protected/pages/Fundamentals/Samples')
-rw-r--r-- | demos/quickstart/protected/pages/Fundamentals/Samples/Hangman/Home.page | 64 | ||||
-rw-r--r-- | demos/quickstart/protected/pages/Fundamentals/Samples/Hangman/Home.php | 135 | ||||
-rw-r--r-- | demos/quickstart/protected/pages/Fundamentals/Samples/Hangman/sequence.vsd | bin | 0 -> 157696 bytes | |||
-rw-r--r-- | demos/quickstart/protected/pages/Fundamentals/Samples/Hangman/words.txt | 27 | ||||
-rw-r--r-- | demos/quickstart/protected/pages/Fundamentals/Samples/HelloWorld/Home.page | 6 | ||||
-rw-r--r-- | demos/quickstart/protected/pages/Fundamentals/Samples/HelloWorld/Home.php | 11 | ||||
-rw-r--r-- | demos/quickstart/protected/pages/Fundamentals/Samples/HelloWorld/sequence.gif | bin | 0 -> 5557 bytes | |||
-rw-r--r-- | demos/quickstart/protected/pages/Fundamentals/Samples/HelloWorld/sequence.vsd | bin | 0 -> 143360 bytes | |||
-rw-r--r-- | demos/quickstart/protected/pages/Fundamentals/Samples/config.xml | 5 |
9 files changed, 248 insertions, 0 deletions
diff --git a/demos/quickstart/protected/pages/Fundamentals/Samples/Hangman/Home.page b/demos/quickstart/protected/pages/Fundamentals/Samples/Hangman/Home.page new file mode 100644 index 00000000..31058fa5 --- /dev/null +++ b/demos/quickstart/protected/pages/Fundamentals/Samples/Hangman/Home.page @@ -0,0 +1,64 @@ +<%@ Title="Hangman Game" %>
+<com:TContent ID="body">
+
+<h1>Hangman Game</h1>
+
+<com:TPanel ID="IntroPanel">
+<p>This is the game of Hangman. You must guess a word, a letter at a time.
+If you make too many mistakes, you lose the game!</p>
+<com:TRadioButton ID="EasyLevel" GroupName="level" Text="Easy game; you are allowed 10 misses." /><br/>
+<com:TRadioButton ID="MediumLevel" GroupName="level" Text="Medium game; you are allowed 5 misses." /><br/>
+<com:TRadioButton ID="HardLevel" GroupName="level" Text="Hard game; you are only allowed 3 misses." /><br/>
+<com:TButton Text="Play!" Click="selectLevel" />
+<com:TLabel ID="LevelError" Text="You must choose a difficulty level!" ForeColor="red" Visible="false" />
+</com:TPanel>
+
+<com:TPanel ID="GuessPanel" Visible="false">
+<h2>Please make a guess</h2>
+<h3 style="letter-spacing: 4px;"><%= $this->Page->GuessWord %></h3>
+<p>You have made <%=$this->Page->Misses %> bad guesses
+out of a maximum of <%= $this->Page->Level %>.</p>
+<p>Guess:
+<com:TLinkButton ID="GuessA" Text="A" Click="guessWord" />
+<com:TLinkButton ID="GuessB" Text="B" Click="guessWord" />
+<com:TLinkButton ID="GuessC" Text="C" Click="guessWord" />
+<com:TLinkButton ID="GuessD" Text="D" Click="guessWord" />
+<com:TLinkButton ID="GuessE" Text="E" Click="guessWord" />
+<com:TLinkButton ID="GuessF" Text="F" Click="guessWord" />
+<com:TLinkButton ID="GuessG" Text="G" Click="guessWord" />
+<com:TLinkButton ID="GuessH" Text="H" Click="guessWord" />
+<com:TLinkButton ID="GuessI" Text="I" Click="guessWord" />
+<com:TLinkButton ID="GuessJ" Text="J" Click="guessWord" />
+<com:TLinkButton ID="GuessK" Text="K" Click="guessWord" />
+<com:TLinkButton ID="GuessL" Text="L" Click="guessWord" />
+<com:TLinkButton ID="GuessM" Text="M" Click="guessWord" />
+<com:TLinkButton ID="GuessN" Text="N" Click="guessWord" />
+<com:TLinkButton ID="GuessO" Text="O" Click="guessWord" />
+<com:TLinkButton ID="GuessP" Text="P" Click="guessWord" />
+<com:TLinkButton ID="GuessQ" Text="Q" Click="guessWord" />
+<com:TLinkButton ID="GuessR" Text="R" Click="guessWord" />
+<com:TLinkButton ID="GuessS" Text="S" Click="guessWord" />
+<com:TLinkButton ID="GuessT" Text="T" Click="guessWord" />
+<com:TLinkButton ID="GuessU" Text="U" Click="guessWord" />
+<com:TLinkButton ID="GuessV" Text="V" Click="guessWord" />
+<com:TLinkButton ID="GuessW" Text="W" Click="guessWord" />
+<com:TLinkButton ID="GuessX" Text="X" Click="guessWord" />
+<com:TLinkButton ID="GuessY" Text="Y" Click="guessWord" />
+<com:TLinkButton ID="GuessZ" Text="Z" Click="guessWord" />
+</p>
+<p><com:TLinkButton Text="Give up?" Click="giveUp" /></p>
+</com:TPanel>
+
+<com:TPanel ID="WinPanel" Visible="false">
+<h2>You Win!</h2>
+<p>The word was: <%= $this->Page->Word %>.</p>
+<p><com:TLinkButton Text="Start Again" Click="startAgain" /></p>
+</com:TPanel>
+
+<com:TPanel ID="LosePanel" Visible="false">
+<h2>You Lose!</h2>
+<p>The word was: <%= $this->Page->Word %>.</p>
+<p><com:TLinkButton Text="Start Again" Click="startAgain" /></p>
+</com:TPanel>
+
+</com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Fundamentals/Samples/Hangman/Home.php b/demos/quickstart/protected/pages/Fundamentals/Samples/Hangman/Home.php new file mode 100644 index 00000000..93028573 --- /dev/null +++ b/demos/quickstart/protected/pages/Fundamentals/Samples/Hangman/Home.php @@ -0,0 +1,135 @@ +<?php
+
+class Home extends TPage
+{
+ const EASY_LEVEL=10;
+ const MEDIUM_LEVEL=5;
+ const HARD_LEVEL=3;
+
+ public function selectLevel($sender,$param)
+ {
+ if($this->EasyLevel->Checked)
+ $this->Level=self::EASY_LEVEL;
+ else if($this->MediumLevel->Checked)
+ $this->Level=self::MEDIUM_LEVEL;
+ else if($this->HardLevel->Checked)
+ $this->Level=self::HARD_LEVEL;
+ else
+ {
+ $this->LevelError->Visible=true;
+ return;
+ }
+
+ $this->Word=$this->generateWord();
+ $this->GuessWord=str_repeat('_',strlen($this->Word));
+ $this->Misses=0;
+ $this->showPanel('GuessPanel');
+ }
+
+ public function guessWord($sender,$param)
+ {
+ $sender->Enabled=false;
+ $letter=$sender->Text;
+ $word=$this->Word;
+ $guessWord=$this->GuessWord;
+ $pos=0;
+ $success=false;
+ while(($pos=strpos($word,$letter,$pos))!==false)
+ {
+ $guessWord[$pos]=$letter;
+ $success=true;
+ $pos++;
+ }
+ if($success)
+ {
+ $this->GuessWord=$guessWord;
+ if($guessWord===$word)
+ $this->showPanel('WinPanel');
+ }
+ else
+ {
+ $this->Misses++;
+ if($this->Misses>=$this->Level)
+ $this->giveUp(null,null);
+ }
+ }
+
+ public function giveUp($sender,$param)
+ {
+ $this->showPanel('LosePanel');
+ }
+
+ public function startAgain($sender,$param)
+ {
+ $this->showPanel('IntroPanel');
+ $this->LevelError->Visible=false;
+ for($letter=65;$letter<=90;++$letter)
+ {
+ $guessLetter='Guess'.chr($letter);
+ $this->$guessLetter->Enabled=true;
+ }
+ }
+
+ protected function generateWord()
+ {
+ $wordFile=dirname(__FILE__).'/words.txt';
+ $words=preg_split("/[\s,]+/",file_get_contents($wordFile));
+ do
+ {
+ $i=rand(0,count($words)-1);
+ $word=$words[$i];
+ } while(strlen($word)<5 || !preg_match('/^[a-z]*$/i',$word));
+ return strtoupper($word);
+ }
+
+ protected function showPanel($panelID)
+ {
+ $this->IntroPanel->Visible=false;
+ $this->GuessPanel->Visible=false;
+ $this->WinPanel->Visible=false;
+ $this->LosePanel->Visible=false;
+ $this->$panelID->Visible=true;
+ }
+
+ public function setLevel($value)
+ {
+ $this->setViewState('Level',$value,0);
+ }
+
+ public function getLevel()
+ {
+ return $this->getViewState('Level',0);
+ }
+
+ public function setWord($value)
+ {
+ $this->setViewState('Word',$value,'');
+ }
+
+ public function getWord()
+ {
+ return $this->getViewState('Word','');
+ }
+
+ public function getGuessWord()
+ {
+ return $this->getViewState('GuessWord','');
+ }
+
+ public function setGuessWord($value)
+ {
+ $this->setViewState('GuessWord',$value,'');
+ }
+
+ public function setMisses($value)
+ {
+ $this->setViewState('Misses',$value,0);
+ }
+
+ public function getMisses()
+ {
+ return $this->getViewState('Misses',0);
+ }
+}
+
+?>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Fundamentals/Samples/Hangman/sequence.vsd b/demos/quickstart/protected/pages/Fundamentals/Samples/Hangman/sequence.vsd Binary files differnew file mode 100644 index 00000000..4a55d8b7 --- /dev/null +++ b/demos/quickstart/protected/pages/Fundamentals/Samples/Hangman/sequence.vsd diff --git a/demos/quickstart/protected/pages/Fundamentals/Samples/Hangman/words.txt b/demos/quickstart/protected/pages/Fundamentals/Samples/Hangman/words.txt new file mode 100644 index 00000000..80814580 --- /dev/null +++ b/demos/quickstart/protected/pages/Fundamentals/Samples/Hangman/words.txt @@ -0,0 +1,27 @@ +This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+PRADO is an event-driven and component-based framework
+for Web application development in PHP 5.
+
+Components following the PRADO protocol are highly
+configurable and reusable. Properties defining
+the basic features of a component can be configured
+in specifications, templates or code.
+New components can be developed by either inheriting
+an existing component class or composing several
+components together. The work of using a component
+amounts to placing the component tag on the page template,
+configuring component properties, and writing handler
+functions to respond to component events.
+
+PRADO shares many similarities with ASP.NET and other
+RAD tools for Windows GUI development, such as Borland Delphi.
+In particular, it supports event-driven programming,
+viewstate maintenance, javascript, template, form validations, etc.
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Fundamentals/Samples/HelloWorld/Home.page b/demos/quickstart/protected/pages/Fundamentals/Samples/HelloWorld/Home.page new file mode 100644 index 00000000..8931dad6 --- /dev/null +++ b/demos/quickstart/protected/pages/Fundamentals/Samples/HelloWorld/Home.page @@ -0,0 +1,6 @@ +<%@ Title="Hello World" %>
+<com:TContent ID="body">
+
+<com:TButton Text="Click Me" Click="buttonClicked" />
+
+</com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Fundamentals/Samples/HelloWorld/Home.php b/demos/quickstart/protected/pages/Fundamentals/Samples/HelloWorld/Home.php new file mode 100644 index 00000000..b1a7f991 --- /dev/null +++ b/demos/quickstart/protected/pages/Fundamentals/Samples/HelloWorld/Home.php @@ -0,0 +1,11 @@ +<?php
+
+class Home extends TPage
+{
+ public function buttonClicked($sender,$param)
+ {
+ $sender->Text="Hello World";
+ }
+}
+
+?>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Fundamentals/Samples/HelloWorld/sequence.gif b/demos/quickstart/protected/pages/Fundamentals/Samples/HelloWorld/sequence.gif Binary files differnew file mode 100644 index 00000000..a1e51200 --- /dev/null +++ b/demos/quickstart/protected/pages/Fundamentals/Samples/HelloWorld/sequence.gif diff --git a/demos/quickstart/protected/pages/Fundamentals/Samples/HelloWorld/sequence.vsd b/demos/quickstart/protected/pages/Fundamentals/Samples/HelloWorld/sequence.vsd Binary files differnew file mode 100644 index 00000000..e8c2f5a7 --- /dev/null +++ b/demos/quickstart/protected/pages/Fundamentals/Samples/HelloWorld/sequence.vsd diff --git a/demos/quickstart/protected/pages/Fundamentals/Samples/config.xml b/demos/quickstart/protected/pages/Fundamentals/Samples/config.xml new file mode 100644 index 00000000..ecd29bd4 --- /dev/null +++ b/demos/quickstart/protected/pages/Fundamentals/Samples/config.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?>
+
+<configuration>
+ <pages MasterClass="Controls.SampleLayout" />
+</configuration>
\ No newline at end of file |