Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -0,0 +1,114 @@
type Puzzle(var items: {}, var position: -1)
fun mainframe(puz):
let d = puz.items
print('+-----+-----+-----+-----+')
print(d[1], d[2], d[3], d[4], first: '|', sep: '|', last: '|')
print('+-----+-----+-----+-----+')
print(d[5], d[6], d[7], d[8], first: '|', sep: '|', last: '|')
print('+-----+-----+-----+-----+')
print(d[9], d[10], d[11], d[12], first: '|', sep: '|', last: '|')
print('+-----+-----+-----+-----+')
print(d[13], d[14], d[15], d[16], first: '|', sep: '|', last: '|')
print('+-----+-----+-----+-----+')
fun format(puz, ch):
match ch.trim().length:
1 => ' $ch '
2 => ' $ch '
0 => ' '
fun change(puz, to):
let fro = puz.position
for a, b in puz.items where b == puz.format(str i):
to = a
break
swap(puz.items[fro], :[to])
puz.position = to;
fun buildboard(puz, difficulty):
for i in 1..16:
puz.items[i] = puz.format(str i)
var tmp = a
for a, b in puz.items where b == ' 16 ':
puz.items[a] = ' '
tmp = a
break
puz.position = tmp
let diff = match difficulty:
0 => 10
1 => 50
_ => 100
for i in 1..diff:
let lst = puz.validmoves()
let lst1 = []
for j in lst:
lst1.push! j.trim().int()
puz.change(lst1[random(1, lst1.length - 1)])
fun validmoves(puz):
match puz.position:
6 | 7 | 10 | 11 =>
puz.items[pos - 4], :[pos - 1], :[pos + 1], :[pos + 4]
5 | 9 =>
puz.items[pos - 4], :[pos + 4], :[pos + 1]
8 | 12 =>
puz.items[pos - 4], :[pos + 4], :[pos - 1]
2 | 3 =>
puz.items[pos - 1], :[pos + 1], :[pos + 4]
14 | 15 =>
puz.items[pos - 1], :[pos + 1], :[pos - 4]
1 =>
puz.items[pos + 1], :[pos + 4]
4 =>
puz.items[pos - 1], :[pos + 4]
13 =>
puz.items[pos + 1], :[pos - 4]
16 =>
puz.items[pos - 1], :[pos - 4]
fun mainframe(puz):
var flag = false
for a, b in puz.items:
if b == ' ':
pass
else:
flag = (a == b.trim().int())
..
return flag
let game = Puzzle()
game.buildboard(
int(input('Enter the difficulty : 0 1 2\n2 => highest 0=> lowest\n'))
)
game.mainframe()
print 'Enter 0 to exit'
loop:
print 'Hello user:\nTo change the position just enter the no. near it'
var lst = game.validmoves()
var lst1 = []
for i in lst:
lst1.push! i.trim().int()
print(i.strip(), '\t', last: '')
print()
let value = int(input())
if value == 0:
break
elif x not in lst1:
print('Wrong move')
else:
game.change(x)
game.mainframe()
if g.gameover():
print 'You WON'
break