我想随机化一个初始化为完整的rubik立方体(正确边上的所有颜色).我有移动旋转立方体的函数.我想连续随机选择50个函数来正确随机化它.
我做这个项目了解更多一点关于Python的,因为我主要是做C++,我看到有Python的任何情况下,/开关,所以我要把一本字典.当我创建字典时,代码似乎由于某种原因而执行:
def random_cube(self):
scramble = { 0 : self.up_turn(),
1 : self.down_turn(),
2 : self.left_turn(),
3 : self.right_turn(),
4 : self.front_turn(),
5 : self.back_turn(),
6 : self.up_turn("inverted"),
7 : self.down_turn("inverted"),
8 : self.left_turn("inverted"),
9 : self.right_turn("inverted"),
10: self.front_turn("inverted"),
11: self.back_turn("inverted")
}
for x in range(50):
i = random.randint(0,11)
scramble[i]
Run Code Online (Sandbox Code Playgroud)
因此,当我创建这个字典时,由于某种原因(我认为)它似乎贯穿并执行所有11个条目.我似乎无法找到更好的方法,至少比if/elif长语句更优雅.
!编辑:实现这两个建议,任何建议都没有设置函数的("倒")标志.例如,调用1和7都会给我down_turn,但是输出显示标志在它应该在7号时没有设置.
有任何想法吗?
我在下面的代码中使用 RegSetValueEX ,它将值设置为难以理解的字符(看起来像中文)。我猜测整个美丽的编码世界有些什么?
HKEY regKey;
std::string newIP = "192.168.1.2";
Result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("Comm\\VMINI1\\Parms\\TcpIp"), 0, 0, ®Key);
if (Result == ERROR_SUCCESS)
{
Result = RegSetValueEx(regKey, TEXT("IPAddress"), 0, REG_SZ, (const BYTE*)newIP.c_str(), newIP.size() + 1);
if (Result == ERROR_SUCCESS)
{
std::cout << "Done!";
}
}
Run Code Online (Sandbox Code Playgroud)
然而,当我查看注册表项时,IP 地址并未设置为提供的值,而是随机字符。可能是什么问题呢?
我看过类似的问题,但我的情况有点不同.我确保以二进制模式打开文件并检查读取时是否发生错误.
文件内容:
message1, message2, 53467
Run Code Online (Sandbox Code Playgroud)
程序读取简单文件:
int bytesRead;
FILE* CSV;
CSV = fopen("\\Temp\\csv.txt", "rb");
char dataBuf[128];
while ( (bytesRead = fread(dataBuf, 1, sizeof(dataBuf), CSV) > 0) )
{
if (ferror(CSV))
//handle error
//do stuff with dataBuf contents
}
Run Code Online (Sandbox Code Playgroud)
fread()总是返回1.还没有输入ferror,所以没有文件读取错误.但是,char数组dataBuf填充了文件中的整个消息.我正在使用fread与另一个函数一起使用,所以我需要知道使用fread()读取了多少字节.有任何想法吗?
windows-ce ×2
c ×1
c++ ×1
dictionary ×1
embedded ×1
file ×1
fread ×1
python ×1
random ×1
registry ×1
rubiks-cube ×1
winapi ×1