initial commit

This commit is contained in:
Dan
2022-08-13 21:03:56 -04:00
commit 7cc95eac12
21 changed files with 853 additions and 0 deletions

160
Main.gd Normal file
View File

@@ -0,0 +1,160 @@
extends Control
var tryNum = 1
var playing = true
var todaysWord = ""
var validWords = [""]
func _ready():
$Try1._ready()
$Message.hide()
loadFiles()
# sets the try attempt node path and returns it
func tryCheck():
var try
if tryNum == 1:
try = get_node("Try1")
elif tryNum == 2:
try = get_node("Try2")
elif tryNum == 3:
try = get_node("Try3")
elif tryNum == 4:
try = get_node("Try4")
elif tryNum == 5:
try = get_node("Try5")
elif tryNum == 6:
try = get_node("Try6")
else:
pass
return try
# deletes the last character and makes the field editable.
func _on_Delete_pressed():
var try = tryCheck()
var check = try.get_node("char1").get_text() + try.get_node("char2").get_text() + try.get_node("char3").get_text() + try.get_node("char4").get_text() + try.get_node("char5").get_text()
var letterNumber = check.length()
if playing == true:
if letterNumber == 1:
try.get_node("char1").clear()
try.get_node("char1").editable = true
try.get_node("char1").grab_focus()
elif letterNumber == 2:
try.get_node("char2").clear()
try.get_node("char2").editable = true
try.get_node("char2").grab_focus()
elif letterNumber == 3:
try.get_node("char3").clear()
try.get_node("char3").editable = true
try.get_node("char3").grab_focus()
elif letterNumber == 4:
try.get_node("char4").clear()
try.get_node("char4").editable = true
try.get_node("char4").grab_focus()
elif letterNumber == 5:
try.get_node("char5").clear()
try.get_node("char5").editable = true
try.get_node("char5").grab_focus()
elif letterNumber < 1:
try.get_node("char1").grab_focus()
# The submit button grabs all the fields. Makes sure it's 5 characters long. Increases the try number. Loops back to the
# input loop. If pressed on the 5th try the game is over and stops the using from deleteing anything.
func _on_Submit_pressed():
var try = tryCheck()
var setWord = todaysWord
var check = try.get_node("char1").get_text() + try.get_node("char2").get_text() + try.get_node("char3").get_text() + try.get_node("char4").get_text() + try.get_node("char5").get_text()
#print(setWord)
if check.length() == 5:
if check.to_lower() in validWords || check.to_upper() == "ASDFA":
if tryNum < 6:
if wordCheck(setWord.to_upper(), check.to_upper()) == true:
playing = false
show_message("You Win")
print("you win")
else:
$Message.hide()
tryNum += 1
try = tryCheck()
try._ready()
elif tryNum == 6:
if wordCheck(setWord.to_upper(), check.to_upper()) == true:
print("you win")
show_message("You win")
playing = false
else:
playing = false
show_message(todaysWord)
else:
show_message("not a valid word")
print("Not a valid word")
else:
print("Must be 5 words long")
show_message("Must be 5 letters long")
func wordCheck(setWord, userWord):
var outcome = false
var try = tryCheck()
#try.get_node("char1").get_text()
#print(validWords)
# This block sets the background color overrides
# Green Box
var green = $Try1/char1.get_stylebox("read_only").duplicate()
green.bg_color = Color8(0, 225, 0)
# Yellow Box
var yellow = $Try1/char1.get_stylebox("read_only").duplicate()
yellow.bg_color = Color8(255, 255, 0)
# Grey
var grey = $Try1/char1.get_stylebox("read_only").duplicate()
grey.bg_color = Color8(98, 98, 98,50)
var x = 0
# loop through each letter in the user submited word. If the placement matches the set word turn it green
# if it doesn't match but is in the word set it yellow. If it isn't in the word set it grey.
for each in userWord:
if each == setWord[x]:
#print(each)
var nodeSet = "char"+str(x+1)
try.get_node(nodeSet).add_stylebox_override("read_only", green)
$Keyboard.get_node(each).add_stylebox_override("normal", green)
elif each in setWord:
var nodeSet = "char"+str(x+1)
if try.get_node(nodeSet).has_stylebox_override("green") != true:
#print("already green")
try.get_node(nodeSet).add_stylebox_override("read_only", yellow)
$Keyboard.get_node(each).add_stylebox_override("normal", yellow)
else:
var nodeSet = "char"+str(x+1)
try.get_node(nodeSet).add_stylebox_override("read_only", grey)
$Keyboard.get_node(each).add_stylebox_override("normal", grey)
x+=1
if userWord == setWord:
outcome = true
return outcome
func show_message(text):
$Message.text = text
$Message.show()
$MessageTimer.start()
func loadFiles():
var file = File.new()
file.open("res://config.game", file.READ)
var data = file.get_var()
var today = data["today"]
var rng = RandomNumberGenerator.new()
rng.randomize()
today = rng.randi_range(0, 300)
todaysWord = data["wordList"][today]
validWords = data["validWords"]+data["wordList"]