diff --git a/.ssh/config b/.ssh/config new file mode 100644 index 0000000..dee3f5e --- /dev/null +++ b/.ssh/config @@ -0,0 +1,7 @@ +Host git.sugarlabs.org + User Kaeedo + Port 22 + Hostname git.sugarlabs.org + IdentityFile ~/.ssh/publickey + TCPKeepAlive yes + IdentitiesOnly yes \ No newline at end of file diff --git a/.ssh/privatekey.ppk b/.ssh/privatekey.ppk new file mode 100644 index 0000000..287df2c --- /dev/null +++ b/.ssh/privatekey.ppk @@ -0,0 +1,17 @@ +PuTTY-User-Key-File-2: ssh-dss +Encryption: aes256-cbc +Comment: gitTry2 +Public-Lines: 10 +AAAAB3NzaC1kc3MAAACBAJBD63xfFhlsw2eL7dOjeq7MaGEeJPYcjTl2KWFHbIbk +xUvaOYtIV0dIyKp+zmxUWHw5umvk8cz4zrAh7CZDm6sD6ctpxwhs/SF/gOZEx3Xe +/OQu+LgL7BJm1Arxp7AFO5z6Xe3RYazvp7QpNu1UIoxRfozbhvoe/AgJy2MVq6Cr +AAAAFQDh2mdNkT/XB/ReKc5NZWDHzvYoWQAAAIAibk+AJ8cxLsCYGae2SI0d6gde +x3ERP8YMwbbovT6MzZW4p8gcBtQHgp5qGSRtJw7D+FngbcUneUOBh4ud8Ngloyhg +Q7IHQlr9K0SSs0oabxt0kUVTUdJbGjzgc1BRNiIXDUG6JS1WalV0fcWuqUcEL0by +5Jdh6NwuJnpuDJvytgAAAIBpLgr6h9tm+RPiEUQeuugErRzMISevH7UD0X0BD5zm ++q0QtD30rG3Y0RlL99aX2rYn5vvsQy28cRtpZVYkG7QkcpN5SJCd5iYiSmqL66bg +qHajbeVVXw4ZRobwfdjwVeOW44q1GEbdLShLNLZfuwFlsR3Za4Dlh8h8VCtaEwKJ +bQ== +Private-Lines: 1 +NP1wQ5Xp9nGhYxCUF1ycGC6v8di7n8hygmkWkKdeAIo= +Private-MAC: d8f6cd26135b59a3c784467f4a96621c47b5d915 diff --git a/.ssh/publickey b/.ssh/publickey new file mode 100644 index 0000000..debb412 --- /dev/null +++ b/.ssh/publickey @@ -0,0 +1,13 @@ +---- BEGIN SSH2 PUBLIC KEY ---- +Comment: "gitTry2" +AAAAB3NzaC1kc3MAAACBAJBD63xfFhlsw2eL7dOjeq7MaGEeJPYcjTl2KWFHbIbk +xUvaOYtIV0dIyKp+zmxUWHw5umvk8cz4zrAh7CZDm6sD6ctpxwhs/SF/gOZEx3Xe +/OQu+LgL7BJm1Arxp7AFO5z6Xe3RYazvp7QpNu1UIoxRfozbhvoe/AgJy2MVq6Cr +AAAAFQDh2mdNkT/XB/ReKc5NZWDHzvYoWQAAAIAibk+AJ8cxLsCYGae2SI0d6gde +x3ERP8YMwbbovT6MzZW4p8gcBtQHgp5qGSRtJw7D+FngbcUneUOBh4ud8Ngloyhg +Q7IHQlr9K0SSs0oabxt0kUVTUdJbGjzgc1BRNiIXDUG6JS1WalV0fcWuqUcEL0by +5Jdh6NwuJnpuDJvytgAAAIBpLgr6h9tm+RPiEUQeuugErRzMISevH7UD0X0BD5zm ++q0QtD30rG3Y0RlL99aX2rYn5vvsQy28cRtpZVYkG7QkcpN5SJCd5iYiSmqL66bg +qHajbeVVXw4ZRobwfdjwVeOW44q1GEbdLShLNLZfuwFlsR3Za4Dlh8h8VCtaEwKJ +bQ== +---- END SSH2 PUBLIC KEY ---- diff --git a/blocku (2).py b/blocku (2).py new file mode 100644 index 0000000..e4709c7 --- /dev/null +++ b/blocku (2).py @@ -0,0 +1,435 @@ + +"""Main Blocku game logic class + +import every thing that the activity needs and run game code + +Authored by Fran Rogers and Ariel Zamparini +""" + +#!/usr/bin/python +import pygame, random, os.path +from pygame.locals import * +from pygame import * + +import random + +try: import gtk +except ImportError: gtk = None + +#see if we can load more than standard BMP +if not pygame.image.get_extended(): + raise SystemExit("Sorry, extended image module required") + +#game constants +SCREENRECT = Rect(0, 0, 640, 480) +KEYBOARDMOVESPEED = 10 + + +def load_image(file): + "loads an image, prepares it for play" + file = os.path.join('data', file) + try: + surface = pygame.image.load(file) + except pygame.error: + raise SystemExit('Could not load image "%s" %s'%(file, pygame.get_error())) + return surface.convert() + +def load_images(*files): + imgs = [] + for file in files: + imgs.append(load_image(file)) + return imgs + +# num - number of blocks on one side of grid (ex: pass in 3 for a 3x3 grid) +def GenerateAddition(num, answer): + rows = list([] for i in range(num)) + blocks = list([] for i in range(num * num)) + for i in range(num): + rows[i] = list([] for i in range(num)) + + # x and y positions of starting point of grid + x = 100 + y = 100 + # answer to solve for + + # populate the list with blocks + #blocks are Block(n,s,e,w,x,y) xy= starting position + for i in range(num): + for k in range(num): + temp = Block(-1, -1, -1, -1, (x + (i * 100)), (y + (k * 100))) + rows[i][k] = temp + #blocks[(i * 3) + k] = temp + + # Left and right answers + for i in range(num): + for k in range(num): + # set the block's right side answer + rows[i][k].east = random.randint(0, answer) + # generate a random num for the block's west answer + if rows[i][k].west == -1: + rows[i][k].west = random.randint(0, answer + 10) + # check the left side answer of the block in the adjacent row + if (i + 1) < num: + rows[i + 1][k].west = (answer - rows[i][k].east) + #print(rows[3][2]) + + # Top and bottom answers + for i in range(num): + for k in range(num): + # set top answer if empty + if (rows[i][k].north == -1): + rows[i][k].north = random.randint(0, answer + 10) + # get random number for south + rows[i][k].south = random.randint(0, answer) + # get answer in block below the block we just filled in + if (k + 1) < num: + rows[i][k + 1].north = (answer - rows[i][k].south) + + # get all the blocks into a single list + count = 0 + print(count) + for i in range(num): + for k in range(num): + blocks[count] = rows[i][k] + count += 1 + + print(count) + + return blocks + +class dummysound: + def play(self): pass + +def load_sound(file): + if not pygame.mixer: return dummysound() + file = os.path.join('data', file) + try: + sound = pygame.mixer.Sound(file) + return sound + except pygame.error: + print('Warning, unable to load,', file) + return dummysound() + +class Block(pygame.sprite.Sprite): + images = [] + north='' + east='' + south='' + west='' + isLast = 0 + isMoving = False + globX=1 + globY=1 + def __init__(self, n='', e='', s='', w='', x='', y=''): + pygame.sprite.Sprite.__init__(self, self.containers) + self.image = self.images[0].copy() + self.rect = pygame.Rect(x,y,64,64) + self.font = pygame.font.Font(None, 20) + self.font.set_italic(1) + self.color = Color('blue') + self.update() + self.north = n + self.east = e + self.south = s + self.west = w + + def update(self): + #keep the block on the screen + self.rect = self.rect.clamp(SCREENRECT) + self.image = self.images[0].copy() + self.image.blit(self.font.render(str(self.north), 0, self.color),(26,3)) + self.image.blit(self.font.render(str(self.east), 0, self.color),(47,25)) + self.image.blit(self.font.render(str(self.south), 0, self.color),(26,47)) + self.image.blit(self.font.render(str(self.west), 0, self.color),(5,25)) + # game logic here for snapping to grid ...? + # when the block is snapped to the grid clamp the rect there + def move(self, direction): + # up = 0, right = 1, down = 2, left = 3 + if direction == 0: + self.rect.move_ip(0,-KEYBOARDMOVESPEED) + if direction == 1: + self.rect.move_ip(KEYBOARDMOVESPEED,0) + if direction == 2: + self.rect.move_ip(0,KEYBOARDMOVESPEED) + if direction == 3: + self.rect.move_ip(-KEYBOARDMOVESPEED,0) + def setGrabbed(self, sett): + self.isMoving = sett + def isGrabbed(self): + return self.isMoving + def grab(self, pos): + x, y = pos; + globX=x + globY=y + #print x , y + #print self.rect.left, self.rect.top + #self.rect = self.rect.move(x, y) + #remember the offset here is 32 as this will center the mouse in our 64pixel image + self.rect.left = x-32 + self.rect.top = y-32 + def getX(self): + return globX + def getY(self): + return globY + def rotate(self): + temp = self.north + self.north = self.east + self.east = self.south + self.south = self.west + self.west = temp + #print self.north, self.east, self.south, self.west + +class Puzzle: + def __init__(self): + #self.rule = rule + self.blocks = {} + + def add_block(self, block, coords): + self.blocks[coords] = block + + def get_blocks(self): + return self.blocks + + def shuffle(self): + pass + +class Game: + def __init__(self): + # Set up a clock for managing the frame rate. + self.clock = pygame.time.Clock() + + self.puzzle = Puzzle() + + self.paused = False + + def set_paused(self, paused): + self.paused = paused + + # Called to save the state of the game to the Journal. + def write_file(self, file_path): + pass + + # Called to load the state of the game from the Journal. + def read_file(self, file_path): + pass + + # The main game loop. + def run(self): + self.running = True + isRan = 0 + if pygame.mixer and not pygame.mixer.get_init(): + print('Warning, no sound') + pygame.mixer = None + + #set the screen up + winstyle = 0 # |FULLSCREEN + bestdepth = pygame.display.mode_ok(SCREENRECT.size, winstyle, 32) + screen = pygame.display.set_mode(SCREENRECT.size, winstyle, bestdepth) + + + # load images here + # for gifs img = load_image('filename.gif') + # for bmps img = pygame.image.load('filename.bmp') but our function handles that for us + # a note for graphics blit means copy pixels from screen.blit() + iconImg = load_image('blocku.png') + background = load_image('background.png') + # load images to pipe to the sprite classes + blockImg = load_image('block.png') + Block.images = [blockImg] + gridImg1 = load_image('square.png') + gridImg2 = load_image('square.png') + gridImg3 = load_image('square.png') + gridImg4 = load_image('square.png') + gridImg5 = load_image('square.png') + gridImg6 = load_image('square.png') + gridImg7 = load_image('square.png') + gridImg8 = load_image('square.png') + gridImg9 = load_image('square.png') + + allGrid = [gridImg1,gridImg2,gridImg3,gridImg4,gridImg5,gridImg6,gridImg7,gridImg8,gridImg9] + + + # the test will need rects and positions i sugest make some kind of default + # this information can be held by each block as they are created but is made here + + #get the image and screen in the same format + if background.get_bitsize() == 8: + screen.set_palette(background.get_palette()) + else: + background = background.convert() + gridpos = [(200,200),(272,200),(344,200),(200,272),(272,272),(344,272),(200,344),(272,344),(344,344)] + background.blit(gridImg1, gridpos[0]) + background.blit(gridImg2, gridpos[1]) + background.blit(gridImg3, gridpos[2]) + background.blit(gridImg4, gridpos[3]) + background.blit(gridImg5, gridpos[4]) + background.blit(gridImg6, gridpos[5]) + background.blit(gridImg7, gridpos[6]) + background.blit(gridImg8, gridpos[7]) + background.blit(gridImg9, gridpos[8]) + + screen.blit(background,(0,0)) + pygame.display.flip() + + #to set the icon up and to decorate the game window + icon = pygame.transform.scale(iconImg, (32, 32)) + pygame.display.set_icon(icon) + pygame.display.set_caption('Blocku') + + #this next call is sort of like sprite batch . draw + spriteBatch = pygame.sprite.RenderUpdates() + + #main blocku code structs + blocks = pygame.sprite.Group() + Block.containers = blocks,spriteBatch + #blocks are Block(n,s,e,w,x,y) xy= starting position2 + + """aBlock = Block(1,2,3,4,200,200) + bBlock = Block(5,6,7,8,300,300) + cBlock = Block(9,1,2,3,250,250) + dBlock = Block(4,5,6,7,350,350) + eBlock = Block(2,1,9,8,400,400) + fBlock = Block(3,4,5,6,450,450) + gBlock = Block(1,9,8,7,500,500) + hBlock = Block(2,3,4,5,550,550) + iBlock = Block(9,8,7,6,150,150) + allBlocks=[aBlock,bBlock,cBlock,dBlock,eBlock,fBlock,gBlock,hBlock,iBlock]""" + allBlocks = GenerateAddition(3, 100) + print(allBlocks) + + global debugText + debugText = '' + #see if there is a sprite font + if pygame.font: + spriteBatch.add(Text('Drawing call test ')) + spriteBatch.add(mouseUpdate()) + + #if a key is down + global keyDown + keyDown = False + # it is important to note that like xna the origin is 0,0 + # the top left of the current window + # print is trace in console + # and increases as you go down and to the right + # pygame has a collision detector under pygame.sprite.spritecollide(group,group,dokill) + # this will return a list of colliders, dokill will remove the colliders from the parrent group if true + + while self.running: + # Pump GTK messages. + while gtk and gtk.events_pending(): + gtk.main_iteration() + + # Pump PyGame messages. + for e in event.get(): + if e.type == QUIT: #or \ + #(e.type == KEYDOWN and e.key == K_ESCAPE): + return + elif e.type == pygame.VIDEORESIZE: + pygame.display.set_mode(e.size, pygame.RESIZABLE) + if e.type == MOUSEBUTTONDOWN: + event.set_grab(1) + elif e.type == MOUSEBUTTONUP: + event.set_grab(0) + + # get the state of the keyboard for input + keystate = pygame.key.get_pressed() + if not keystate[K_SPACE]: + keyDown = False + # for key test use keystate[key] and a return of true will occur when key down + # clear/erase the last drawn sprites + spriteBatch.clear(screen, background) + # update all the sprites + spriteBatch.update() + + #for block in blocks: + x, y = mouse.get_pos() + + for block in allBlocks: + # if keystate[K_SPACE] and not keyDown: + # block.rotate() + # keyDown = True + if block.isGrabbed() == True: + debugText='ZOMG TORRENT PLZ' + isLast = block + if event.get_grab(): + debugText += ' holding mouse button 1' + # and block.isGrabbed() == False + if block.rect.collidepoint(x,y): + block.grab(mouse.get_pos()) + block.setGrabbed(True) + debugText += ' grabbed a Block' + for tempblock in allBlocks: + tempblock.isLast = 0 + block.isLast = 1 + isRan = 1 + break + elif isRan == 1 and block.isLast == 1: + debugText = '' + block.setGrabbed(False) + #block.left = 250 + for piece in gridpos: + if mouse.get_pos()[0] > piece[0] and mouse.get_pos()[0]< piece[0]+72 and mouse.get_pos()[1] > piece[1] and mouse.get_pos()[1]< piece[1]+72: + debugText=str(piece) + place = piece[0] + 36, piece[1] + 36 + isLast.grab(place) + isRan = 0 + + # note random here is random.random() + # note foreach here is for object in + + # draw call for the screen + draw = spriteBatch.draw(screen) + pygame.display.update(draw) + + + # Try to stay at 30 FPS + self.clock.tick(30) + + print("Closing") +class Text(pygame.sprite.Sprite): + text = '' + def __init__(self,txt=''): + pygame.sprite.Sprite.__init__(self) + self.font = pygame.font.Font(None, 20) + self.font.set_italic(1) + self.color = Color('blue') + self.update() + self.rect = self.image.get_rect().move(55, 80) + self.text = txt + + def update(self): + global debugText + msg = self.text + debugText + self.image = self.font.render(msg, 0, self.color) + +class mouseUpdate(pygame.sprite.Sprite): + def __init__(self): + pygame.sprite.Sprite.__init__(self) + self.font = pygame.font.Font(None, 20) + self.font.set_italic(1) + self.color = Color('blue') + self.update() + self.rect = self.image.get_rect().move(50, 220) + + def update(self): + msg = 'Mouse Position %s, %s' % mouse.get_pos() + self.image = self.font.render(msg, 0, self.color) + +# This function is called when the game is run directly from the command line: +# ./TestGame.py +def main(): + # Initialize pygame + pygame.init() + + # Initializa game + game = Game() + + # Run the game + game.run() + pygame.Quit() + print("Closing") + +#call the "main" function if python is running this script +if __name__ == '__main__': + main() + diff --git a/blocku - Copy.py b/blocku - Copy.py new file mode 100644 index 0000000..9a4a973 --- /dev/null +++ b/blocku - Copy.py @@ -0,0 +1,393 @@ + +"""Main Blocku game logic class + +import every thing that the activity needs and run game code + +Authored by Fran Rogers and Ariel Zamparini +""" + +#!/usr/bin/python +import pygame, random, os.path +from pygame.locals import * +from pygame import * + +try: import gtk +except ImportError: gtk = None + +#see if we can load more than standard BMP +if not pygame.image.get_extended(): + raise SystemExit("Sorry, extended image module required") + +#game constants +SCREENRECT = Rect(0, 0, 640, 480) +KEYBOARDMOVESPEED = 10 + + +def load_image(file): + "loads an image, prepares it for play" + file = os.path.join('data', file) + try: + surface = pygame.image.load(file) + except pygame.error: + raise SystemExit('Could not load image "%s" %s'%(file, pygame.get_error())) + return surface.convert() + +def load_images(*files): + imgs = [] + for file in files: + imgs.append(load_image(file)) + return imgs + +class dummysound: + def play(self): pass + +def load_sound(file): + if not pygame.mixer: return dummysound() + file = os.path.join('data', file) + try: + sound = pygame.mixer.Sound(file) + return sound + except pygame.error: + print('Warning, unable to load,', file) + return dummysound() + +class Block(pygame.sprite.Sprite): + images = [] + north='' + east='' + south='' + west='' + isLast = 0 + isMoving = False + globX=1 + globY=1 + def __init__(self, n='', e='', s='', w='', x='', y=''): + pygame.sprite.Sprite.__init__(self, self.containers) + self.image = self.images[0].copy() + self.rect = pygame.Rect(x,y,64,64) + self.font = pygame.font.Font(None, 20) + self.font.set_italic(1) + self.color = Color('blue') + self.update() + self.north = n + self.east = e + self.south = s + self.west = w + + def update(self): + #keep the block on the screen + self.rect = self.rect.clamp(SCREENRECT) + self.image = self.images[0].copy() + self.image.blit(self.font.render(str(self.north), 0, self.color),(26,3)) + self.image.blit(self.font.render(str(self.east), 0, self.color),(47,25)) + self.image.blit(self.font.render(str(self.south), 0, self.color),(26,47)) + self.image.blit(self.font.render(str(self.west), 0, self.color),(5,25)) + # game logic here for snapping to grid ...? + # when the block is snapped to the grid clamp the rect there + def move(self, direction): + # up = 0, right = 1, down = 2, left = 3 + if direction == 0: + self.rect.move_ip(0,-KEYBOARDMOVESPEED) + if direction == 1: + self.rect.move_ip(KEYBOARDMOVESPEED,0) + if direction == 2: + self.rect.move_ip(0,KEYBOARDMOVESPEED) + if direction == 3: + self.rect.move_ip(-KEYBOARDMOVESPEED,0) + def setGrabbed(self, sett): + self.isMoving = sett + def isGrabbed(self): + return self.isMoving + def grab(self, pos): + x, y = pos; + globX=x + globY=y + #print x , y + #print self.rect.left, self.rect.top + #self.rect = self.rect.move(x, y) + #remember the offset here is 32 as this will center the mouse in our 64pixel image + self.rect.left = x-32 + self.rect.top = y-32 + def getX(self): + return globX + def getY(self): + return globY + def rotate(self): + temp = self.north + self.north = self.east + self.east = self.south + self.south = self.west + self.west = temp + #print self.north, self.east, self.south, self.west + +class Puzzle: + def __init__(self): + #self.rule = rule + self.blocks = {} + + def add_block(self, block, coords): + self.blocks[coords] = block + + def get_blocks(self): + return self.blocks + + def shuffle(self): + pass + +class Game: + def __init__(self): + # Set up a clock for managing the frame rate. + self.clock = pygame.time.Clock() + + self.puzzle = Puzzle() + + self.paused = False + + + + def set_paused(self, paused): + self.paused = paused + + # Called to save the state of the game to the Journal. + def write_file(self, file_path): + pass + + # Called to load the state of the game from the Journal. + def read_file(self, file_path): + pass + + # The main game loop. + def run(self): + self.running = True + isRan = 0 + if pygame.mixer and not pygame.mixer.get_init(): + print('Warning, no sound') + pygame.mixer = None + + #set the screen up + winstyle = 0 # |FULLSCREEN + bestdepth = pygame.display.mode_ok(SCREENRECT.size, winstyle, 32) + screen = pygame.display.set_mode(SCREENRECT.size, winstyle, bestdepth) + + + # load images here + # for gifs img = load_image('filename.gif') + # for bmps img = pygame.image.load('filename.bmp') but our function handles that for us + # a note for graphics blit means copy pixels from screen.blit() + menuImg = load_image('bg.png') + iconImg = load_image('blocku.png') + background = load_image('background.png') + # load images to pipe to the sprite classes + blockImg = load_image('block.png') + Block.images = [blockImg] + gridImg1 = load_image('square.png') + gridImg2 = load_image('square.png') + gridImg3 = load_image('square.png') + gridImg4 = load_image('square.png') + gridImg5 = load_image('square.png') + gridImg6 = load_image('square.png') + gridImg7 = load_image('square.png') + gridImg8 = load_image('square.png') + gridImg9 = load_image('square.png') + + allGrid = [gridImg1,gridImg2,gridImg3,gridImg4,gridImg5,gridImg6,gridImg7,gridImg8,gridImg9] + + # the test will need rects and positions i sugest make some kind of default + # this information can be held by each block as they are created but is made here + + #get the image and screen in the same format + if background.get_bitsize() == 8: + screen.set_palette(background.get_palette()) + else: + background = background.convert() + gridpos = [(200,200),(272,200),(344,200),(200,272),(272,272),(344,272),(200,344),(272,344),(344,344)] + + background.blit(menuImg, (0,0)) + + background.blit(gridImg1, gridpos[0]) + background.blit(gridImg2, gridpos[1]) + background.blit(gridImg3, gridpos[2]) + background.blit(gridImg4, gridpos[3]) + background.blit(gridImg5, gridpos[4]) + background.blit(gridImg6, gridpos[5]) + background.blit(gridImg7, gridpos[6]) + background.blit(gridImg8, gridpos[7]) + background.blit(gridImg9, gridpos[8]) + + screen.blit(menuImg,(0,0)) + screen.blit(background,(0,0)) + + + pygame.display.flip() + + #to set the icon up and to decorate the game window + icon = pygame.transform.scale(iconImg, (32, 32)) + pygame.display.set_icon(icon) + pygame.display.set_caption('Blocku') + + #this next call is sort of like sprite batch . draw + spriteBatch = pygame.sprite.RenderUpdates() + + #main blocku code structs + blocks = pygame.sprite.Group() + Block.containers = blocks,spriteBatch + #blocks are Block(n,s,e,w,x,y) xy= starting position + + aBlock = Block(1,2,3,4,200,200) + bBlock = Block(5,6,7,8,300,300) + cBlock = Block(9,1,2,3,250,250) + dBlock = Block(4,5,6,7,350,350) + eBlock = Block(2,1,9,8,400,400) + fBlock = Block(3,4,5,6,450,450) + gBlock = Block(1,9,8,7,500,500) + hBlock = Block(2,3,4,5,550,550) + iBlock = Block(9,8,7,6,150,150) + allBlocks=[aBlock,bBlock,cBlock,dBlock,eBlock,fBlock,gBlock,hBlock,iBlock] + + + + global debugText + debugText = '' + #see if there is a sprite font + if pygame.font: + spriteBatch.add(Text('Drawing call test ')) + spriteBatch.add(mouseUpdate()) + #spriteBatch.add(mainText()) + + #if a key is down + global keyDown + keyDown = False + # it is important to note that like xna the origin is 0,0 + # the top left of the current window + # print is trace in console + # and increases as you go down and to the right + # pygame has a collision detector under pygame.sprite.spritecollide(group,group,dokill) + # this will return a list of colliders, dokill will remove the colliders from the parrent group if true + + while self.running: + # Pump GTK messages. + while gtk and gtk.events_pending(): + gtk.main_iteration() + + # Pump PyGame messages. + for e in event.get(): + if e.type == QUIT or \ + (e.type == KEYDOWN and e.key == K_ESCAPE): + return + elif e.type == pygame.VIDEORESIZE: + pygame.display.set_mode(e.size, pygame.RESIZABLE) + if e.type == MOUSEBUTTONDOWN: + event.set_grab(1) + elif e.type == MOUSEBUTTONUP: + event.set_grab(0) + + # get the state of the keyboard for input + keystate = pygame.key.get_pressed() + if not keystate[K_SPACE]: + keyDown = False + # for key test use keystate[key] and a return of true will occur when key down + # clear/erase the last drawn sprites + spriteBatch.clear(screen, background) + # update all the sprites + spriteBatch.update() + + #for block in blocks: + x, y = mouse.get_pos() + + for block in allBlocks: + # if keystate[K_SPACE] and not keyDown: + # block.rotate() + # keyDown = True + if block.isGrabbed() == True: + debugText='ZOMG TORRENT PLZ' + isLast = block + if event.get_grab(): + debugText += ' holding mouse button 1' + # and block.isGrabbed() == False + if block.rect.collidepoint(x,y): + block.grab(mouse.get_pos()) + block.setGrabbed(True) + debugText += ' grabbed a Block' + for tempblock in allBlocks: + tempblock.isLast = 0 + block.isLast = 1 + isRan = 1 + break + elif isRan == 1 and block.isLast == 1: + debugText = '' + block.setGrabbed(False) + #block.left = 250 + for piece in gridpos: + if mouse.get_pos()[0] > piece[0] and mouse.get_pos()[0]< piece[0]+72 and mouse.get_pos()[1] > piece[1] and mouse.get_pos()[1]< piece[1]+72: + debugText=str(piece) + place = piece[0] + 36, piece[1] + 36 + isLast.grab(place) + isRan = 0 + + # note random here is random.random() + # note foreach here is for object in + + # draw call for the screen + draw = spriteBatch.draw(screen) + pygame.display.update(draw) + + + # Try to stay at 30 FPS + self.clock.tick(30) + +class Text(pygame.sprite.Sprite): + text = '' + def __init__(self,txt=''): + pygame.sprite.Sprite.__init__(self) + self.font = pygame.font.Font(None, 20) + self.font.set_italic(1) + self.color = Color('blue') + self.update() + self.rect = self.image.get_rect().move(55, 80) + self.text = txt + + def update(self): + global debugText + msg = self.text + debugText + self.image = self.font.render(msg, 0, self.color) + +class mouseUpdate(pygame.sprite.Sprite): + text='' + def __init__(self): + pygame.sprite.Sprite.__init__(self) + self.font = pygame.font.Font(None, 20) + self.font.set_italic(1) + self.color = Color('blue') + self.update() + self.rect = self.image.get_rect().move(50, 220) + + def update(self): + msg = 'Mouse Position %s, %s' % mouse.get_pos() + msg = self.text + msg + self.image = self.font.render(msg, 0, self.color) + +#def mainMenu(): + # iconImg = load_image('bg.png') +# + # global mainText + # mainText='33333333333333333333' + + + +# This function is called when the game is run directly from the command line: +# ./TestGame.py +def main(): + # Initialize pygame + pygame.init() + + # Initialize a game + game = Game() + + # Run the game + game.run() + pygame.quit() + +#call the "main" function if python is running this script +if __name__ == '__main__': + main() + diff --git a/blocku.py b/blocku.py index 365b87a..0d5c47c 100644 --- a/blocku.py +++ b/blocku.py @@ -37,6 +37,62 @@ def load_images(*files): for file in files: imgs.append(load_image(file)) return imgs +# num - number of blocks on one side of grid (ex: pass in 3 for a 3x3 grid) +def GenerateAddition(num, answer): + rows = list([] for i in range(num)) + blocks = list([] for i in range(num * num)) + for i in range(num): + rows[i] = list([] for i in range(num)) + + # x and y positions of starting point of grid + x = 100 + y = 100 + # answer to solve for + + # populate the list with blocks + #blocks are Block(n,s,e,w,x,y) xy= starting position + for i in range(num): + for k in range(num): + temp = Block(-1, -1, -1, -1, (x + (i * 100)), (y + (k * 100))) + rows[i][k] = temp + #blocks[(i * 3) + k] = temp + + # Left and right answers + for i in range(num): + for k in range(num): + # set the block's right side answer + rows[i][k].east = random.randint(0, answer) + # generate a random num for the block's west answer + if rows[i][k].west == -1: + rows[i][k].west = random.randint(0, answer + 10) + # check the left side answer of the block in the adjacent row + if (i + 1) < num: + rows[i + 1][k].west = (answer - rows[i][k].east) + #print(rows[3][2]) + + # Top and bottom answers + for i in range(num): + for k in range(num): + # set top answer if empty + if (rows[i][k].north == -1): + rows[i][k].north = random.randint(0, answer + 10) + # get random number for south + rows[i][k].south = random.randint(0, answer) + # get answer in block below the block we just filled in + if (k + 1) < num: + rows[i][k + 1].north = (answer - rows[i][k].south) + + # get all the blocks into a single list + count = 0 + print(count) + for i in range(num): + for k in range(num): + blocks[count] = rows[i][k] + count += 1 + + print(count) + + return blocks class dummysound: def play(self): pass @@ -143,7 +199,7 @@ def __init__(self): self.paused = False - + def set_paused(self, paused): self.paused = paused @@ -164,42 +220,36 @@ def run(self): print('Warning, no sound') pygame.mixer = None - #set the screen up winstyle = 0 # |FULLSCREEN bestdepth = pygame.display.mode_ok(SCREENRECT.size, winstyle, 32) screen = pygame.display.set_mode(SCREENRECT.size, winstyle, bestdepth) - + spriteBatch = pygame.sprite.RenderUpdates() # load images here # for gifs img = load_image('filename.gif') # for bmps img = pygame.image.load('filename.bmp') but our function handles that for us # a note for graphics blit means copy pixels from screen.blit() - iconImg = load_image('blocku.png') + squares = load_image('square.png') background = load_image('background.png') - # load images to pipe to the sprite classes + iconImg = load_image('blocku.png') blockImg = load_image('block.png') - Block.images = [blockImg] - gridImg1 = load_image('square.png') - gridImg2 = load_image('square.png') - gridImg3 = load_image('square.png') - gridImg4 = load_image('square.png') - gridImg5 = load_image('square.png') - gridImg6 = load_image('square.png') - gridImg7 = load_image('square.png') - gridImg8 = load_image('square.png') - gridImg9 = load_image('square.png') + + # load images to pipe to the sprite classes + Block.images = [blockImg] + gridImg1 = squares + gridImg2 = squares + gridImg3 = squares + gridImg4 = squares + gridImg5 = squares + gridImg6 = squares + gridImg7 = squares + gridImg8 = squares + gridImg9 = squares allGrid = [gridImg1,gridImg2,gridImg3,gridImg4,gridImg5,gridImg6,gridImg7,gridImg8,gridImg9] - - # the test will need rects and positions i sugest make some kind of default - # this information can be held by each block as they are created but is made here - #get the image and screen in the same format - if background.get_bitsize() == 8: - screen.set_palette(background.get_palette()) - else: - background = background.convert() gridpos = [(200,200),(272,200),(344,200),(200,272),(272,272),(344,272),(200,344),(272,344),(344,344)] + background.blit(gridImg1, gridpos[0]) background.blit(gridImg2, gridpos[1]) background.blit(gridImg3, gridpos[2]) @@ -209,8 +259,20 @@ def run(self): background.blit(gridImg7, gridpos[6]) background.blit(gridImg8, gridpos[7]) background.blit(gridImg9, gridpos[8]) - + + #get the image and screen in the same format + if background.get_bitsize() == 8: + set_palette(background.get_palette()) + else: + background.convert() + screen.blit(background,(0,0)) + # the test will need rects and positions i sugest make some kind of default + # this information can be held by each block as they are created but is made here + + + + pygame.display.flip() #to set the icon up and to decorate the game window @@ -218,27 +280,28 @@ def run(self): pygame.display.set_icon(icon) pygame.display.set_caption('Blocku') - #this next call is sort of like sprite batch . draw - spriteBatch = pygame.sprite.RenderUpdates() + #this next call is sort of like sprite batch . drawf + #main blocku code structs blocks = pygame.sprite.Group() Block.containers = blocks,spriteBatch #blocks are Block(n,s,e,w,x,y) xy= starting position - - aBlock = Block(1,2,3,4,200,200) - bBlock = Block(5,6,7,8,300,300) - cBlock = Block(9,1,2,3,250,250) - dBlock = Block(4,5,6,7,350,350) - eBlock = Block(2,1,9,8,400,400) - fBlock = Block(3,4,5,6,450,450) - gBlock = Block(1,9,8,7,500,500) - hBlock = Block(2,3,4,5,550,550) - iBlock = Block(9,8,7,6,150,150) - allBlocks=[aBlock,bBlock,cBlock,dBlock,eBlock,fBlock,gBlock,hBlock,iBlock] - - - + + #aBlock = Block(1,2,3,4,200,200) + #bBlock = Block(5,6,7,8,300,300) + #cBlock = Block(9,1,2,3,250,250) + #dBlock = Block(4,5,6,7,350,350) + #eBlock = Block(2,1,9,8,400,400) + #fBlock = Block(3,4,5,6,450,450) + #gBlock = Block(1,9,8,7,500,500) + #hBlock = Block(2,3,4,5,550,550) + #iBlock = Block(9,8,7,6,150,150) + #allBlocks=[aBlock,bBlock,cBlock,dBlock,eBlock,fBlock,gBlock,hBlock,iBlock] + + allBlocks = GenerateAddition(3, 42) + print(allBlocks) + global debugText debugText = '' #see if there is a sprite font @@ -283,10 +346,10 @@ def run(self): spriteBatch.clear(screen, background) # update all the sprites spriteBatch.update() - + #for block in blocks: x, y = mouse.get_pos() - + for block in allBlocks: # if keystate[K_SPACE] and not keyDown: # block.rotate() @@ -355,33 +418,89 @@ def __init__(self): self.rect = self.image.get_rect().move(50, 220) def update(self): - #msg = 'Mouse Position %s, %s' % mouse.get_pos() - global mainText - msg = self.text + mainText + msg = 'Mouse Position %s, %s' % mouse.get_pos() + msg = self.text + msg self.image = self.font.render(msg, 0, self.color) -def mainMenu(): - #iconImg = load_image('bg.png') +class MainMenu(): + def __init__(self): + self.paused = False + + #set the screen up + winstyle = 0 # |FULLSCREEN + bestdepth = pygame.display.mode_ok(SCREENRECT.size, winstyle, 32) + screen = pygame.display.set_mode(SCREENRECT.size, winstyle, bestdepth) + + + pygame.display.set_caption('Blocku') + + + self.menuImg = load_image('bg.png') + self.background = load_image('background.png') + + self.screen = pygame.display.set_mode((640,480)) + #self.screen.blit(self.menuImg,(0,0)) + + + + #get the image and screen in the same format + if self.background.get_bitsize() == 8: + set_palette(self.background.get_palette()) + else: + self.background.convert() + + screen.blit(self.menuImg, (0,0)) + #new game button is at (248,175) and is 166*65 pixels + #insturctions button is at (248, 254) and is 166*65 pixels + #exit is at (248, 407) and is 166*65 pixels + pygame.display.flip() + + self.loop() + + def loop(self): + exit = False + while not exit: + for event in pygame.event.get(): + if event.type == MOUSEBUTTONDOWN: + if event.button == 1: + #new game. launches into a new game of blocku, with current default behavior of creating a new random grid + if event.pos[0] > 248 and event.pos[0] < 414 and event.pos[1] > 175 and event.pos[1] < 240: + pygame.display.flip() + game = Game() + game.run() + pygame.quit() + + #insturctions. need to change to show insturctions dialog box or whatever + if event.pos[0] > 248 and event.pos[0] < 414 and event.pos[1] > 254 and event.pos[1] < 319: + pygame.display.flip() + game = Game() + game.run() + pygame.quit() + + #exit button. exits the game + if event.pos[0] > 248 and event.pos[0] < 414 and event.pos[1] > 407 and event.pos[1] < 472: + pygame.quit() + - global mainText - mainText='33333333333333333333' - - game = Game() - game.run() # This function is called when the game is run directly from the command line: -# ./TestGame.py +# ./TestGame.py def main(): - # Initialize pygame pygame.init() + mMenu = MainMenu() + pygame.quit() + #mMenu.run() + # Initialize pygame + #pygame.init() # Initialize a game #game = Game() - mainMenu() - + #mainMenu() + # Run the game #game.run() + #pygame.quit() #call the "main" function if python is running this script if __name__ == '__main__': diff --git a/blockuasdf.py b/blockuasdf.py new file mode 100644 index 0000000..fe11be4 --- /dev/null +++ b/blockuasdf.py @@ -0,0 +1,370 @@ + +"""Main Blocku game logic class + +import every thing that the activity needs and run game code + +Authored by Fran Rogers and Ariel Zamparini +""" + +#!/usr/bin/python +import pygame, random, os.path +from pygame.locals import * +from pygame import * + +try: import gtk +except ImportError: gtk = None + +#see if we can load more than standard BMP +if not pygame.image.get_extended(): + raise SystemExit("Sorry, extended image module required") + +#game constants +SCREENRECT = Rect(0, 0, 640, 480) +KEYBOARDMOVESPEED = 10 + + +def load_image(file): + "loads an image, prepares it for play" + file = os.path.join('data', file) + try: + surface = pygame.image.load(file) + except pygame.error: + raise SystemExit('Could not load image "%s" %s'%(file, pygame.get_error())) + return surface.convert() + +def load_images(*files): + imgs = [] + for file in files: + imgs.append(load_image(file)) + return imgs + +class dummysound: + def play(self): pass + +def load_sound(file): + if not pygame.mixer: return dummysound() + file = os.path.join('data', file) + try: + sound = pygame.mixer.Sound(file) + return sound + except pygame.error: + print('Warning, unable to load,', file) + return dummysound() + +class Block(pygame.sprite.Sprite): + images = [] + north='' + east='' + south='' + west='' + isLast = 0 + isMoving = False + globX=1 + globY=1 + def __init__(self, n='', e='', s='', w='', x='', y=''): + pygame.sprite.Sprite.__init__(self, self.containers) + self.image = self.images[0].copy() + self.rect = pygame.Rect(x,y,64,64) + self.font = pygame.font.Font(None, 20) + self.font.set_italic(1) + self.color = Color('blue') + self.update() + self.north = n + self.east = e + self.south = s + self.west = w + + def update(self): + #keep the block on the screen + self.rect = self.rect.clamp(SCREENRECT) + self.image = self.images[0].copy() + self.image.blit(self.font.render(str(self.north), 0, self.color),(26,3)) + self.image.blit(self.font.render(str(self.east), 0, self.color),(47,25)) + self.image.blit(self.font.render(str(self.south), 0, self.color),(26,47)) + self.image.blit(self.font.render(str(self.west), 0, self.color),(5,25)) + # game logic here for snapping to grid ...? + # when the block is snapped to the grid clamp the rect there + def move(self, direction): + # up = 0, right = 1, down = 2, left = 3 + if direction == 0: + self.rect.move_ip(0,-KEYBOARDMOVESPEED) + if direction == 1: + self.rect.move_ip(KEYBOARDMOVESPEED,0) + if direction == 2: + self.rect.move_ip(0,KEYBOARDMOVESPEED) + if direction == 3: + self.rect.move_ip(-KEYBOARDMOVESPEED,0) + def setGrabbed(self, sett): + self.isMoving = sett + def isGrabbed(self): + return self.isMoving + def grab(self, pos): + x, y = pos; + globX=x + globY=y + #print x , y + #print self.rect.left, self.rect.top + #self.rect = self.rect.move(x, y) + #remember the offset here is 32 as this will center the mouse in our 64pixel image + self.rect.left = x-32 + self.rect.top = y-32 + def getX(self): + return globX + def getY(self): + return globY + def rotate(self): + temp = self.north + self.north = self.east + self.east = self.south + self.south = self.west + self.west = temp + #print self.north, self.east, self.south, self.west + +class Puzzle: + def __init__(self): + #self.rule = rule + self.blocks = {} + + def add_block(self, block, coords): + self.blocks[coords] = block + + def get_blocks(self): + return self.blocks + + def shuffle(self): + pass + +class Game: + def __init__(self): + # Set up a clock for managing the frame rate. + self.clock = pygame.time.Clock() + + self.puzzle = Puzzle() + + self.paused = False + + def set_paused(self, paused): + self.paused = paused + + # Called to save the state of the game to the Journal. + def write_file(self, file_path): + pass + + # Called to load the state of the game from the Journal. + def read_file(self, file_path): + pass + + # The main game loop. + def run(self): + self.running = True + isRan = 0 + if pygame.mixer and not pygame.mixer.get_init(): + print('Warning, no sound') + pygame.mixer = None + + #set the screen up + winstyle = 0 # |FULLSCREEN + bestdepth = pygame.display.mode_ok(SCREENRECT.size, winstyle, 32) + screen = pygame.display.set_mode(SCREENRECT.size, winstyle, bestdepth) + + + # load images here + # for gifs img = load_image('filename.gif') + # for bmps img = pygame.image.load('filename.bmp') but our function handles that for us + # a note for graphics blit means copy pixels from screen.blit() + iconImg = load_image('blocku.png') + background = load_image('background.png') + # load images to pipe to the sprite classes + blockImg = load_image('block.png') + Block.images = [blockImg] + gridImg1 = load_image('square.png') + gridImg2 = load_image('square.png') + gridImg3 = load_image('square.png') + gridImg4 = load_image('square.png') + gridImg5 = load_image('square.png') + gridImg6 = load_image('square.png') + gridImg7 = load_image('square.png') + gridImg8 = load_image('square.png') + gridImg9 = load_image('square.png') + + allGrid = [gridImg1,gridImg2,gridImg3,gridImg4,gridImg5,gridImg6,gridImg7,gridImg8,gridImg9] + + # the test will need rects and positions i sugest make some kind of default + # this information can be held by each block as they are created but is made here + + #get the image and screen in the same format + if background.get_bitsize() == 8: + screen.set_palette(background.get_palette()) + else: + background = background.convert() + gridpos = [(200,200),(272,200),(344,200),(200,272),(272,272),(344,272),(200,344),(272,344),(344,344)] + background.blit(gridImg1, gridpos[0]) + background.blit(gridImg2, gridpos[1]) + background.blit(gridImg3, gridpos[2]) + background.blit(gridImg4, gridpos[3]) + background.blit(gridImg5, gridpos[4]) + background.blit(gridImg6, gridpos[5]) + background.blit(gridImg7, gridpos[6]) + background.blit(gridImg8, gridpos[7]) + background.blit(gridImg9, gridpos[8]) + + screen.blit(background,(0,0)) + pygame.display.flip() + + #to set the icon up and to decorate the game window + icon = pygame.transform.scale(iconImg, (32, 32)) + pygame.display.set_icon(icon) + pygame.display.set_caption('Blocku') + + #this next call is sort of like sprite batch . draw + spriteBatch = pygame.sprite.RenderUpdates() + + #main blocku code structs + blocks = pygame.sprite.Group() + Block.containers = blocks,spriteBatch + #blocks are Block(n,s,e,w,x,y) xy= starting position + + aBlock = Block(1,2,3,4,200,200) + bBlock = Block(5,6,7,8,300,300) + cBlock = Block(9,1,2,3,250,250) + dBlock = Block(4,5,6,7,350,350) + eBlock = Block(2,1,9,8,400,400) + fBlock = Block(3,4,5,6,450,450) + gBlock = Block(1,9,8,7,500,500) + hBlock = Block(2,3,4,5,550,550) + iBlock = Block(9,8,7,6,150,150) + allBlocks=[aBlock,bBlock,cBlock,dBlock,eBlock,fBlock,gBlock,hBlock,iBlock] + + global debugText + debugText = '' + #see if there is a sprite font + if pygame.font: + spriteBatch.add(Text('Drawing call test ')) + spriteBatch.add(mouseUpdate()) + + #if a key is down + global keyDown + keyDown = False + # it is important to note that like xna the origin is 0,0 + # the top left of the current window + # print is trace in console + # and increases as you go down and to the right + # pygame has a collision detector under pygame.sprite.spritecollide(group,group,dokill) + # this will return a list of colliders, dokill will remove the colliders from the parrent group if true + + while self.running: + # Pump GTK messages. + while gtk and gtk.events_pending(): + gtk.main_iteration() + + # Pump PyGame messages. + for e in event.get(): + if e.type == QUIT or \ + (e.type == KEYDOWN and e.key == K_ESCAPE): + return + elif e.type == pygame.VIDEORESIZE: + pygame.display.set_mode(e.size, pygame.RESIZABLE) + if e.type == MOUSEBUTTONDOWN: + event.set_grab(1) + elif e.type == MOUSEBUTTONUP: + event.set_grab(0) + + # get the state of the keyboard for input + keystate = pygame.key.get_pressed() + if not keystate[K_SPACE]: + keyDown = False + # for key test use keystate[key] and a return of true will occur when key down + # clear/erase the last drawn sprites + spriteBatch.clear(screen, background) + # update all the sprites + spriteBatch.update() + + #for block in blocks: + x, y = mouse.get_pos() + + for block in allBlocks: + # if keystate[K_SPACE] and not keyDown: + # block.rotate() + # keyDown = True + if block.isGrabbed() == True: + debugText='ZOMG TORRENT PLZ' + isLast = block + if event.get_grab(): + debugText += ' holding mouse button 1' + # and block.isGrabbed() == False + if block.rect.collidepoint(x,y): + block.grab(mouse.get_pos()) + block.setGrabbed(True) + debugText += ' grabbed a Block' + for tempblock in allBlocks: + tempblock.isLast = 0 + block.isLast = 1 + isRan = 1 + break + elif isRan == 1 and block.isLast == 1: + debugText = '' + block.setGrabbed(False) + #block.left = 250 + for piece in gridpos: + if mouse.get_pos()[0] > piece[0] and mouse.get_pos()[0]< piece[0]+72 and mouse.get_pos()[1] > piece[1] and mouse.get_pos()[1]< piece[1]+72: + debugText=str(piece) + place = piece[0] + 36, piece[1] + 36 + isLast.grab(place) + isRan = 0 + + # note random here is random.random() + # note foreach here is for object in + + # draw call for the screen + draw = spriteBatch.draw(screen) + pygame.display.update(draw) + + + # Try to stay at 30 FPS + self.clock.tick(30) + +class Text(pygame.sprite.Sprite): + text = '' + def __init__(self,txt=''): + pygame.sprite.Sprite.__init__(self) + self.font = pygame.font.Font(None, 20) + self.font.set_italic(1) + self.color = Color('blue') + self.update() + self.rect = self.image.get_rect().move(55, 80) + self.text = txt + + def update(self): + global debugText + msg = self.text + debugText + self.image = self.font.render(msg, 0, self.color) + +class mouseUpdate(pygame.sprite.Sprite): + def __init__(self): + pygame.sprite.Sprite.__init__(self) + self.font = pygame.font.Font(None, 20) + self.font.set_italic(1) + self.color = Color('blue') + self.update() + self.rect = self.image.get_rect().move(50, 220) + + def update(self): + msg = 'Mouse Position %s, %s' % mouse.get_pos() + self.image = self.font.render(msg, 0, self.color) + +# This function is called when the game is run directly from the command line: +# ./TestGame.py +def main(): + # Initialize pygame + pygame.init() + + # Initializa game + game = Game() + + # Run the game + game.run() + +#call the "main" function if python is running this script +if __name__ == '__main__': + main() + diff --git a/config b/config new file mode 100644 index 0000000..dee3f5e --- /dev/null +++ b/config @@ -0,0 +1,7 @@ +Host git.sugarlabs.org + User Kaeedo + Port 22 + Hostname git.sugarlabs.org + IdentityFile ~/.ssh/publickey + TCPKeepAlive yes + IdentitiesOnly yes \ No newline at end of file diff --git a/data/bg.png b/data/bg.png new file mode 100644 index 0000000..8464654 Binary files /dev/null and b/data/bg.png differ diff --git a/data/start.png b/data/start.png new file mode 100644 index 0000000..b143575 Binary files /dev/null and b/data/start.png differ diff --git a/privatekey.ppk b/privatekey.ppk new file mode 100644 index 0000000..287df2c --- /dev/null +++ b/privatekey.ppk @@ -0,0 +1,17 @@ +PuTTY-User-Key-File-2: ssh-dss +Encryption: aes256-cbc +Comment: gitTry2 +Public-Lines: 10 +AAAAB3NzaC1kc3MAAACBAJBD63xfFhlsw2eL7dOjeq7MaGEeJPYcjTl2KWFHbIbk +xUvaOYtIV0dIyKp+zmxUWHw5umvk8cz4zrAh7CZDm6sD6ctpxwhs/SF/gOZEx3Xe +/OQu+LgL7BJm1Arxp7AFO5z6Xe3RYazvp7QpNu1UIoxRfozbhvoe/AgJy2MVq6Cr +AAAAFQDh2mdNkT/XB/ReKc5NZWDHzvYoWQAAAIAibk+AJ8cxLsCYGae2SI0d6gde +x3ERP8YMwbbovT6MzZW4p8gcBtQHgp5qGSRtJw7D+FngbcUneUOBh4ud8Ngloyhg +Q7IHQlr9K0SSs0oabxt0kUVTUdJbGjzgc1BRNiIXDUG6JS1WalV0fcWuqUcEL0by +5Jdh6NwuJnpuDJvytgAAAIBpLgr6h9tm+RPiEUQeuugErRzMISevH7UD0X0BD5zm ++q0QtD30rG3Y0RlL99aX2rYn5vvsQy28cRtpZVYkG7QkcpN5SJCd5iYiSmqL66bg +qHajbeVVXw4ZRobwfdjwVeOW44q1GEbdLShLNLZfuwFlsR3Za4Dlh8h8VCtaEwKJ +bQ== +Private-Lines: 1 +NP1wQ5Xp9nGhYxCUF1ycGC6v8di7n8hygmkWkKdeAIo= +Private-MAC: d8f6cd26135b59a3c784467f4a96621c47b5d915 diff --git a/publickey b/publickey new file mode 100644 index 0000000..debb412 --- /dev/null +++ b/publickey @@ -0,0 +1,13 @@ +---- BEGIN SSH2 PUBLIC KEY ---- +Comment: "gitTry2" +AAAAB3NzaC1kc3MAAACBAJBD63xfFhlsw2eL7dOjeq7MaGEeJPYcjTl2KWFHbIbk +xUvaOYtIV0dIyKp+zmxUWHw5umvk8cz4zrAh7CZDm6sD6ctpxwhs/SF/gOZEx3Xe +/OQu+LgL7BJm1Arxp7AFO5z6Xe3RYazvp7QpNu1UIoxRfozbhvoe/AgJy2MVq6Cr +AAAAFQDh2mdNkT/XB/ReKc5NZWDHzvYoWQAAAIAibk+AJ8cxLsCYGae2SI0d6gde +x3ERP8YMwbbovT6MzZW4p8gcBtQHgp5qGSRtJw7D+FngbcUneUOBh4ud8Ngloyhg +Q7IHQlr9K0SSs0oabxt0kUVTUdJbGjzgc1BRNiIXDUG6JS1WalV0fcWuqUcEL0by +5Jdh6NwuJnpuDJvytgAAAIBpLgr6h9tm+RPiEUQeuugErRzMISevH7UD0X0BD5zm ++q0QtD30rG3Y0RlL99aX2rYn5vvsQy28cRtpZVYkG7QkcpN5SJCd5iYiSmqL66bg +qHajbeVVXw4ZRobwfdjwVeOW44q1GEbdLShLNLZfuwFlsR3Za4Dlh8h8VCtaEwKJ +bQ== +---- END SSH2 PUBLIC KEY ----