$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600
Config Lcdpin = Pin , Rs = Portc.2 , E = Portc.3 , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7
Config Lcd = 16 * 2
Config Rc5 = Pind.2
Enable Interrupts
Dim Address As Byte , Command As Byte , Togglebit As Byte
Display On
Dim Okej(9) As Byte
Dim A(81) As Integer
Dim I As Integer
Dim J As Integer
Dim K As Integer
Dim S As String * 20
Dim Pozycja As Integer
Dim Donzo As Byte
Dim Support(81) As Integer
Declare Sub Wygeneruj
Declare Sub Wypisz
Declare Sub Ustaw(byval Tmp As Integer , Byval Tmp2 As Byte)
Declare Sub Sprawdz
Declare Function Move(byval Tmp As Integer , Byval Typruchu As Integer) As Integer
Print "Witaj w ATMsudoku!"
Cls
Cursor Off Noblink
Lcd "Podlacz mnie do"
Lowerline
Lcd "komputera :-)"
For I = 1 To 81 Step 1
A(i) = 0
Next I
Call Wygeneruj
Pozycja = 1
Do
Call Wypisz
Donzo = 0
While Donzo <> 1
Getrc5(address , Command)
Command = Command And &B01111111
If Command = 37 Then
Donzo = 1
Pozycja = Move(pozycja , 3)
Elseif Command = 38 Then
Donzo = 1
Pozycja = Move(pozycja , 4)
Elseif Command = 53 Then
Donzo = 1
Pozycja = Move(pozycja , 1)
Elseif Command = 54 Then
Donzo = 1
Pozycja = Move(pozycja , 2)
Elseif Command >= 1 And Command <= 9 Then
Donzo = 1
Call Ustaw(pozycja , Command)
Elseif Command = 49 Then
Donzo = 1
Call Ustaw(pozycja , Command)
End If
Wend
Call Sprawdz
Loop
End
'--------------------------------------------------------------------
Sub Wygeneruj
Donzo = 0
Print "Wybierz jedna z pieciu plansz"
Print "1 - prosta"
Print "2 - srednia"
Print "3 - trudna"
Print "4 - testowa"
Print ""
While Donzo <> 1
Getrc5(address , Command)
Command = Command And &B01111111
If Command = 1 Then
Donzo = 1
A(3) = 7
A(5) = 4
A(8) = 1
A(9) = 9
A(11) = 8
A(14) = 6
A(15) = 7
A(18) = 2
A(20) = 2
A(25) = 3
A(31) = 9
A(34) = 4
A(36) = 5
A(37) = 4
A(40) = 5
A(41) = 3
A(42) = 6
A(45) = 8
A(46) = 9
A(48) = 1
A(51) = 4
A(57) = 3
A(62) = 5
A(64) = 7
A(67) = 4
A(68) = 1
A(71) = 3
A(73) = 6
A(74) = 1
A(77) = 2
A(79) = 9
Elseif Command = 2 Then
Donzo = 1
A(2) = 1
A(3) = 9
A(5) = 2
A(8) = 4
A(10) = 2
A(11) = 5
A(12) = 8
A(15) = 6
A(16) = 7
A(21) = 7
A(25) = 8
A(30) = 1
A(31) = 3
A(32) = 4
A(33) = 5
A(41) = 7
A(49) = 2
A(50) = 9
A(51) = 8
A(52) = 4
A(57) = 4
A(61) = 1
A(66) = 2
A(67) = 7
A(70) = 5
A(71) = 6
A(72) = 9
A(74) = 9
A(77) = 1
A(79) = 3
A(80) = 8
Elseif Command = 3 Then
Donzo = 1
A(3) = 8
A(5) = 7
A(6) = 4
A(7) = 9
A(8) = 1
A(10) = 6
A(18) = 7
A(20) = 2
A(22) = 9
A(27) = 3
A(32) = 2
A(33) = 1
A(35) = 4
A(38) = 6
A(39) = 1
A(41) = 3
A(42) = 5
A(47) = 8
A(49) = 5
A(50) = 6
A(55) = 3
A(60) = 7
A(62) = 9
A(64) = 8
A(72) = 5
A(74) = 4
A(75) = 6
A(76) = 8
A(77) = 9
A(79) = 2
Elseif Command = 4 Then
Donzo = 1
A(1) = 7
A(2) = 2
A(3) = 5
A(4) = 9
A(5) = 3
A(6) = 4
A(7) = 1
A(8) = 6
A(9) = 8
A(10) = 9
A(11) = 8
A(12) = 6
A(13) = 2
'A(14) = 1
A(15) = 7
A(16) = 5
A(17) = 3
A(18) = 4
A(19) = 3
A(20) = 4
A(21) = 1
A(22) = 8
A(23) = 6
A(24) = 5
A(25) = 9
A(26) = 2
A(27) = 7
A(28) = 5
A(29) = 9
A(30) = 4
A(31) = 1
A(32) = 8
A(33) = 6
A(34) = 2
A(35) = 7
A(36) = 3
A(37) = 2
A(38) = 6
A(39) = 3
A(40) = 7
A(41) = 5
A(42) = 9
A(43) = 8
A(44) = 4
A(45) = 1
A(46) = 1
A(47) = 7
A(48) = 8
A(49) = 4
A(50) = 2
A(51) = 3
A(52) = 6
A(53) = 9
A(54) = 5
A(55) = 6
A(56) = 3
A(57) = 9
A(58) = 5
A(59) = 7
A(60) = 1
A(61) = 4
A(62) = 8
A(63) = 2
A(64) = 8
A(65) = 1
A(66) = 7
A(67) = 6
A(68) = 4
A(69) = 2
A(70) = 3
A(71) = 5
A(72) = 9
A(73) = 4
A(74) = 5
A(75) = 2
A(76) = 3
A(77) = 9
A(78) = 8
A(79) = 7
A(80) = 1
A(81) = 6
End If
Upperline
Wend
Cls
Lcd "Milej gry ;-)"
End Sub
Sub Wypisz
Local Saving As Integer
Saving = Pozycja
S = ""
For I = 0 To 8 Step 1
For J = 1 To 9 Step 1
Pozycja = Saving
K = I * 9
K = K + J
If K <> Pozycja Then
S = S + " "
Else
S = S + ">"
End If
If A(k) = 0 Then
S = S + "_"
Else
S = S + Str(a(k))
End If
Next J
Print S
S = ""
Next I
Pozycja = Saving
Print ""
Print "------------"
Print ""
End Sub
Sub Ustaw(byval Tmp As Integer , Byval Tmp2 As Byte)
If Tmp2 >= 1 And Tmp2 <= 9 Then
A(tmp) = Tmp2
Elseif Tmp2 = 49 Then
A(tmp) = 0
End If
End Sub
Sub Sprawdz
Local Test As Byte
Local Tmp As Integer
Test = 1
For I = 0 To 8
For J = 1 To 9
Okej(j) = 0
Next J
For J = 1 To 9
For K = 1 To 81
Support(k) = A(k)
Next K
Tmp = I * 9
Tmp = Tmp + J
Tmp = Support(tmp)
If Tmp <> 0 Then
Okej(tmp) = 1
End If
Next J
For J = 1 To 9
If Okej(j) <> 1 Then
Test = 0
End If
Next J
'Print Test
Next I
For I = 1 To 9
For J = 1 To 9
Okej(j) = 0
Next J
For J = 0 To 8
For K = 1 To 81
Support(k) = A(k)
Next K
Tmp = J * 9
Tmp = Tmp + I
Tmp = Support(tmp)
If Tmp <> 0 Then
Okej(tmp) = 1
End If
Next J
For J = 1 To 9
If Okej(j) <> 1 Then
Test = 0
End If
Next J
'Print Test
Next I
If Test = 1 Then
Print ""
Print "GRATULACJE!"
Print "Udalo Ci sie rozwiazac SUDOKU!"
Print ""
End If
End Sub
Function Move(byval Tmp As Integer , Byval Typruchu As Integer) As Integer
Local Pozycjafinal As Integer
Pozycjafinal = Tmp
If Typruchu = 1 Then
Tmp = Tmp - 9
If Tmp > 0 Then Pozycjafinal = Tmp
Elseif Typruchu = 2 Then
Tmp = Tmp + 9
If Tmp < 82 Then Pozycjafinal = Tmp
Elseif Typruchu = 3 Then
Tmp = Tmp - 1
If Tmp > 0 Then Pozycjafinal = Tmp
Elseif Typruchu = 4 Then
Tmp = Tmp + 1
If Tmp < 82 Then Pozycjafinal = Tmp
End If
Move = Pozycjafinal
End Function
Replies to Re: Untitled
Title |
Name |
Language |
UNIX |
When |
Re: Re: Untitled |
Putrid Teal |
bascomavr |
1435076430 |
8 Years ago. |
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}