99 bottles of beer: Difference between revisions
Move the GDScript section to correct spot
(A comical GDScript solution) |
(Move the GDScript section to correct spot) |
||
Line 987:
==={{header|FUZE BASIC}}===
See [[99 Bottles of Beer/Basic]]
==={{header|GDScript}}===▼
Tested on Godot 4.▼
This uses the node's children as the display method (which can be viewed in-editor with the remote tab).▼
<syntaxhighlight lang="gdscript">▼
extends Node▼
@export var alcoholism: int = 99▼
func _ready():▼
# Add the lyrics as child nodes▼
var padding := "" # Avoid name clashes by adding spaces▼
for bottleCount in range(alcoholism, 0, -1):▼
# Seperate paragraphs with blank nodes▼
if bottleCount < alcoholism:▼
add_lyric(padding)▼
add_lyric("%s of beer on the wall" % [_formatBottles(bottleCount)])▼
add_lyric("%s of beer" % [_formatBottles(bottleCount)])▼
add_lyric("Take one down, pass it around" + padding)▼
add_lyric("%s of beer on the wall " % [_formatBottles(bottleCount - 1)]) # Extra space for name clash avoidance▼
padding += " " # Add spaces so the names don't clash▼
func _formatBottles(bottleCount: int) -> String:▼
return "%d bottle%s" % [bottleCount, "" if bottleCount == 1 else "s"]▼
func add_lyric(lyric: String) -> void:▼
var new_child := Node.new()▼
new_child.name = lyric▼
add_child(new_child)▼
</syntaxhighlight>▼
==={{header|GW-BASIC}}===
Line 4,864 ⟶ 4,833:
od;
end;</syntaxhighlight>
▲Tested on Godot 4.
▲This uses the node's children as the display method (which can be viewed in-editor with the remote tab).
▲<syntaxhighlight lang="gdscript">
▲extends Node
▲@export var alcoholism: int = 99
▲func _ready():
▲ # Add the lyrics as child nodes
▲ var padding := "" # Avoid name clashes by adding spaces
▲ for bottleCount in range(alcoholism, 0, -1):
▲ # Seperate paragraphs with blank nodes
▲ if bottleCount < alcoholism:
▲ add_lyric(padding)
▲ add_lyric("%s of beer on the wall" % [_formatBottles(bottleCount)])
▲ add_lyric("%s of beer" % [_formatBottles(bottleCount)])
▲ add_lyric("Take one down, pass it around" + padding)
▲ add_lyric("%s of beer on the wall " % [_formatBottles(bottleCount - 1)]) # Extra space for name clash avoidance
▲ padding += " " # Add spaces so the names don't clash
▲func _formatBottles(bottleCount: int) -> String:
▲ return "%d bottle%s" % [bottleCount, "" if bottleCount == 1 else "s"]
▲func add_lyric(lyric: String) -> void:
▲ var new_child := Node.new()
▲ new_child.name = lyric
▲ add_child(new_child)
▲</syntaxhighlight>
=={{header|Genie}}==
|