首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成Numpad周围的概率

生成Numpad周围的概率
EN

Code Golf用户
提问于 2015-07-18 20:56:12
回答 4查看 272关注 0票数 12

受这个问题( 今天早些时候 )的启发,我希望看到各种编程语言可以将数字转换为概率的有趣方法。通常,基于瓷砖的游戏将允许您使用数字垫,以任何方向移动,根据您的角色目前的位置。当为这些游戏制作人工智能时,Math.random() * 8是不够的,所以我必须要有一点创造性,以使运动看起来和感觉有点自然。

数字垫的定义如下:

代码语言:javascript
复制
7 | 8 | 9
- - - - -
4 | x | 6
- - - - -
1 | 2 | 3

请注意,5是一个无效的数字,因为你不能移动到自己身上。

所有示例都将使用以下概率:[50, 40, 30, 20, 10]

如果我想在8周围生成概率,应该如下所示:

代码语言:javascript
复制
40 | 50 | 40 
-- | -- | --
30 | xx | 30
-- | -- | --
20 | 10 | 20

输出将是[20, 10, 20, 30, 30, 40, 50, 40] (省略5)或[20, 10, 20, 30, null, 30, 40, 50, 40] (有5当前)。

如果我想在1中生成它们,它应该如下所示:

代码语言:javascript
复制
30 | 20 | 10
-- | -- | --
40 | xx | 20
-- | -- | --
50 | 40 | 30

输出将是[50, 40, 30, 40, 20, 30, 20, 10] (省略5)或[50, 40, 30, 40, null, 20, 30, 20, 10] (有5当前)。

您可以编写一个完整的程序,以任何通常的方式(命令行,stdin)接受输入并打印输出,或者编写一个带有数字参数的函数,该函数可以打印或返回输出。您的程序或功能应该接受一个数字-生成周围的位置。您应该使用以下概率:[50, 40, 30, 20, 10] (不需要硬编码)。

以字节为单位的最短代码获胜。标准的漏洞是不允许的。链接线程中发布的答案是不允许的。允许尾随或前导空间。根据您的喜好,您可以将4职位视为缺席或空职位。我对输出格式不太挑剔--把它作为逗号分隔的字符串或数组打印出来。

(这是我的第一个问题,放松点!)

EN

回答 4

Code Golf用户

发布于 2015-07-18 22:08:34

Prolog,166个字节

代码语言:javascript
复制
a(A,R):-I:J:K:L:M=50:40:30:20:10,B is abs(5-A),member(B:S,[4:[I,J,K,J,L,K,L,M],3:[J,I,J,K,K,L,M,L],2:[K,J,I,L,J,M,L,K],1:[J,K,L,I,M,J,K,L]]),(A/5>1,reverse(S,R);S=R).

它使用的事实是,9的结果与1的结果相反,2和8、3和7、4和6的结果是一样的。从1的结果到2、3和4的结果,有一些可识别的模式,但我很确定编码这个结果比硬编码1到4的序列要长,这就是我所做的。

示例:a(7,R).输出R = [30, 20, 10, 40, 20, 50, 40, 30]

票数 2
EN

Code Golf用户

发布于 2015-07-18 23:47:14

Python-115

代码语言:javascript
复制
a=[50,40,30,20,10,20,30,40]
b=[0,1,2,7,8,3,6,5,4]
def v(n):
 c=8-b[n-1]
 return[(a[c:]+a[:c])[e]for e in b if e-8]

a是一个数组,其值按数字垫周围的顺序排列(从1逆时针方向排列),b将数字映射到数字垫周围的位置。基于输入数字的数字垫周围的空格数(使用b确定),它生成一个数组,其中许多元素从a的前面移动到末尾,然后再次使用b重新排列元素,使其与数字相对应。

票数 0
EN

Code Golf用户

发布于 2015-07-19 01:16:27

Pyth-38个字节

除了对这两个数组进行基本压缩之外,它使用了与Python答案差不多的技术。

代码语言:javascript
复制
J_jC"3ê"T*RTm@.<jC"<àR"T-8@JtQd.DJ4

在网上试试

票数 0
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/53368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档