文档章节

剪刀石头布小习题三种语言python2、php、go代码

黄哥Python培训
 黄哥Python培训
发布于 2015/02/10 16:57
字数 757
阅读 894
收藏 1
点赞 0
评论 0

剪刀石头布小习题三种语言python2、php、go代码

# coding:utf-8
"""
python核心编程6-14习题的解题思路
设计一个"石头,剪子,布"游戏,有时又叫"Rochambeau",你小时候可能玩过,下面是规则.
你和你的对手,在同一时间做出特定的手势,必须是下面一种手势:石头,剪子,布.胜利者从
下面的规则中产生,这个规则本身是个悖论.
(a) 布包石头.
(b)石头砸剪子,
(c)剪子剪破布.在你的计算机版本中,用户输入她/他的选项,计算机找一个随机选项,然后由你
的程序来决定一个胜利者或者平手.注意:最好的算法是尽量少的使用 if 语句.
python培训 黄哥所写 python2
"""

import random
guess_list = ["石头", "剪刀", "布"]
win_combination = [["布", "石头"], ["石头", "剪刀"], ["剪刀", "布"]]
while True:
    computer = random.choice(guess_list)
    people = raw_input('请输入:石头,剪刀,布\n').strip()
    if people not in guess_list:
        people = raw_input('重新请输入:石头,剪刀,布\n').strip()
        continue
    if computer == people:
        print "平手,再玩一次!"
    elif [computer, people] in win_combination:
        print "电脑获胜!"
    else:
        print "人获胜!"
        break



<?php
/*
本代码由python视频培训班黄哥所写。
python核心编程6-14习题,用php写一遍。
在linux下终端运行 php test.php
本代码在mac下测试运行无误。
总计:这个代码是根据本人所写python代码修改过来的
学会一种编程语言,再学第二种,就很容易,为啥?
编程思路是一样的。
*/
$my_array = array("石头","剪刀","布");
$guize = array(array("石头","剪刀"),array("剪刀","布"),array("布","石头"));
//上面2个变量定义一个需要输入的数组,和一个获胜规则的二维数组
// var_dump($guize);
$rand_keys = array_rand($my_array);
$computer = $my_array[$rand_keys];
//取数组中随机值
 
echo $computer . "\n";
 
 
 
 
// echo $person;
while (True)
{
    echo "请输入: 石头  剪刀  布\n";
    $person = trim(fgets(STDIN)) ;
    $input = array($computer,$person);
    //将输入的$person和电脑随机产生的值构造一个数组
    //再判断在不在获胜规则数组中
 
    if (!(in_array($person,$my_array)))
    {
       echo "只能输入'剪刀、石头,布,请重新输入'";
       continue;
 
    }
    
 
    if ($computer == $person )
    {
        echo "平手\n";
         
    }
    else if (in_array($input,$guize)) {
        echo "电脑胜\n";
         
    }
    else
    {
      echo "人获胜\n";
      break;
    }
}
?>


package main

// 将python习题剪刀石头布修改为go语言的代码
// 黄哥写于2014年3月19日北京

import (
    "fmt"
    "math/rand"
)

// 下面这个函数判断一个一维slice在不在二维slice中,相当于python中in功能
func exist_in(str1 [][]string, str2 []string) int {
    for _, item := range str1 {
        if item[0] == str2[0] && item[1] == str2[1] {
            return 1
        }
    }
    return 0

}
func main() {
    var person string
    guess_list := []string{"石头", "剪刀", "布"}
    Win := [][]string{{"布", "石头"}, {"石头", "剪刀"}, {"剪刀", "布"}}

    for {
        num := rand.Intn(len(guess_list))
        computer := guess_list[num]
        fmt.Println(computer)
        fmt.Println("请输入'石头,剪刀,布'")
        fmt.Scanf("%s\n", &person)
        input := []string{computer, person} //构造一个一维slice
        if computer == person {
            fmt.Println("平手!")

        } else if exist_in(Win, input) > 0 {
            fmt.Println("电脑获胜")

        } else {
            fmt.Println("人获胜")
            break
        }
    }

}

© 著作权归作者所有

共有 人打赏支持
黄哥Python培训
粉丝 40
博文 21
码字总数 14219
作品 0
海淀
python核心编程6-14习题的解题思路修改版

python核心编程6-14习题的解题思路修改版 #coding:utf-8 """ python核心编程6-14习题的解题思路 设计一个"石头,剪子,布"游戏,有时又叫"Rochambeau",你小时候可能玩过,下面是规则.你和你的对手...

黄哥Python培训
2014/02/10
0
1
运维如何通过学习python学会编程

运维如何通过学习python学会编程 运维必须懂开发,特别是python开发,已经形成大家的共识,不懂开发的运维,路会越走越窄。 黄哥,从2012年底,从事python教学过程中,接触到很多运维的朋友。...

黄哥Python培训
2016/03/01
187
0
只学2个月编程能写出什么代码?

俗话说得好: 光说不练假把式 编程界也有句名言: Talk is cheap, show me the code. 关注我们编程教室有一段时间的朋友应该知道,除了提供各种学习资源和交流群组外,我们还有一套入门课程,...

