Subversion-Projekte lars-tiefland.prado

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
class Home extends TPage
3
{
4
	public function onLoad($param)
5
	{
6
		if (!$this->IsPostBack)
7
			$this->GameMultiView->ActiveView=$this->IntroView;
8
	}
9
 
10
	public function selectLevel($sender,$param)
11
	{
12
		if(($selection=$this->LevelSelection->SelectedValue)==='')
13
		{
14
			$this->LevelError->Visible=true;
15
			return;
16
		}
17
		else
18
			$this->Level=TPropertyValue::ensureInteger($selection);
19
		$this->Word=$this->generateWord();
20
		$this->GuessWord=str_repeat('_',strlen($this->Word));
21
		$this->Misses=0;
22
		$this->GameMultiView->ActiveView=$this->GuessView;
23
	}
24
 
25
	public function guessWord($sender,$param)
26
	{
27
		$sender->Enabled=false;
28
		$letter=$sender->Text;
29
		$word=$this->Word;
30
		$guessWord=$this->GuessWord;
31
		$pos=0;
32
		$success=false;
33
		while(($pos=strpos($word,$letter,$pos))!==false)
34
		{
35
			$guessWord[$pos]=$letter;
36
			$success=true;
37
			$pos++;
38
		}
39
		if($success)
40
		{
41
			$this->GuessWord=$guessWord;
42
			if($guessWord===$word)
43
				$this->GameMultiView->ActiveView=$this->WinView;
44
		}
45
		else
46
		{
47
			$this->Misses++;
48
			if($this->Misses>=$this->Level)
49
				$this->giveUp(null,null);
50
		}
51
	}
52
 
53
	public function giveUp($sender,$param)
54
	{
55
		$this->GameMultiView->ActiveView=$this->LoseView;
56
	}
57
 
58
	public function startAgain($sender,$param)
59
	{
60
		$this->GameMultiView->ActiveView=$this->IntroView;
61
		$this->LevelError->Visible=false;
62
		for($letter=65;$letter<=90;++$letter)
63
		{
64
			$guessLetter='Guess'.chr($letter);
65
			$this->$guessLetter->Enabled=true;
66
		}
67
	}
68
 
69
	protected function generateWord()
70
	{
71
		$wordFile=dirname(__FILE__).'/words.txt';
72
		$words=preg_split("/[\s,]+/",file_get_contents($wordFile));
73
		do
74
		{
75
			$i=rand(0,count($words)-1);
76
			$word=$words[$i];
77
		} while(strlen($word)<5 || !preg_match('/^[a-z]*$/i',$word));
78
		return strtoupper($word);
79
	}
80
 
81
	public function setLevel($value)
82
	{
83
		$this->setViewState('Level',$value,0);
84
	}
85
 
86
	public function getLevel()
87
	{
88
		return $this->getViewState('Level',0);
89
	}
90
 
91
	public function setWord($value)
92
	{
93
		$this->setViewState('Word',$value,'');
94
	}
95
 
96
	public function getWord()
97
	{
98
		return $this->getViewState('Word','');
99
	}
100
 
101
	public function getGuessWord()
102
	{
103
		return $this->getViewState('GuessWord','');
104
	}
105
 
106
	public function setGuessWord($value)
107
	{
108
		$this->setViewState('GuessWord',$value,'');
109
	}
110
 
111
	public function setMisses($value)
112
	{
113
		$this->setViewState('Misses',$value,0);
114
	}
115
 
116
	public function getMisses()
117
	{
118
		return $this->getViewState('Misses',0);
119
	}
120
}
121
?>