当前位置:  开发笔记 > 开发工具 > 正文

PHP小游戏之考考记忆力

Peoplebelievewhattheywanttobelieve!换电脑了,转移、保存资料中这是以前写着玩的,没啥注释。。。。。。产生几个随机数字,随机提问,总共10轮windows命令行效果图<?php...">

  产生几个随机数字,随机提问,总共10轮

  windows命令行效果图

\

 

  

  substr(php_sapi_name(), 0, 3) !== &#39;cli&#39; AND die("Please run in cli mode");

  new Php_Cli_Game;

  class Php_Cli_Game{

  private $_digitals = array();

  private $_answer = &#39;&#39;;

  private $_level = 0;

  private $_accuracy = 0;

  const _SIZE = 30;

  public function __construct(){

  $this->_level = 1;

  $this->_accuracy = 0;

  do{

  $this->_init();

  $str = trim(fgets(STDIN));

  if(in_array($str, array("q", "e")) || $this->_check_answer($str)){

  break;

  }

  }while(true);

  }

  private function _init(){

  $this->_digitals = array_fill(0, self::_SIZE, " ");

  $range = array_rand(range(0, ++$this->_level * 5), $this->_level);

  $tmp=array();

  foreach($range AS $k => $v){

  do{

  $rnd = rand(0, self::_SIZE-1);

  }while($this->_digitals[$rnd] !== " ");

  $tmp[] = $this->_digitals[$rnd] = $v;

  }

  $this->_mk_question($tmp);

  }

  private function _check_answer($answer){

  if($answer === trim($this->_answer)){

  $this->_display("√ Good job!\n");

  $this->_accuracy++;

  }else{

  $this->_display(join(" ", $this->_digitals) . "\n答案是:{$this->_answer}\n\n");

  }

  if($this->_level > 10){

  $grades = array(

  0 => &#39;Stupid&#39;,

  1 => &#39;Stupid&#39;,

  2 => &#39;Stupid&#39;,

  3 => &#39;Disappointing&#39;,

  4 => &#39;Not so bad&#39;,

  5 => &#39;Not so bad&#39;,

  6 => &#39;Not bad&#39;,

  7 => &#39;Impossible&#39;,

  8 => &#39;Impossible&#39;,

  9 => &#39;Unbelievable&#39;,

  10 => &#39;Unbelievable&#39;,

  );

  $score = $this->_accuracy*10 . "%\t\t{$grades[$this->_accuracy]}!\n";

  $this->_display("\n\n答题正确率:" . $score);

  return true;

  }

  return false;

  }

  private function _mk_question($arr){

  sort($arr);

  $len = sizeof($arr);

  $questiOns= array();

  $questions[&#39;max&#39;] = array($arr[$len-1], &#39;最大数字&#39;);

  $questions[&#39;min&#39;] = array($arr[0], &#39;最小数字&#39;);

  if($len % 2){

  $questions[&#39;mid&#39;] = array($arr[intval($len/2)], &#39;中间数字&#39;);

  }

  if($len>3){

  $questions[&#39;second&#39;] = array($arr[$len-2], &#39;第二大数字&#39;);

  $questions[&#39;finally_second&#39;] = array($arr[1], &#39;第二小数字&#39;);

  }

  shuffle($questions);

  $tmp = array_shift($questions);

  $this->_answer = $tmp[0];

  $this->_display(join(" ", $this->_digitals), range(5, 1));

  $this->_display("输入刚才出现过的{$tmp[1]}:");

  }

  private function _display($str = &#39;&#39;, $steps = &#39;&#39;){

  $len = strlen($str);

  if(is_array($steps)){

  foreach($steps AS $k => $v){

  fwrite(STDOUT, $str . "\r");

  usleep(ceil(1000000/($k+1)));

  fwrite(STDOUT, str_repeat(" ", $len) . "\r");

  usleep(ceil(1000000/$this->_level));

  if($k==$this->_level-1){

  break;

  }

  }

  fwrite(STDOUT, "\n");

  }

  else{

  fwrite(STDOUT, $str);

  }

  }

  }

  ?>


推荐阅读
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 深入理解 Oracle 存储函数:计算员工年收入
    本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文介绍了如何使用jQuery根据元素的类型(如复选框)和标签名(如段落)来获取DOM对象。这有助于更高效地操作网页中的特定元素。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文介绍如何在 Xcode 中使用快捷键和菜单命令对多行代码进行缩进,包括右缩进和左缩进的具体操作方法。 ... [详细]
  • 介绍一个提供正版Windows软件下载的权威网站,确保用户能够安全合法地获取所需软件。 ... [详细]
  • c# – UWP:BrightnessOverride StartOverride逻辑 ... [详细]
  • 优化版Windows 10 LTSC 21H2企业版:适用于低内存设备
    此版本为经过优化的Windows 10 LTSC 21H2企业版,特别适合低内存配置的计算机。它基于官方版本进行了精简和性能优化,确保在资源有限的情况下依然能够稳定运行。 ... [详细]
  • 解决Linux系统中pygraphviz安装问题
    本文探讨了在Linux环境下安装pygraphviz时遇到的常见问题,并提供了详细的解决方案和最佳实践。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • CMake跨平台开发实践
    本文介绍如何使用CMake支持不同平台的代码编译。通过一个简单的示例,我们将展示如何编写CMakeLists.txt以适应Linux和Windows平台,并实现跨平台的函数调用。 ... [详细]
  • 在Linux系统中配置并启动ActiveMQ
    本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
author-avatar
欢乐文艺女青年
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有