理论上可以在不使用服务器端中间件技术的情况下在ActionScript3中构建蜘蛛吗?没有什么非常先进的(只访问HTML页面并将HTML作为文本返回到swf).
我正在制作一个蛇游戏,要求玩家按下WASD按键而不停止游戏过程以获得玩家的输入.所以我不能input()用于这种情况,因为那时游戏停止滴答作响.
我找到了一个getch()函数,它可以在不按下输入的情况下立即输入,但是这个函数也会停止游戏滴答以获得输入input().我决定使用线程模块通过getch()不同的线程获取输入.问题是getch()在不同的线程中不工作,我不知道为什么.
import threading, time
from msvcrt import getch
key = "lol" #it never changes because getch() in thread1 is useless
def thread1():
while True:
key = getch() #this simply is almost ignored by interpreter, the only thing it
#gives is that delays print() unless you press any key
print("this is thread1()")
threading.Thread(target = thread1).start()
while True:
time.sleep(1)
print(key)
Run Code Online (Sandbox Code Playgroud)
那么为什么getch()它没有用thread1()呢?
我想从以JSON格式给出的AST构建控制流图(CFG).所以这个AST是在TouchDevelop中针对每个脚本自动创建的.而且由于TouchDevelop不是面向对象的编程,我还可以使用访问者模式吗?任何有用的指针将不胜感激.
Update1:我的问题是我不明白从哪里开始.从互联网上,我应该使用访问者模式来浏览AST以访问每个节点并收集信息.从那里,我可以构建一个CFG,然后进行数据流分析.但有两个问题:
1)据我所知,我需要面向对象的编程模型,使用访问者模式,(我可能是错的),这TouchDevelop不是.
2)如下所示,AST不是AST格式,正如我在互联网上找到的那样.它是JSON格式.我想我可以解析JSON将其转换为所需的AST结构,但我不太确定.
示例脚本的源代码
meta version "v2.2,nothing";
meta name "DivideByZero";
//
meta platform "current";
action main() {
(5 / 0)?post_to_wall;
}
Run Code Online (Sandbox Code Playgroud)
产生的AST(JSON格式)如下:
{
"type":"app",
"version":"v2.2,nothing",
"name":"DivideByZero",
"icon":null,
"color":null,
"comment":"",
"things":[
{
"type":"action",
"name":"main",
"isEvent":false,
"outParameters":[
],
"inParameters":[
],
"body":[
{
"type":"exprStmt",
"tokens":[
{
"type":"operator",
"data":"("
},
{
"type":"operator",
"data":"5"
},
{
"type":"operator",
"data":"/"
},
{
"type":"operator",
"data":"0"
},
{
"type":"operator",
"data":")"
},
{
"type":"propertyRef",
"data":"post to wall"
}
]
}
],
"isPrivate":false
}
]
}
Run Code Online (Sandbox Code Playgroud) procedural-programming static-analysis abstract-syntax-tree touchdevelop control-flow-graph
我在这个命名空间中有一个枚举:
Andish.CSS.CommonSilverLight.Enum.Billing.AccountTransacts.AccountTransactAccountType
Run Code Online (Sandbox Code Playgroud)
...并使用此方法将数据集转换为类:
public List<T> ConvertTo<T>(DataTable datatable) where T : new()
{
var temp = new List<T>();
try
{
var columnsNames = (from DataColumn dataColumn in datatable.Columns select dataColumn.ColumnName).ToList();
temp = datatable.AsEnumerable().ToList().ConvertAll<T>(row => GetObject<T>(row, columnsNames));
return temp;
}
catch
{
return temp;
}
}
private T GetObject<T>(DataRow row, List<string> columnsName) where T : new()
{
T obj = new T();
try
{
string columnname = "";
string value = "";
PropertyInfo[] Properties = typeof(T).GetProperties();
foreach (PropertyInfo objProperty in Properties)
{ …Run Code Online (Sandbox Code Playgroud) 我有太多关于太阳系中行星的细节.我本来应该用Python制作一本字典.对于每个行星,我有它的半径,与太阳的距离,卫星的数量,是否存在大气层,卫星的名称,是否是气体行星等等.
例如,以下是Mercury的数据:
Mercury
Radius - 2,439.7 km
Distance from the sun - 58 million km
Moons - none
Atmosphere? True
Gas planet? False
Run Code Online (Sandbox Code Playgroud)
我如何使用所有这些数据来创建字典?
到目前为止,我有:
radius = {} #radius of planets
radius['Mercury'] = 2439.7
radius['Venus'] = 6051.8
radius['Earth'] = 6371.0
radius['Mars'] = 3,396.2
radius['Jupiter'] = 69,911
radius['Saturn'] = 60,268
radius['Uranus'] = 25,559
radius['Neptune'] = 24,764
distance = {} # distance from sun
distance['Mercury'] = 58000000
distance['Venus'] = 108000000
Run Code Online (Sandbox Code Playgroud)
我打算继续这个,为我拥有的所有数据创建一个字典,这样我就可以为每种不同类型的数据设置不同的部分.
但是,如果这是正确的方法,我不会这样做.有人能告诉我,我是否朝着正确的方向前进?如果没有,我该如何解决?
因此,li当有人在框中输入内容时,我将以下代码设置为创建元素.我也希望li元素包含一个唯一的ID,这将首先list-Item0去到list-Item1每等li创建人类型时入禁区,并增加了该项目.
知道怎么做这个吗?我不知道JQuery是什么,因为我是一个完全的初学者,所以我正在寻找一些非常基本的东西,我可以在这段代码中实现.
这是我到目前为止所拥有的:
function addItemFunction() {
document.getElementById("itemList").innerHTML=document.getElementById("itemList").innerHTML + '<li>' + addNewBox.value + '</li>';
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Node.js 中使用 pkcs7 填充解密消息,但没有成功。此消息已加密并从 Python 代码发送。我设法让它在纯 Python 中工作,但无法弄清楚如何在 Node.js 中实现解码(pkcs7 填充)功能。有人可以帮我重现代码吗?
Python 编码-加密
import base64
import hashlib
from Crypto.Cipher import AES
import pkcs7
text = "data"
pasword = "key"
pw_bytes = pasword.encode('utf-8')
text_bytes = text.encode('utf-8')
m = hashlib.md5()
m.update(pw_bytes)
key = m.hexdigest()
cipher = AES.new(key, AES.MODE_ECB)
pad_text = pkcs7.encode(text_bytes)
msg = cipher.encrypt(pad_text)
EncodeMsg = base64.b64encode(msg)
encryptedstring = EncodeMsg.decode("utf-8")
print(encryptedstring)
# Output: SxQE+SERkAzYcdG/ESAhiQ==
Run Code Online (Sandbox Code Playgroud)
另外,我在 Python pkcs7.py 中放置了 pkcs7 padding 的自定义代码
import binascii
try:
from StringIO import StringIO
except ImportError: …Run Code Online (Sandbox Code Playgroud) 我有一个问题,当我在checkbox中选择我的项目(因此它被检查)数组已经填满,但当我点击"Done"时,称为新活动GenreViewActivity,它调用了获取前一个活动的arraylist的方法,但是它的ListView,布局是空的.我错了什么?
AccountActivity GenreViewActivity
AccountActivity.java:
package com.example.msnma.movienotifier;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class AccountActivity extends AppCompatActivity
{
private static ArrayList <String> itemsChkStr = new ArrayList<String();
public class Item
{
boolean checked;
Drawable ItemDrawable;
String ItemString;
Item(/*Drawable drawable,*/ String t, boolean b)
{
//ItemDrawable = drawable; …Run Code Online (Sandbox Code Playgroud) 我目前正在尝试编写一些代码,在给定硬币值列表的情况下,它将返回总和为某个值的所有可能的硬币组合。这是程序应该如何运行的示例:
>>> find_changes(4,[1,2,3])
[[1, 1, 1, 1], [2, 1, 1], [1, 2, 1], [3, 1], [1, 1, 2], [2, 2], [1, 3]]
Run Code Online (Sandbox Code Playgroud)
我得到了以下代码模板来填写:
def find_changes(n, coins):
if n < 0:
return []
if n == 0:
return [[]]
all_changes = []
for last_used_coin in coins:
### DELETE THE "pass" LINE AND WRITE YOUR CODE HERE
pass
return all_changes
Run Code Online (Sandbox Code Playgroud)
我尝试在for循环中使用以下代码:
all_changes.append[last_used_coin]
find_changes(n-last_used_coin,coins)
Run Code Online (Sandbox Code Playgroud)
它目前不起作用。我究竟做错了什么?
python ×4
javascript ×2
android ×1
c# ×1
combinations ×1
cryptography ×1
dictionary ×1
encryption ×1
java ×1
list ×1
listview ×1
node.js ×1
python-3.x ×1
recursion ×1
reflection ×1
theory ×1
touchdevelop ×1