crossin
06/15
0
0
ruby编写的石头剪刀布 ctrl +b 出现的一些问题

encoding: utf-8 arr = ['石头', '剪刀', '布'] win_arr = [['石头', '剪刀'], ['剪刀', '布'], ['布', '石头']] #随机computer的值,放入result数组中 result = [arr.sample] while (true)......

探索者丶
2015/01/12
116
0
这本Python入门畅销书《“笨办法”学python 3》,不仅仅是一本书

此前,小编分享过一篇文章《跟着数百万人编程导师学C语言!》,介绍的是泽德 A. 肖大神的新书《“笨办法”学C语言》很多用户在后台留言,《“笨办法”学Python 3》什么时候出版?今天这本书终...

异步社区
06/06
0
0
python 产生随机数,随机字符串

import random #随机整数: print random.randint(1,50) #随机选取0到100间的偶数: print random.randrange(0, 101, 2) #随机浮点数: print random.random() print random.uniform(1, 10) ......

小新爱测试
06/26
0
0
中国科学家发现石头剪刀布的制胜策略

浙江大学、浙江工商大学和中科院理论物理研究所的研究人员在预印本网站上发表研究报告(PDF),他们通过实验发现了石头剪刀布的一个制胜策略。研究人员招募了360名学生,将他们分成六组,随机...

oschina
2014/05/03
8.5K
147
原创:微信小程序源码解说:石头剪刀布(附源码下载)

昨天看有个石头剪刀布的练习,就拿出来做了一下,布局的代码浪费了很多时间,果然CSS这块的还不是很熟练,下面直接上图上代码了。 JS: .WXML .WXSS demo资源下载:小程序-石头剪刀布...

扶桑木下
2016/12/22
575
0
人机猜拳游戏(自己编写shell脚本)

#!/bin/bash read -p "请输入你的选择(石头 剪刀 布):" b0 a0=$[RANDOM % 3 + 1] #1为石头 2为剪刀 3为布 if [ $a0 -eq 1 ];then if [ $b0 == 石头 ];then &>/dev/null echo "平局" elif ......

英强云计算
06/29
0
0
python大法之一-python是什么,及安装

个人独立博客http://www.xbman.cn 出处:http://www.xbman.cn/article/2 常言说得好会一技走遍天下。今天开始记录分享一下python的相关知识,算是对自己学习的总结。 第一篇 python是什么,及...

魏昊晅
06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

shell中的函数、shell中的数组、告警系统需求分析

shell中的函数 格式: 格式: function f_name() { command } 函数必须要放在最前面 示例1(用来打印参数) 示例2(用于定义加法) 示例3(用于显示IP) shell中的数组 shell中的数组1 定义数...

Zhouliang6
今天
2
0
用 Scikit-Learn 和 Pandas 学习线性回归

      对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了。 1. 获取数据,定义问题     没有...

wangxuwei
今天
1
0
MAC安装MAVEN

一:下载maven压缩包(Zip或tar可选),解压压缩包 二:打开终端输入:vim ~/.bash_profile(如果找不到该文件新建一个:touch ./bash_profile) 三:输入i 四:输入maven环境变量配置 MAVEN_HO...

WALK_MAN
今天
0
0
33.iptables备份与恢复 firewalld的9个zone以及操作 service的操作

10.19 iptables规则备份和恢复 10.20 firewalld的9个zone 10.21 firewalld关于zone的操作 10.22 firewalld关于service的操作 10.19 iptables规则备份和恢复: ~1. 保存和备份iptables规则 ~2...

王鑫linux
今天
2
0
大数据教程(2.11):keeperalived+nginx高可用集群搭建教程

上一章节博主为大家介绍了目前大型互联网项目的系统架构体系,相信大家应该注意到其中很重要的一块知识nginx技术,在本节博主将为大家分享nginx的相关技术以及配置过程。 一、nginx相关概念 ...

em_aaron
今天
1
0
Apache Directory Studio连接Weblogic内置LDAP

OBIEE默认使用Weblogic内置LDAP管理用户及组。 要整理已存在的用户及组,此前办法是导出安全数据,文本编辑器打开认证文件,使用正则表达式获取用户及组的信息。 后来想到直接用Apache Dire...

wffger
今天
2
0
HFS

FS,它是一种上传文件的软件。 专为个人用户所设计的 HTTP 档案系统 - Http File Server,如果您觉得架设 FTP Server 太麻烦,那么这个软件可以提供您更方便的档案传输系统,下载后无须安装,...

garkey
今天
1
0
Java IO类库之BufferedInputStream

一、BufferedInputStream介绍 /** * A <code>BufferedInputStream</code> adds * functionality to another input stream-namely, * the ability to buffer the input and to * sup......

老韭菜
今天
0
0
STM 32 窗口看门狗

http://bbs.elecfans.com/jishu_805708_1_1.html https://blog.csdn.net/a1985831055/article/details/77404131...

whoisliang
昨天
1
0
Dubbo解析(六)-服务调用

当dubbo消费方和提供方都发布和引用完成后,第四步就是消费方调用提供方。 还是以dubbo的DemoService举例 -- 提供方<dubbo:application name="demo-provider"/><dubbo:registry address="z...

青离
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部