首先,感谢所有读者。
以下问题。
keys = pygame.key.get_pressed()
if pl_rect.colliderect(obs1_rect_left):
col_left = True
else:
col_left = False
if pl_rect.colliderect(obs1_rect_right):
col_right = True
else:
col_right = False
if pl_rect.colliderect(obs1_rect_down):
col_down = True
else:
col_down = False
if pl_rect.colliderect(obs1_rect_up):
col_up = True
else:
col_up = False
if keys[pygame.K_w] and not(col_up):
pl.y -= pl.vel
if keys[pygame.K_s] and not(col_down):
pl.y += pl.vel
if keys[pygame.K_d] and not(col_right):
pl.x += pl.vel
if keys[pygame.K_a] and not(col_left):
pl.x -= pl.vel
在这种情况下,我想通过选择某些低点和列来重新构建矩阵。
就像...
int MaxANum = 5;
int MaxBNum = 3;
int MaxENum = 8;
int ANum = 3;
int BNum = 2;
int ENum = 5;
range TTRange = 1..(MaxANum+MaxBNum);
range TRange = 1..(ANum+BNum);
range ARange = 1..ANum;
range BRange = 1..BNum;
range TERange = 1..MaxENum;
range ERange = 1..ENum;
M[TTRange][TERange] = [[**0, 1, 1, 0, 1**, 1, 0, 1] -> 1st ANum
[**1, 1, 0, 0, 1**, 0, 0, 1] -> 2nd ANum
[**0, 0, 1, 0, 1**, 0, 1, 0] -> 3rd ANum
[0, 1, 0, 0, 1, 1, 1, 0] -> 4th ANum
[1, 1, 0, 1, 0, 1, 0, 1] -> 5th ANum
[**1, 0, 0, 1, 1**, 0, 0, 0] -> 1st BNum
[**0, 0, 1, 0, 0, 0**, 1, 1] -> 2nd BNum
[1, 1, 0, 0, 0, 0, 0, 1]]; -> 3rd BNum
我是CPLEX和计算机编码的初学者。 请告诉我如何获取此代码。非常感谢您的阅读。
答案 0 :(得分:2)
我不太确定您的输入与所需输出的关系如何,但是此代码段可能会有所帮助:
range TTRange = 1..8;
range TRange = 1..5;
range TERange = 1..8;
range ERange = 1..5;
int M[TTRange][TERange] = [[0, 1, 1, 0, 1, 1, 0, 1],
[1, 1, 0, 0, 1, 0, 0, 1],
[0, 0, 1, 0, 1, 0, 1, 0],
[0, 1, 0, 0, 1, 1, 1, 0],
[1, 1, 0, 1, 0, 1, 0, 1],
[1, 0, 0, 1, 1, 0, 0, 0],
[0, 0, 1, 0, 0, 0, 1, 1],
[1, 1, 0, 0, 0, 0, 0, 1]];
int M1[t in TRange][e in ERange] = M[t][e];
它将生成此子矩阵:
M1 = [[0 1 1 0 1]
[1 1 0 0 1]
[0 0 1 0 1]
[0 1 0 0 1]
[1 1 0 1 0]]
“技巧”是在M1
的索引集中进行选择。