剪刀石头布小习题三种语言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

/*

本代码由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编程剪刀石头布思路_剪刀石头布小习题三种语言python2、php、go代码相关推荐

  1. python编程模式是什么_python 开发的三种运行模式详细介绍

    Python 三种运行模式 Python作为一门脚本语言,使用的范围很广.有的同学用来算法开发,有的用来验证逻辑,还有的作为胶水语言,用它来粘合整个系统的流程.不管怎么说,怎么使用python既取决于 ...

  2. numpy是python标准库吗_吐血 整理!140种Python标准库、第三方库和外部工具都有了...

    Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连接.数 ...

  3. (转载)Linux编程获取本机IP地址的三种方法

    (转载)http://blog.csdn.net/jcwKyl/article/details/6324147 这 是一项不太清晰而且没有多大意义的工作.一个原因是网络地址的设置非常灵活而且都是允许用 ...

  4. Spark - OnYARN 模式搭建,并使用 Scala、Java、Python 三种语言测试

    一.SparkOnYarn搭建 安装前需要提前安装好 hadoop 环境,关于 HDFS 和 Yarn 集群的搭建可以参考下面我的博客: https://blog.csdn.net/qq_436929 ...

  5. linux编程获取本机IP地址的三种方法

    这是一项不太清晰而且没有多大意义的工作.一个原因是网络地址的设置非常灵活而且都是允许用户进行个性化设置的,比如一台计算机上可以有多块物理网卡或者虚拟网卡,一个网卡上可以绑定多个IP地址,用户可以为网卡 ...

  6. Python selenium —— 一定要会用selenium的等待,三种等待方式解

    转自  http://lib.csdn.net/article/48/50937?knId=1313 Python selenium -- 一定要会用selenium的等待,三种等待方式解 发现太多人 ...

  7. 华为商城抢购助手_华为推海外版语音助手Celia:六国首发支持三种语言

    3月26日晚间消息,华为P40系列今日在海外发布,全新的EMUI 10.1也随之亮相.此次华为推出了海外版语音助手Celia,随华为P40系列在英国.西班牙.法国.智利.墨西哥.哥伦比亚六国首发上线. ...

  8. python编程大赛队名_编程吧少年总决赛圆满落幕,小码王学员包揽Python组第一!...

    2020年10月4日,在杭州未来科技城会议中心举行的编程吧少年全国青少年编程总决赛颁奖现场传来喜讯-- 小码王获得唯一最佳合作机构奖! 包揽Python组所有top1! 并拿下超过50%的特色奖项! ...

  9. 小学生python编程写游戏_小学生开始学Python,开发AI的首选编程语言:推荐一波Python书单...

    AlphaGo 都在使用的 Python 语言,是最接近 AI 的编程语言. 教育部考试中心近日发布了"关于全国计算机等级(NCRE)体系调整"的通知,决定自2018年3月起,在全 ...

最新文章

  1. socket层内容详解二
  2. 缺少com.umeng.analytics.MobclickAgent包,引入需注意
  3. C++面试八股文快问快答の基础篇
  4. c#和javascript函数的相互调用(ObjectForScripting 的类必须对 COM 可见。请确认该对象是公共的,或考虑向您的类添加 ComVisible 属性。)...
  5. windowsXPsp3怎样恢复桌面IE图标(非快捷方式)
  6. P3667 [USACO17OPEN]Bovine Genomics
  7. PHP100个知识点之2 日期时间(一)
  8. axios取消接口请求
  9. 影视剪辑,Pr视频剪辑软件自学,界面介绍与自定义
  10. Windows安装补丁_勒索病毒_补丁号
  11. android shell卸载应用程序,adb shell删除系统apk
  12. ME525+ 刷机工具及设置中心号码
  13. 2016 西班牙 国家德比(西甲31轮)
  14. 五环打击理论的主要原则
  15. iap支付java校验_iOS应用内支付(IAP)服务端端校验详解
  16. Unity引擎与Cocos引擎的区别
  17. 平均差误法中存在哪些误差?如何平衡这些误差?|小白心理-312/347考研答疑
  18. android 日历开发教程,android 开发教程之日历项目实践(三)
  19. set集合关系及特点
  20. hive表信息查询:查看表结构、表操作、建表语句

热门文章

  1. CVAE-GAN:Fine-Grained Image Generation through Asymmetric Training
  2. 将两个已排好序数组合并成一个排好序数组
  3. 网页设计师自我修养资源指南
  4. RxHttp 一款让你眼前一亮的 Http 请求框架
  5. 拯救者 显卡混合模式卡顿 解决方案
  6. 小狗的python代码_【Python】程序员教你用代码手绘一只可爱的小狗,正好拿去送给女朋友给她个惊喜...
  7. 微软正式发布 ChatGPT 版必应搜索和 Edge 浏览器
  8. Windows10安装MySQL5.7..及忘记root密码修改
  9. iOS crash 问题分析汇总
  10. 学习笔记21.07.10:绘制页面组合图