From 975c41012c1855d54114493e70559523d833dbf9 Mon Sep 17 00:00:00 2001 From: Krunal Gangadhar Kharat <68007121+KrunalKharat02@users.noreply.github.com> Date: Wed, 5 Oct 2022 02:54:21 +0530 Subject: [PATCH 1/3] Create snake_game.py 90's most played mobile game i.e Snake game using Tkinter python for beginners also very easy to understand! Its fun to create and also to play! you will learn how logic is applied in coding, and also very easy to learn python --- Snake/snake_game.py | 134 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 Snake/snake_game.py diff --git a/Snake/snake_game.py b/Snake/snake_game.py new file mode 100644 index 0000000..102b79d --- /dev/null +++ b/Snake/snake_game.py @@ -0,0 +1,134 @@ +import turtle as t +import random + +w = 500 # Width of box +h = 500 # Height of box +food_size = 10 # Size of food +delay = 100 # in millisecond + +# Values by which snake will move in direction when given direction +offsets = { + "up": (0, 20), + "down": (0,-20), + "left": (-20,0), + "right": (20,0) +} +global SCORE +SCORE = 0 +# Default postion of game scene +def reset(): + global snake, snake_dir, food_position, pen + + snake = [[0,0],[0,20],[0,40],[0,60],[0,80]] + snake_dir = "up" #default snake direction + food_position = get_random_food_position() + food.goto(food_position) # render food on scene + move_snake() + +def move_snake(): + global snake_dir,SCORE + + new_head = snake[-1].copy() + new_head[0] = snake[-1][0] + offsets[snake_dir][0] + new_head[1] = snake[-1][1] + offsets[snake_dir][1] + + + if new_head in snake[:-1]: + print(SCORE) + reset() + else: + snake.append(new_head) + + + if not food_collision(): + snake.pop(0) + + + if snake[-1][0] > w / 2: + snake[-1][0] -= w + elif snake[-1][0] < - w / 2: + snake[-1][0] += w + elif snake[-1][1] > h / 2: + snake[-1][1] -= h + elif snake[-1][1] < -h / 2: + snake[-1][1] += h + + + pen.clearstamps() + + + for segment in snake: + pen.goto(segment[0], segment[1]) + pen.stamp() + + + screen.update() + + t.ontimer(move_snake, delay) + +def food_collision(): + global food_position, SCORE + if get_distance(snake[-1], food_position) < 20: + SCORE += 10 + food_position = get_random_food_position() + food.goto(food_position) + return True + return False + +def get_random_food_position(): + x = random.randint(- w / 2 + food_size, w / 2 - food_size) + y = random.randint(- h / 2 + food_size, h / 2 - food_size) + return (x, y) + +def get_distance(pos1, pos2): + x1, y1 = pos1 + x2, y2 = pos2 + distance = ((y2 - y1) ** 2 + (x2 - x1) ** 2) ** 0.5 + return distance +# Control +def go_up(): + global snake_dir + if snake_dir != "down": + snake_dir = "up" +def go_down(): + global snake_dir + if snake_dir != "up": + snake_dir = "down" +def go_left(): + global snake_dir + if snake_dir != "right": + snake_dir = "left" +def go_right(): + global snake_dir + if snake_dir != "left": + snake_dir = "right" + + + +#define screen setup +screen = t.Screen() +screen.setup(w, h) +screen.title("Snake Game") +screen.bgcolor("lightgrey") +screen.tracer(0) + +#define snake setup +pen = t.Turtle("square") +pen.penup() + +#define food setup +food = t.Turtle() +food.shape("circle") +food.color("red") +food.shapesize(food_size / 20) +food.penup() + +#define control setup +screen.listen() +screen.onkey(go_up, "Up") +screen.onkey(go_right, "Right") +screen.onkey(go_down, "Down") +screen.onkey(go_left, "Left") + +reset() +t.done() From 6ab3be0c00b3762da4de176896014c0b8f3b2917 Mon Sep 17 00:00:00 2001 From: Krunal Gangadhar Kharat <68007121+KrunalKharat02@users.noreply.github.com> Date: Wed, 5 Oct 2022 02:56:33 +0530 Subject: [PATCH 2/3] Delete Snake directory --- Snake/snake_game.py | 134 -------------------------------------------- 1 file changed, 134 deletions(-) delete mode 100644 Snake/snake_game.py diff --git a/Snake/snake_game.py b/Snake/snake_game.py deleted file mode 100644 index 102b79d..0000000 --- a/Snake/snake_game.py +++ /dev/null @@ -1,134 +0,0 @@ -import turtle as t -import random - -w = 500 # Width of box -h = 500 # Height of box -food_size = 10 # Size of food -delay = 100 # in millisecond - -# Values by which snake will move in direction when given direction -offsets = { - "up": (0, 20), - "down": (0,-20), - "left": (-20,0), - "right": (20,0) -} -global SCORE -SCORE = 0 -# Default postion of game scene -def reset(): - global snake, snake_dir, food_position, pen - - snake = [[0,0],[0,20],[0,40],[0,60],[0,80]] - snake_dir = "up" #default snake direction - food_position = get_random_food_position() - food.goto(food_position) # render food on scene - move_snake() - -def move_snake(): - global snake_dir,SCORE - - new_head = snake[-1].copy() - new_head[0] = snake[-1][0] + offsets[snake_dir][0] - new_head[1] = snake[-1][1] + offsets[snake_dir][1] - - - if new_head in snake[:-1]: - print(SCORE) - reset() - else: - snake.append(new_head) - - - if not food_collision(): - snake.pop(0) - - - if snake[-1][0] > w / 2: - snake[-1][0] -= w - elif snake[-1][0] < - w / 2: - snake[-1][0] += w - elif snake[-1][1] > h / 2: - snake[-1][1] -= h - elif snake[-1][1] < -h / 2: - snake[-1][1] += h - - - pen.clearstamps() - - - for segment in snake: - pen.goto(segment[0], segment[1]) - pen.stamp() - - - screen.update() - - t.ontimer(move_snake, delay) - -def food_collision(): - global food_position, SCORE - if get_distance(snake[-1], food_position) < 20: - SCORE += 10 - food_position = get_random_food_position() - food.goto(food_position) - return True - return False - -def get_random_food_position(): - x = random.randint(- w / 2 + food_size, w / 2 - food_size) - y = random.randint(- h / 2 + food_size, h / 2 - food_size) - return (x, y) - -def get_distance(pos1, pos2): - x1, y1 = pos1 - x2, y2 = pos2 - distance = ((y2 - y1) ** 2 + (x2 - x1) ** 2) ** 0.5 - return distance -# Control -def go_up(): - global snake_dir - if snake_dir != "down": - snake_dir = "up" -def go_down(): - global snake_dir - if snake_dir != "up": - snake_dir = "down" -def go_left(): - global snake_dir - if snake_dir != "right": - snake_dir = "left" -def go_right(): - global snake_dir - if snake_dir != "left": - snake_dir = "right" - - - -#define screen setup -screen = t.Screen() -screen.setup(w, h) -screen.title("Snake Game") -screen.bgcolor("lightgrey") -screen.tracer(0) - -#define snake setup -pen = t.Turtle("square") -pen.penup() - -#define food setup -food = t.Turtle() -food.shape("circle") -food.color("red") -food.shapesize(food_size / 20) -food.penup() - -#define control setup -screen.listen() -screen.onkey(go_up, "Up") -screen.onkey(go_right, "Right") -screen.onkey(go_down, "Down") -screen.onkey(go_left, "Left") - -reset() -t.done() From 4eee1fa4ab7b731f3a8bcc4693578b1a07e0cf22 Mon Sep 17 00:00:00 2001 From: Krunal Gangadhar Kharat <68007121+KrunalKharat02@users.noreply.github.com> Date: Wed, 5 Oct 2022 03:07:47 +0530 Subject: [PATCH 3/3] update data.json New entry added in Data.json added python in technologies and updated data.json providing with one of my project --- data.json | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/data.json b/data.json index 33fe6b4..ce44c5d 100644 --- a/data.json +++ b/data.json @@ -9,7 +9,8 @@ "technologies": { ".NET": "net", "C#": "c-1", - "C++": "c-2" + "C++": "c-2", + ".py":"python" }, "repositories": [ { @@ -21,6 +22,16 @@ ], "description": "The .NET MVVM framework for cross-platform solutions, including Xamarin.iOS, Xamarin.Android, Windows and Mac." }, + { + "name": "Python-Projects", + "link": "https://github.com/KrunalKharat02/Python-Projects" + "label": "good-first-issue", + "technologies": [ + ".py" + ], + "descirption": "90's most played mobile game Snake_game gui based using python tkinter." + + }, { "name": "RawCMS", "link": "https://github.com/arduosoft/RawCMS",