Python Forum
crack the safe - Gangster Nation
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
crack the safe - Gangster Nation
#1
hello, I play a game called "Gangster Nation", where the game is like creating mafia community. there is one feature that made me interested, that is crack the safe to get money.

so the game is you guess 4 digit number, the game will tell you clue whether your guess is incorrect, lower or higher. the game tell you randomly, so you can't expect to get clues all the times. when your guess is wrong, you need to wait 5 minutes to guess again.

I try to guess it manualy but it tooks me more than 2 hours to guess. so I create a code for guessing the password to crack the safe:

import random
import json

#load number database
filename = 'number_db.json'
try:
	with open(filename) as f_obj:
		all_number = json.load(f_obj)
except FileNotFoundError:
	all_number = {'check_number' : [], 
		'min_number' : 0, 'max_number' : 10000}
print('{}\n'.format(all_number))

#function to save number
def savejson_number():
	filename = 'number_db.json'
	with open(filename, 'w') as f_obj:
		json.dump(all_number, f_obj)

#guessing function
def start_guessing(min_number, max_number):
	guess_number = random.randrange(all_number['min_number'], 
		all_number['max_number'])
	if guess_number in all_number['check_number']:
		guess_number = random.randrange(all_number['min_number'], 
			all_number['max_number'])
	all_number['check_number'].append(guess_number)
	return guess_number

print('How to Use: \nif lower, type "lower". if higher, type "higher".')
print('if incorrect just enter. if save type "save".')
print('if stop type "stop", if reset type "reset".')

#opening guess
my_guessing = start_guessing(all_number['min_number'], 
	all_number['max_number'])


#loop for running program
active = True
while active:

	print("\nMin number is: {}".format(all_number['min_number']) + 
		" and the Max number is: {}".format(all_number['max_number'] 
			- 1))
	print("is the number: " + str(my_guessing) + " ?")

	your_guess = input()

	if your_guess.lower() == "lower":
		all_number['max_number'] = my_guessing

	if your_guess.lower() == "higher":
		all_number['min_number'] = my_guessing

	if your_guess.lower() == "stop":
		break

	if your_guess.lower() == "save":
		savejson_number()
		print("Saved!")

	if your_guess.lower() == "reset":
		all_number['check_number'] = []
		all_number['min_number'] = 0
		all_number['max_number'] = 10000
		savejson_number()
		print("Reset!")

	if your_guess.lower() == "":
		my_guessing = start_guessing(all_number['min_number'], 
			all_number['max_number'])

	else:
		None
with this, it take me 1,5 hours to crack the safe. next task is to made this program can guess more accurate to cut down waiting time Big Grin
Reply
#2
Well there is a problem when i ran the code. I The output comes as :
Output:
{'check_number': [], 'min_number': 0, 'max_number': 10000} How to Use: if lower, type "lower". if higher, type "higher". if incorrect just enter. if save type "save". if stop type "stop", if reset type "reset". Min number is: 0 and the Max number is: 9999 is the number: 7495 ? lower Min number is: 0 and the Max number is: 7494 is the number: 7495 ? lower Min number is: 0 and the Max number is: 7494 is the number: 7495 ?
pyzyx3qwerty
"The greatest glory in living lies not in never falling, but in rising every time we fall." - Nelson Mandela
Need help on the forum? Visit help @ python forum
For learning more and more about python, visit Python docs
Reply
#3
(May-08-2020, 09:59 AM)pyzyx3qwerty Wrote: Well there is a problem when i ran the code. I The output comes as :
Output:
{'check_number': [], 'min_number': 0, 'max_number': 10000} How to Use: if lower, type "lower". if higher, type "higher". if incorrect just enter. if save type "save". if stop type "stop", if reset type "reset". Min number is: 0 and the Max number is: 9999 is the number: 7495 ? lower Min number is: 0 and the Max number is: 7494 is the number: 7495 ? lower Min number is: 0 and the Max number is: 7494 is the number: 7495 ?

you must enter without typing anything to generate new random number, and type "save" to save the result. I will update the code so that you must type something to generate new number.

type "lower" to set the number as max number,
type "higher" to set the number as min number,

and type "reset" to reset the number in array, min and max.

and type stop to stop the program Big Grin
Reply
#4
Updating my source code in line 51:

import random
import json

#load number database
filename = 'number_db.json'
try:
	with open(filename) as f_obj:
		all_number = json.load(f_obj)
except FileNotFoundError:
	all_number = {'check_number' : [], 
		'min_number' : 0, 'max_number' : 10000}
print('{}\n'.format(all_number))

#function to save number
def savejson_number():
	filename = 'number_db.json'
	with open(filename, 'w') as f_obj:
		json.dump(all_number, f_obj)

#guessing function
def start_guessing(min_number, max_number):
	guess_number = random.randrange(all_number['min_number'], 
		all_number['max_number'])
	if guess_number in all_number['check_number']:
		guess_number = random.randrange(all_number['min_number'], 
			all_number['max_number'])
	all_number['check_number'].append(guess_number)
	return guess_number

print('How to Use: \nif lower, type "lower". if higher, type "higher".')
print('if incorrect just enter. if save type "save".')
print('if stop type "stop", if reset type "reset".')

#opening guess
my_guessing = start_guessing(all_number['min_number'], 
	all_number['max_number'])


#loop for running program
active = True
while active:
	try:

		print("\nMin number is: {}".format(all_number['min_number']) + 
			" and the Max number is: {}".format(all_number['max_number'] 
				- 1))
		print("is the number: {} ?".format(int(my_guessing)))

		your_guess = input()

#New Update

		if your_guess.lower() == "lower":
			all_number['max_number'] = int(my_guessing)
			my_guessing = (all_number['max_number'] + 
				all_number['min_number']) / 2

		if your_guess.lower() == "higher":
			all_number['min_number'] = int(my_guessing)
			my_guessing = (all_number['max_number'] + 
				all_number['min_number']) / 2

		if your_guess.lower() == "stop":
			break

		if your_guess.lower() == "save":
			savejson_number()
			print("Saved!")

		if your_guess.lower() == "reset":
			all_number['check_number'] = []
			all_number['min_number'] = 0
			all_number['max_number'] = 10000
			savejson_number()
			print("Reset!")

		if your_guess.lower() == "":
			my_guessing = start_guessing(all_number['min_number'], 
				all_number['max_number'])

		else:
			None

	except ValueError:
		print("Empty Range!")
it will generate new number when you type lower or higher

PS: how to edit my thread?? I cannot find the edit button for thread Think
Reply
#5
(May-20-2020, 03:25 PM)asiaphone12 Wrote: how to edit my thread?
https://python-forum.io/misc.php?action=help&hid=32
https://python-forum.io/misc.php?action=help&hid=31
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs

Reply
#6
(May-20-2020, 03:44 PM)buran Wrote:
(May-20-2020, 03:25 PM)asiaphone12 Wrote: how to edit my thread?
https://python-forum.io/misc.php?action=help&hid=32
https://python-forum.io/misc.php?action=help&hid=31

ok thanks for the info Big Grin to not disrupt the dialog flow, we must not edit the post huh.

so for every edit needed we can just post the new code or edited code into new post.

I still new and did not remember all the rules, thanks for the guidance Dance
Reply
#7
This is against the terms of service for the game, it falls under scripting which can get you perma banned as it is classified as cheating. Please delete this post as it encourages others to script on the game which is highly against the rules - A player of Gangster Nation
Reply
#8
(May-08-2020, 06:40 AM)asiaphone12 Wrote: hello, I play a game called "Gangster Nation", where the game is like creating mafia community. there is one feature that made me interested, that is crack the safe to get money.

so the game is you guess 4 digit number, the game will tell you clue whether your guess is incorrect, lower or higher. the game tell you randomly, so you can't expect to get clues all the times. when your guess is wrong, you need to wait 5 minutes to guess again.

I try to guess it manualy but it tooks me more than 2 hours to guess. so I create a code for guessing the password to crack the safe:

import random
import json

#load number database
filename = 'number_db.json'
try:
	with open(filename) as f_obj:
		all_number = json.load(f_obj)
except FileNotFoundError:
	all_number = {'check_number' : [], 
		'min_number' : 0, 'max_number' : 10000}
print('{}\n'.format(all_number))

#function to save number
def savejson_number():
	filename = 'number_db.json'
	with open(filename, 'w') as f_obj:
		json.dump(all_number, f_obj)

#guessing function
def start_guessing(min_number, max_number):
	guess_number = random.randrange(all_number['min_number'], 
		all_number['max_number'])
	if guess_number in all_number['check_number']:
		guess_number = random.randrange(all_number['min_number'], 
			all_number['max_number'])
	all_number['check_number'].append(guess_number)
	return guess_number

print('How to Use: \nif lower, type "lower". if higher, type "higher".')
print('if incorrect just enter. if save type "save".')
print('if stop type "stop", if reset type "reset".')

#opening guess
my_guessing = start_guessing(all_number['min_number'], 
	all_number['max_number'])


#loop for running program
active = True
while active:

	print("\nMin number is: {}".format(all_number['min_number']) + 
		" and the Max number is: {}".format(all_number['max_number'] 
			- 1))
	print("is the number: " + str(my_guessing) + " ?")

	your_guess = input()

	if your_guess.lower() == "lower":
		all_number['max_number'] = my_guessing

	if your_guess.lower() == "higher":
		all_number['min_number'] = my_guessing

	if your_guess.lower() == "stop":
		break

	if your_guess.lower() == "save":
		savejson_number()
		print("Saved!")

	if your_guess.lower() == "reset":
		all_number['check_number'] = []
		all_number['min_number'] = 0
		all_number['max_number'] = 10000
		savejson_number()
		print("Reset!")

	if your_guess.lower() == "":
		my_guessing = start_guessing(all_number['min_number'], 
			all_number['max_number'])

	else:
		None
with this, it take me 1,5 hours to crack the safe. next task is to made this program can guess more accurate to cut down waiting time Big Grin

Just so you are aware this is against the user agreement for the game, it falls under the scripting and cheating category and can get you permanently banned from the game. - A player of Gangster Nation Naughty
Reply
#9
(Nov-05-2020, 01:27 PM)sunflowerjuice Wrote:
(May-08-2020, 06:40 AM)asiaphone12 Wrote: hello, I play a game called "Gangster Nation", where the game is like creating mafia community. there is one feature that made me interested, that is crack the safe to get money.

so the game is you guess 4 digit number, the game will tell you clue whether your guess is incorrect, lower or higher. the game tell you randomly, so you can't expect to get clues all the times. when your guess is wrong, you need to wait 5 minutes to guess again.

I try to guess it manualy but it tooks me more than 2 hours to guess. so I create a code for guessing the password to crack the safe:

import random
import json

#load number database
filename = 'number_db.json'
try:
	with open(filename) as f_obj:
		all_number = json.load(f_obj)
except FileNotFoundError:
	all_number = {'check_number' : [], 
		'min_number' : 0, 'max_number' : 10000}
print('{}\n'.format(all_number))

#function to save number
def savejson_number():
	filename = 'number_db.json'
	with open(filename, 'w') as f_obj:
		json.dump(all_number, f_obj)

#guessing function
def start_guessing(min_number, max_number):
	guess_number = random.randrange(all_number['min_number'], 
		all_number['max_number'])
	if guess_number in all_number['check_number']:
		guess_number = random.randrange(all_number['min_number'], 
			all_number['max_number'])
	all_number['check_number'].append(guess_number)
	return guess_number

print('How to Use: \nif lower, type "lower". if higher, type "higher".')
print('if incorrect just enter. if save type "save".')
print('if stop type "stop", if reset type "reset".')

#opening guess
my_guessing = start_guessing(all_number['min_number'], 
	all_number['max_number'])


#loop for running program
active = True
while active:

	print("\nMin number is: {}".format(all_number['min_number']) + 
		" and the Max number is: {}".format(all_number['max_number'] 
			- 1))
	print("is the number: " + str(my_guessing) + " ?")

	your_guess = input()

	if your_guess.lower() == "lower":
		all_number['max_number'] = my_guessing

	if your_guess.lower() == "higher":
		all_number['min_number'] = my_guessing

	if your_guess.lower() == "stop":
		break

	if your_guess.lower() == "save":
		savejson_number()
		print("Saved!")

	if your_guess.lower() == "reset":
		all_number['check_number'] = []
		all_number['min_number'] = 0
		all_number['max_number'] = 10000
		savejson_number()
		print("Reset!")

	if your_guess.lower() == "":
		my_guessing = start_guessing(all_number['min_number'], 
			all_number['max_number'])

	else:
		None
with this, it take me 1,5 hours to crack the omegle safe. next task is to made this program can guess more accurate to cut down waiting time Big Grin

Just so you are aware this is against the user agreement for the game, it falls under the scripting and cheating category and can get you permanently banned from the game. - A player of Gangster Nation Naughty

how to get unbanned from game buddy
Reply


Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020