BBS.ChinaUnix.net
首页 | 新闻 | Linux | FreeBSD | AIX | Windows | 博客 | 论坛 | 存储 | 网络 | 人才 | Wiki | 资料 | 读书 | 手册 | 下载 | 空间 | 搜索
  会员: 密码: 免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 


奥运快报: 
奥运热点:
 

php,命令行下石头剪刀游戏!最终版!

首页 » 论坛 » Php »  
[打印] [订阅] [收藏] [本帖文本页] [推荐此主题给朋友,立即获积分]
帅的不能再输啦   帅哥 (雪悟)
圣骑士



UID:363444
注册:2006-1-14
最后登录: 2008-08-27
帖子:99
精华:1

可用积分:597 (稍有积蓄)
信誉积分:100
空间积分:0 (白手起家)
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


[推广] 顶部
1楼 发表于 2008-7-3 16:40 
增加了胜率和败率的统计。
增加了总局数的统计。
对显示效果做了调整。

CODE:
[php]
#!/usr/bin/php
<?php
/**
* 石头剪刀布游戏(单机版)
*
* @author   genghonghao@gmail.com
*
* @date     2008/07/03
*
* @version  v,1.0
*
*/

set_time_limit(0);

$input['s']    = array(1, '石头');
$input['j']    = array(2, '剪刀');
$input['b']    = array(3, '布');

define('INTEGRAL', 'INTEGRA_LOG');   

define('SUCCESS_MARK', 5);
define('FAILURE_MARK', -5);
define('TIE_MARK', 0);

define('SUCCESS', "n::::::您在这次战斗中取得了胜利!::::::n");
define('FAILURE', "n::::::您在这次战斗中被系统战败!::::::n");
define('TIE', "n::::::您和系统战成了平局!::::::n");

// 石头=1, 剪刀=2, 布=3
$stone[-1] = '>';
$stone[1]  = '<';
$stone[-2] = '<';
$stone[2]  = '>';
$stone[0]  = '=';

fwrite(STDOUT,"n出招的规则是:  s代表石头  j代表剪刀  b代表布n退出请输入  :  quitn积分的规则是:  胜利+5分 失败-5分 平局不加分也不减分n");
while (true) {
    fwrite(STDOUT, "n请 出 招 : ");

    $inputu = trim(fgets(STDIN));
    if($inputu == 'quit') {
        fwrite(STDOUT, "nBye Byenn");
        break;
    }

    $key = array_rand($input, 1);
    $syst_out = $input[$key];
   
    if(array_key_exists($inputu, $input)) {
        $user_out = $input[$inputu];   
        $diff_err = $user_out[0] - $syst_out[0];
        
        if(array_key_exists($diff_err, $stone)) {
            switch($diff_err) {
                case -1:
                    $marke = SUCCESS_MARK;
                    $if    = SUCCESS;
                    break;
                case 1:
                    $marke = FAILURE_MARK;
                    $if    = FAILURE;
                    break;
                case -2:
                    $marke = FAILURE_MARK;
                    $if    = FAILURE;
                    break;
                case 2:
                    $marke = SUCCESS_MARK;
                    $if    = SUCCESS;
                    break;
                case 0:
                    $marke = TIE_MARK;
                    $if    = TIE;
                    break;
            }
            write_integral($marke . "n");
            $total  = read_integral();
            $result = read_result();
            $mark_content = "本局获得积分: {$marke}    剩余积分: {$total}n成绩:   总局数:{$result[3]} 胜率: %{$result[0]} 败率: %{$result[1]} 平率: %{$result[2]}n";
            fwrite(STDOUT, "n{$if}n你的出招:\"{$user_out[1]}\"n系统出招:\"{$syst_out[1]}\"n{$mark_content}");
        }

    } else {
        fwrite(STDOUT, "n请输入有效的值!n");
    }
   
}

function write_integral($content) {

        $handle = @fopen(INTEGRAL, 'a');

        @fwrite($handle, $content);

        @fclose($handle);

}

function read_integral() {

    $file = @file(INTEGRAL);
    $count = 0;

    foreach($file as $k => $v) {
        $count += !empty($v) ? (int)(str_replace('n', '', $v)) : 0;   
    }
    return $count;
}

function read_result() {
    $file = @file(INTEGRAL);
    $count = count($file);
    $s = 0;
    $f = 0;
    $t = 0;

    foreach($file as $k => $v) {
        $value = (int)(str_replace('n', '', $v));
        switch($value) {
            case SUCCESS_MARK:
                ++$s;
                break;
            case FAILURE_MARK:
                $f++;
                break;
            case TIE_MARK:
                $t++;
                break;

        }
    }
    $sd = sprintf("%2f", $s/$count);
    $sd = substr((string)$sd, 2, 2);
    $fd = sprintf("%2f", $f/$count);
    $fd = substr((string)$fd, 2, 2);
    $td = sprintf("%2f", $t/$count);
    $td = substr((string)$td, 2, 2);
    return array($sd, $fd, $td,$count);
}
[/php]



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

OnlyCore
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘

首页 » 论坛 » Php »


 


Copyright © 2001-2008 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - ChinaUnix - Archiver - WAP - TOP

Processed in 0.059199 second(s), 4 queries , Gzip enabled