diff --git a/assets/skull.png b/assets/skull.png deleted file mode 100644 index fe46f5e..0000000 Binary files a/assets/skull.png and /dev/null differ diff --git a/assets/skull.png.import b/assets/skull.png.import deleted file mode 100644 index dcd5197..0000000 --- a/assets/skull.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cxsd3rd3k3eaj" -path="res://.godot/imported/skull.png-b3e3a5526e5abbe508c3491f9d549a8b.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/skull.png" -dest_files=["res://.godot/imported/skull.png-b3e3a5526e5abbe508c3491f9d549a8b.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/board/board.gd b/board/board.gd index 1ca6eb4..dcd038e 100644 --- a/board/board.gd +++ b/board/board.gd @@ -16,11 +16,10 @@ var off_limits: String = "" func _ready(): - print("Initializing board...") _index_atlas_coordinates_by_name() _index_layers_by_name() $Highlight.size = tile_set.tile_size - print("Tiles: ", ", ".join(tile_by_name.keys())) + func get_state(grid_pos: Vector2) -> String: @@ -82,7 +81,7 @@ func _calculate_drop_pos(grid_pos: Vector2) -> Vector2: #Löscht eine Zeile nach dem Glücksrad ereignis func delete_column(column: int) -> void: for i in range(-2, 4, 1): - self.set_cell(tile_map_layer, Vector2i(i, column - 1), 1, Vector2i(1, 2), 0) + self.set_cell(tile_map_layer, Vector2i(i, column - 1), 1, Vector2i(3,0), 0) await get_tree().create_timer(0.25).timeout #Inhalt leer setzten (row -3 damit es mit 1 - 6 funktioniert) self.set_cell(tile_map_layer, Vector2i(i, column - 1)) @@ -94,9 +93,6 @@ func delete_column(column: int) -> void: var tile_map_cell_source_id = self.get_cell_source_id(tile_map_layer, tile_map_cell_position); var tile_map_cell_atlas_coords = self.get_cell_atlas_coords(tile_map_layer, tile_map_cell_position) var tile_map_cell_alternative = self.get_cell_alternative_tile(tile_map_layer, tile_map_cell_position) - print(tile_map_cell_source_id) - print(tile_map_cell_atlas_coords) - print(tile_map_cell_alternative) var new_tile_map_cell_position = Vector2i(i, j + 1) self.set_cell(tile_map_layer, new_tile_map_cell_position, tile_map_cell_source_id, tile_map_cell_atlas_coords, tile_map_cell_alternative) if j == 0: @@ -106,13 +102,13 @@ func delete_column(column: int) -> void: self.set_cell(tile_map_layer, Vector2i(i, j + 1)) func delete_row(row: int) -> void: for i in range(6): - self.set_cell(tile_map_layer, Vector2i(row - 3, i), 1, Vector2i(1, 2), 0) + self.set_cell(tile_map_layer, Vector2i(row - 3, i), 1, Vector2i(3,0), 0) await get_tree().create_timer(0.25).timeout #Inhalt leer setzten (row -3 damit es mit 1 - 6 funktioniert) self.set_cell(tile_map_layer, Vector2i(row - 3, i)) func _clear_enemy_tile(grid_pos: Vector2) -> void: self.set_cell(tile_map_layer, grid_pos) - self.set_cell(tile_map_layer, grid_pos, 1, Vector2i(1, 2), 0) + self.set_cell(tile_map_layer, grid_pos, 1, Vector2i(3,0), 0) await get_tree().create_timer(0.25).timeout #Inhalt leer setzten (row -3 damit es mit 1 - 6 funktioniert) self.set_cell(tile_map_layer, grid_pos) diff --git a/game.gd b/game.gd index 7fc7681..e31e2ed 100644 --- a/game.gd +++ b/game.gd @@ -41,7 +41,7 @@ func _ready(): sequence_needed = 4 board.reset() won = "" - ereignis.text = "Ereignis: " + ereignis.text = "" sequenz.text = "4 - Gewinnt!" wonPlayer.hide() nextPlayer.region_rect.position.x = current_player * 300 @@ -61,27 +61,40 @@ func _process(_delta): if Input.is_action_just_pressed("Click") and move_allowed: var grid_pos = board.gridpos_at_mouse() if enable_remove: - print(grid_pos) board._clear_enemy_tile(grid_pos) enable_remove = false elif board.get_state(Vector2(grid_pos.x, 0)) == board.empty_state: var new_pos = board._calculate_drop_pos(grid_pos) if board.set_state(new_pos, player_states[current_player]): if zuege >= 1: - move_allowed = false #Damit vor jedem Zug gewürfelt wird (Ab Runde 2) + move_allowed = false wuerfeln_erlaubt = true zuege += 1 blindBoard.visible = false + ereignis.text = "" won = _check_win() if won=="": switch_player() else: - print("Winner: ", won) wonPlayer.region_rect.position.x = player_states.find(won) * 300 if won == player_states[0]: + print(str(_sequence)) + _sequence = _sort_array(_sequence) + print(str(_sequence)) + var umgerechnet = _umrechnung(_sequence) + _sequence = _lol(umgerechnet, _sequence) + print(str(umgerechnet)) + print(str(_sequence)) for tile in _sequence: board.set_cell(1, tile, 1, Vector2i(0, 2), 0) else: + print(str(_sequence)) + _sequence = _sort_array(_sequence) + print(str(_sequence)) + var umgerechnet = _umrechnung(_sequence) + _sequence = _lol(umgerechnet, _sequence) + print(str(umgerechnet)) + print(str(_sequence)) for tile in _sequence: board.set_cell(1, tile, 1, Vector2i(3, 2), 0) wonPlayer.show() @@ -121,10 +134,37 @@ func _check_win() -> String: break _sequence.append(Vector2i(cell + check[0] * (i + j))) if same: + return state return "" +func _sort_array(arr :Array) -> Array: + arr.sort_custom(func(a,b): return a < b) + return arr + +func _umrechnung(arr :Array) -> Array: + var newArr = [] + for i in range(1,arr.size()-1,1): + newArr.append(arr[i-1]-arr[i]) + return newArr + +#(-1, 0)_ (0,-1)| (-1,-1)\, (-1,1)/ +func _lol(arr :Array, shortArr :Array) -> Array: + var bedingung + var vektoren = [Vector2i(-1,0),Vector2i(0,-1), Vector2i(-1,-1), Vector2i(-1,1)] + var newArr = [] + for e in vektoren: + if arr.count(e) >= 2: + bedingung = e + for i in range(1,arr.size()+1,1): + if (shortArr[i-1] - shortArr[i]) == e: + newArr.append(shortArr[i-1]) + newArr.append(shortArr[i]) + return newArr + + + #Generiert die Zufallszahl von 1-6 func _roll_dice() -> int: schnickLost = false @@ -141,7 +181,7 @@ func _roll_dice() -> int: await get_tree().create_timer(0.25).timeout _update_dice_sprite(zahl) - print(zahl) #Debug ausgabe, später löschen + if zahl == 1: switch_to_schnick() @@ -172,8 +212,6 @@ func _on_dice_button_pressed(): move_allowed = true _roll_dice() - - #Sucht sich für die entsprechende Augenzahl #die X und Y-Koordinaten in der Tilemap func _update_dice_sprite(result :int): @@ -208,12 +246,10 @@ func _get_dice_pos_y(result: int) -> int: #Nach dem Glücksradereignis wird die Siegesbedingung auf 5 gewinnt geändert func _five_wins() -> void: - print("5 Gewinnt aktiv") #Debug sequence_needed = 5 #Nach dem Glücksradereignis tauschen die Spieler die Symbole func _change_symbols(): - print("tausch") #debug current_player = 1 - current_player nextPlayer.region_rect.position.x = current_player * 300 var tempX = player1Sprite.region_rect.position.x @@ -226,7 +262,6 @@ func _change_symbols(): #Nach dem Glücksradereignis gewinnt der Spieler sofort func _instant_win(): won = player_states[current_player] - print("Winner: ", won) wonPlayer.region_rect.position.x = player_states.find(won) * 300 wonPlayer.show() nextPlayer.hide() @@ -235,7 +270,6 @@ func _instant_win(): func _instant_loose(): current_player = 1 - current_player won = player_states[current_player] - print("Winner: ", won) wonPlayer.region_rect.position.x = player_states.find(won) * 300 wonPlayer.show() nextPlayer.hide() @@ -243,8 +277,7 @@ func _instant_loose(): #Zum Testen der Events func _on_test_pressed(): - var rand = randi() % 6 + 1 - _dead_zone(rand) + _spin_the_wheel(14) func _spin_the_wheel(result: int) -> void: