Drawing each sprite at different location

I can draw multiple sprites but they are all on top of each other at (0,0). How would I make each sprite appear after one another in a row?

My Rect class and Draw function:

class Rect(pygame.sprite.Sprite):     def __init__(self,color,width,height,value=0):         super().__init__()         self.image = pygame.Surface([width, height])         self.image.fill(color)         self.rect = self.image.get_rect()         self.value = value         self.x = 0         self.y = 0     def change_value(self,color,value):         self.image.fill(color)         self.value=value  def DrawRects():     rect1 = Rect(red, boxW, boxH)     rect2 = Rect(black, boxW, boxH)     rects.add(rect1, rect2)      rects.draw(screen) 

Is there a pair of non-isomorphic structures each of which is isomorphic to an ultrapower of the other?

Does there exist a pair of non-isomorphic structures $ \mathfrak{A}$ and $ \mathfrak{B}$ as well as ultrafilters $ \mathcal{U}$ on $ I$ and $ \mathcal{F}$ on $ J$ such that $ \mathfrak{A}^I/\mathcal{U}\cong\mathfrak{B}$ and $ \mathfrak{B}^J/\mathcal{F}\cong\mathfrak{A}$ ?

This question is inspired by the Keisler-Shelah theorem, which says that you can arrange $ \mathfrak{A}^I/\mathcal{U} \cong \mathfrak{B}^J/\mathcal{F}$ (moreover you can arrange that $ \mathfrak{A}^I/\mathcal{U}\cong \mathfrak{B}^I/\mathcal{U}$ ). The answer to this question very likely depends on set theoretic assumptions, so a reasonable weakening would be mere consistency relative to some strong set theoretic assumptions or in some forcing extension. Another reasonable weakening would be to ask about iterated ultrapowers rather than just ultrapowers.

On the other hand assuming a positive answer an obvious follow-up would be the question of the existence of a triple of pairwise non-isomorphic structures, each of which is isomorphic to ultrapowers of the other two. Another obvious follow-up is whether or not it can be arranged that $ \mathfrak{A}^I/\mathcal{U}\cong\mathfrak{B}$ and $ \mathfrak{B}^I/\mathcal{U\cong{\mathfrak{A}}}$ , i.e. whether or not there exists a structure and an ultrafilter such that iterating ultrapowers by that ultrafilter alternates between two isomorphism classes.