python game

Pagina: 1
Acties:
  • 396 views

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • BBigboy
  • Registratie: Januari 2019
  • Laatst online: 26-12-2021
Mijn vraag

ik ben met een school project bezig en moest een spel maken met python dit is de code die we er voor hebben
Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
from tkinter import *
from logic import *
from random import *
from os import *
from time import *
from sys import *
from pygame import *
from psutil import *
from logging import *


##Made by projecgroep 3 

SIZE = 750
GRID_LEN = 4
GRID_PADDING = 10

BACKGROUND_COLOR_GAME = "#92877d"
BACKGROUND_COLOR_CELL_EMPTY = "#9e948a"
BACKGROUND_COLOR_DICT = {   2:"#eee4da", 4:"#ede0c8", 8:"#f2b179", 16:"#f59563", \
                            32:"#f67c5f", 64:"#f65e3b", 128:"#edcf72", 256:"#edcc61", \
                            512:"#edc850", 1024:"#edc53f", 2048:"#edc22e" }
CELL_COLOR_DICT = { 2:"#776e65", 4:"#776e65", 8:"#f9f6f2", 16:"#f9f6f2", \
                    32:"#f9f6f2", 64:"#f9f6f2", 128:"#f9f6f2", 256:"#f9f6f2", \
                    512:"#f9f6f2", 1024:"#f9f6f2", 2048:"#f9f6f2" }
FONT = ("Verdana", 40, "bold")

KEY_UP = "'w'"
KEY_DOWN = "'s'"
KEY_RIGHT ="'d'"
KEY_LEFT = "'a'"


class GameGrid(Frame):
    def __init__(self):
        Frame.__init__(self)

        self.grid()
        
        self.master.title('2048')
        self.master.bind("<Key>", self.key_down)

        #self.gamelogic = gamelogic
        self.commands = {KEY_UP: up, KEY_DOWN: down, KEY_LEFT: left, KEY_RIGHT: right}
                            
        self.grid_cells = []
        self.init_grid()
        self.init_matrix()
        self.update_grid_cells()
        
        self.mainloop()

    def init_grid(self):
        background = Frame(self, bg=BACKGROUND_COLOR_GAME, width=SIZE, height=SIZE)
        background.grid()
        for i in range(GRID_LEN):
            grid_row = []
            for j in range(GRID_LEN):
                cell = Frame(background, bg=BACKGROUND_COLOR_CELL_EMPTY, width=SIZE/GRID_LEN, height=SIZE/GRID_LEN)
                cell.grid(row=i, column=j, padx=GRID_PADDING, pady=GRID_PADDING)
                # font = Font(size=FONT_SIZE, family=FONT_FAMILY, weight=FONT_WEIGHT)
                t = Label(master=cell, text="", bg=BACKGROUND_COLOR_CELL_EMPTY, justify=CENTER, font=FONT, width=4, height=2)
                t.grid()
                grid_row.append(t)

            self.grid_cells.append(grid_row)

    def gen(self):
        return randint(0, GRID_LEN - 1)

    def init_matrix(self):
        self.matrix = new_game(4)

        self.matrix=add_two(self.matrix)
        self.matrix=add_two(self.matrix)

    def update_grid_cells(self):
        for i in range(GRID_LEN):
            for j in range(GRID_LEN):
                new_number = self.matrix[i][j]
                if new_number == 0:
                    self.grid_cells[i][j].configure(text="", bg=BACKGROUND_COLOR_CELL_EMPTY)
                else:
                    self.grid_cells[i][j].configure(text=str(new_number), bg=BACKGROUND_COLOR_DICT[new_number], fg=CELL_COLOR_DICT[new_number])
        self.update_idletasks()
        
    def key_down(self, event):
        key = repr(event.char)
        if key in self.commands:
            self.matrix,done = self.commands[repr(event.char)](self.matrix)
            if done:
                self.matrix = add_two(self.matrix)
                self.update_grid_cells()
                done=False
                if game_state(self.matrix)=='win':
                    self.grid_cells[1][1].configure(text="You",bg=BACKGROUND_COLOR_CELL_EMPTY)
                    self.grid_cells[1][2].configure(text="Win!",bg=BACKGROUND_COLOR_CELL_EMPTY)
                if game_state(self.matrix)=='lose':
                    self.grid_cells[1][1].configure(text="You",bg=BACKGROUND_COLOR_CELL_EMPTY)
                    self.grid_cells[1][2].configure(text="Lose!",bg=BACKGROUND_COLOR_CELL_EMPTY)
gamegrid = GameGrid()

de vraag is nu we willen dat die automatisch opnieuw opstart als het spel klaar is

Relevante software en hardware die ik gebruik
raspberry pi 3 model B+

alvast bedankt voor het mee denken

[ Voor 0% gewijzigd door Creepy op 16-01-2019 15:16 . Reden: Codetags toegevoegd. ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • CptMeatball
  • Registratie: Juni 2009
  • Laatst online: 16-07 11:09
Zonder inhoudelijk hierop in te gaan, het helpt al enorm als je dergelijke code in een Gist zet. Als je mensen hebt die je willen/kunnen helpen dan leest dat in ieder geval een stuk makkelijker.

https://gist.github.com/

Mijn V&A Advertenties!


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:48

Creepy

Tactical Espionage Splatterer

In een gist? Wat dacht je van code tags? Die hebben we met een reden zodat we niet afhankelijk zijn van externe diensten voor codeformatting e.d: In dit geval: [code=python]Hier je code[/code]

Los daarvan is het forum niet bedoeld als helpdesk. Het draait in dit deel in elk geval om het zelf programmeren. Dus in dit geval mis ik wast je zelf al hebt geprobeerd en wat daar dan niet mee lukte. Dat is zeker voor een schoolopdracht echt nodig, want jij moet een goed cijfer halen. Je moet dat niet anderen mensen voor je laten doen ;)

Ik kan dan voor nu ook niet anders dan je topic sluiten. Als je zelf wat hebt geprobeerd en je komt er echt niet uit dan kan je altijd een nieuw topic openen met de relevante (dus niet alle) code en met daarbij de informatie over wat je nu zelf al hebt geprobeerd en wat daar niet mee lukte.

[ Voor 6% gewijzigd door Creepy op 16-01-2019 15:20 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Dit topic is gesloten.