検索
ホームページphp教程php手册PHP 開発ツール - PRADO 1.6 の例

ado

第三章 范例:the Hangman Game

  这一章将会讲一下开发一个基于Web的Hangman Game(猜词游戏)。这里面会用到一些PRADO的组件。这个游戏说明了显示状态使PRADO页面具有很强的交互性。

  这个游戏只包括了一个页面来实现以下的功能:当用户第一次访问的时候,允许用户选择三种不同难度来开始这个游戏,不同的难度对应着不同的可以猜错的次数。游戏开始后,页面的上半部分会显示要猜得单词,没有猜中的字母用下划线显示。页面的下半部分列出了26个字母,用户可以点击对应字母来选择要猜的字母。如果用户放弃游戏或者错误次数超过了难度限制,会显示失败信息;如果猜对了,会显示成功信息。任何时候用户都可以重新开始游戏。

  范例中会使用的 PRADO 组件包括:

  • TRadioButton: 显示一个单选框。
  • TPanel: 显示
    元素。
  • TLabel: 显示文本。
  • TButton: 显示一个提交按钮。
  • TLinkButton: 显示一个提交操作的超链接。
  • TForm: 显示
    元素。
  •   这些定义好的组件通过属性和事件已经封装好了很多功能。比如,可以设置TPanelVisible
    属性来控制整个

    元素是不是可见。可以给TButton 组件的OnClick 事件指定一个响应函数,这样当用户点击按钮的时候就会自动调用响应函数。请参考PRADO API文档中关于这些组件更详细的信息。

      游戏中的一些数据在游戏过程中需要一值保持着的。因为这里只用了一个页面,所以可以使用显示状态而不需要使用session来保存这些数据。下面这些数据需要保存在显示状态中:

    • Word:要猜得单词。
    • GuessWord: 正在猜的单词(没有猜中用下划线显示)。
    • Level:游戏的难度级别。
    • Misses: 猜错的次数。

      他们都被定义在页面的属性中(当然也可以不这么做)。

      我们需要创建6个文件。假定这个应用放在Web服务器的根目录下,这些文件是:

    • hangman.php : 应用的主入口;
    • WEB-INF/hangman.spec: 应用的配置文件;
    • WEB-INF/hangman/HomePage.php: 页面类文件;
    • WEB-INF/hangman/HomePage.spec: 页面规格文件;
    • WEB-INF/hangman/HomePage.tpl: 页面模板文件;
    • WEB-INF/data/hangman.txt: 包含要猜得单词的文本文件。

      下面主要讲一下HomePage 类的三个文件,其他文件和"Hello,world!"例子是类似的。

      3.1  HomePage.tpl


      首先来说一些页面模板文件。这个过程也是PRADO应用开发的过程。首先在页面模板中组合PRADO组件,然后就可以测试一下这个页面的显示样子,最后编写页面类文件中需要的代码。这是一个典型的RAD(快速应用开发)的开发过程。

      这个模板文件的位置是 examples/hangman/HomePage.tpl .

      可以看到这个模板被分成4个组件startPanel, guessPanel, winPanel, 和losePanel ;他们将根据游戏的状态来决定是否可视。

      在 startPanel中,使用了三个 TRadioButton 组件让用户可以选择游戏的难度。TButtonOnClick 事件指定了一个响应函数onSelectLevel ,当用户选择难度后点击了按钮就会被触发。如果用户没有选择难度,TLabel 组件会显示一个错误提示信息。

      在 guessPanel中,三个表达式标签用于显示页面的 GuessWord, Misses,和 Level 属性。 同时还有一系列的TLinkButton 组件来显示字母A到Z,它们用于让用户点击选择猜哪一个字母。不管是猜对了还是猜错了,以后这个字母就不允许再被点击了。注意,所有的这些TLinkButton 组件都有同样的一个事件OnClick 的响应函数onGuessWord

      winPanellosePanel 会显示成功和错误的信息。如果用户点击了面板上的TLinkButtonOnClick 事件的响应函数onStartAgain 会被触发。

    3.2  HomePage.spec

    このページ仕様ファイルは examples/hangman/HomePage.spec にあります。これは非常に単純で、MissesLevelGuessWordWordの 4 ページの属性を定義するだけです。 🎜> >

    3.3

    HomePage.php

    このページ クラス ファイルは examples/hangman/HomePage.php にあります。 . ページクラス

    HomePage

    は、フレームワークによって提供される TPage クラスを継承します。 ゲッター関数とセッター関数は、ページのプロパティを定義するために使用されます。注:

    getViewState()

    関数と setViewState() 関数は、プロパティ データを返し、維持するために呼び出されます。これら 2 つの関数は、TPage の親クラス TComponent に実装されています。これらは、状態メカニズムを表示するメインのコードです。表示状態で保存されたデータは常にページのポストバックに保存されます。 次に、4 つのイベント応答関数が実装されます:

    onSelectLevel()

    onGuessWord()onGiveUp()StartAgain()
    。これらは、ページ テンプレートで指定された OnClick イベント応答関数に対応します。 4つの機能の具体的な内容はこれ以上説明する必要はなく、一目で理解できるでしょう。 /examples/hangman.php">

    URL:

    http:/// サンプルにアクセスして、このゲームを試すことができます。 /hangman.php



声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境