へっぽこびんぼう野郎のnewbie日記

けろけーろ(´・ω・`)!

じゃんけんのプログラムをpythonで書いてみた。

こんな感じ。Rはグー、Sはチョキ、Pはパー。

  1 #! /usr/bin/env python

  2 # -*- coding:utf-8 -*-

  3 

  4 import random

  5 

  6 def pr(num):

  7     mes =['draw', 'win', 'lose']

  8     if num == -1: 

  9         num = 2

 10     print mes[num]

 11     

 12 jank = {'R':3, 'S':2, 'P':1}

 13 own_input = raw_input('May I input the yours -> ')

 14 enemy_select=random.choice(jank.keys())

 15 print "enemy select -> " + enemy_select

 16 x = jank[own_input] - jank[enemy_select]

 17 y = (-(x ** 3) + (3 * x))/2

 18 

 19 pr(y)

 17行目は素敵なおまじない。

数学ってすごい。

 

解説。

12 jank 辞書型を作成

13 入力を求めるやつ

14 jankのキーからランダムチョイス。

16,17 x = 自分グー(3) - 相手チョキ(2) = 1 -> y -> 勝利(1)

     x = 自分パー(1) - 相手チョキ(2) = -1 -> y -> 敗北(-1)

     x = 自分パー(1) - 相手グー(3) = -2 -> y -> 勝利(1)

8,9,10 y = -1で敗北だが、リストの2番目が'lose'なため

 

import random
means = ['P', 'S', 'R']

player_mean = input('May I input yours ->')
enemy_mean = random.choice(means)


print('enemy select ->', enemy_mean)

 

mean_distance = means.index(player_mean) - means.index(enemy_mean)
mean_distance += 3 if mean_distance < 0 else 0

 

print(['draw', 'win', 'lose'][mean_distance])

 

2017/03/22、目についたので書き直し