Forum

[VisualBasic] Nieprawidłowości w dziąłaniu programu szachowego

[+] Twoje konto

Subskrybuj kanał najnowszych wypowiedzi w tym temacie

Wątek Forum > Porady > Programowanie > [VisualBasic] Nieprawidłowości w dziąłaniu programu szachowego

Idź do strony:1
Ocena: (Ocen: 0)
Wypowiedzi 1 - 4 z 4
 Gość gunis232 Kopiuj nick (83.22.70.*)
Wypowiedź dodana: 23 czerwca 2010, 21:33:51 | Wypowiedź edytowana Ostatnio edytowana: 23 czerwca 2010, 22:15:49 po raz 1-wszy przez: Dżyszla
« Opcje

Moderowane przez Dżyszla :

Przeniesione, dodany znacznik kodu

Public Class Form1
Dim pozycja_hetmana(8) As Integer
Dim tablica_wynikow(8, 0) As Integer
Dim wiersz(8) As Boolean
Dim przekatna_lewo(16) As Boolean
Dim przekatna_prawo(16) As Boolean
Dim pola(8, 8) As Label
Dim rozwiazanie As Integer
Dim numer As Integer

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim i, j, k As Byte
Dim kolor() As Color = New Color() {Color.White, Color.DarkGray}
For i = 0 To 8
For j = 0 To 8

pola(i, j) = New Label()
With pola(i, j)
.Width = 40
.Height = 40
.Left = i * 40
.Top = j * 40
.TextAlign = ContentAlignment.MiddleCenter
.Font = New System.Drawing.Font("Verdana", 11, System.Drawing.FontStyle.Bold)

If i > 0 And j > 0 Then
k = (i + j) Mod 2
.BackColor = kolor(k)

ElseIf i = 0 And j > 0 Then
.Text = j
ElseIf j = 0 And i > 0 Then
.Text = i
End If
End With
Controls.Add(pola(i, j))
Next
Next

End Sub

Sub czysc()
Dim i, j As Integer
For i = 1 To 8
For j = 1 To 8
pola(i, j).Text = ""
Next
Next
End Sub
Sub wyswietl_wynik(ByVal numer_rozwiazania As Integer)
Dim i, j As Integer

For i = 1 To 8
If rozwiazanie = 1 Then
j = pozycja_hetmana(i)
ElseIf rozwiazanie = 2 Then
i = tablica_wynikow(i, numer_rozwiazania)
End If

pola(i, j).Text = "H"
Next

End Sub
Sub sprawdzaj(ByVal kolumna As Integer, ByRef koniec As Boolean)
Dim pomoc As Integer = 0
Do
pomoc += 1
koniec = False

If wiersz(pomoc) And przekatna_lewo(kolumna + pomoc) And przekatna_prawo(kolumna - pomoc + 8) Then
pozycja_hetmana(kolumna) = pomoc
wiersz(pomoc) = False
przekatna_lewo(kolumna + pomoc) = False
przekatna_prawo(kolumna - pomoc + 8) = False

If kolumna < 8 Then
sprawdzaj(kolumna + 1, koniec)

If Not koniec Then
wiersz(pomoc) = True
przekatna_lewo(kolumna + pomoc) = True
przekatna_prawo(kolumna - pomoc + 8) = True
End If

Else
koniec = True
End If
End If

Loop Until koniec Or pomoc = 8
End Sub

Sub sprawdzaj_wszystkie(ByVal kolumna As Integer)
Dim pomoc As Integer
For pomoc = 1 To 8
If wiersz(pomoc) And przekatna_lewo(kolumna + pomoc) And przekatna_prawo(kolumna - pomoc + 8) Then
pozycja_hetmana(kolumna) = pomoc
wiersz(pomoc) = False
przekatna_lewo(kolumna + pomoc) = False
przekatna_prawo(kolumna - pomoc + 8) = False

If kolumna < 8 Then
sprawdzaj_wszystkie(kolumna + 1)
Else
numer += 1
zapisz_wynik(numer)
End If
wiersz(pomoc) = True
przekatna_lewo(kolumna + pomoc) = True
przekatna_prawo(kolumna - pomoc + 8) = True
End If
Next
End Sub

Sub zapisz_wynik(ByVal numer As Integer)
Dim i As Integer
For i = 1 To 8
ReDim Preserve tablica_wynikow(8, numer)
tablica_wynikow(i, numer) = pozycja_hetmana(i)
Next
End Sub

End Class

w tym programie jest coś nie tak z procedurą wyswietl wynik może ktoś pomoże

 Gość REKLAMA Kopiuj nick (*->*)
Wypowiedź dodana: 23 czerwca 2010, 21:33:52

AvatarAdministrator Dżyszla Mężczyzna Kopiuj nick (83.2.108.*) |  
Wypowiedź dodana: 23 czerwca 2010, 22:15:04
« Opcje

A co rozumiesz pod pojęciem "coś nie tak?"


mgr inż. Dżyszla

Nie odpisuję na problemy zgłaszane na e-mail lub PW!

Także dzięki firmie Netlook.pl możesz za darmo korzystać z tej strony!

 Gość gumis232 Kopiuj nick (83.22.83.*)
Wypowiedź dodana: 25 czerwca 2010, 07:48:14 | Wypowiedź edytowana Ostatnio edytowana: 25 czerwca 2010, 07:53:46 po raz 1-wszy
« Opcje

Program z założenia powinien wyświetlać na szachownicy wszystkie możliwe rozwiązania a wyświetla 1. Pokazuje komunikat że znalaz 92 ale po zmianie numeru dalej pokazuje te same rozwiązanie

*** Dodano o 07:53:46: *** (Autoscalanie)

http://webcache.googleusercontent.com/search?q=cache:m8M1Ua0wXSoJ:www.otwartaszkola.edu.pl/upload/biuletyn/zadania/Kompendium_programisty_3_JB.doc+jak+napisa%C4%87+program+8+hetman%C3%B3w&cd=11&hl=pl&ct=clnk&gl=pl

to jest link do strony z której był pisany program

AvatarAdministrator Dżyszla Mężczyzna Kopiuj nick (83.2.108.*) |  
Wypowiedź dodana: 25 czerwca 2010, 18:38:11
« Opcje

proponuję sprawdzić przebieg działania pod debuggerem. Tak z kodu na dodatek nie mając projektu formy trudno jest wychwycić.


mgr inż. Dżyszla

Nie odpisuję na problemy zgłaszane na e-mail lub PW!

Także dzięki firmie Netlook.pl możesz za darmo korzystać z tej strony!

 
Idź do strony:1

[+] Pokaż/odśwież listę czytających i monitorujących ten wątek

Podobne tematy:
Tytuł wątkuDziałWypowiedziWyświetleńOcenaOstatnia wypowiedź
WątekZabezpieczenie programu przed kopiowaniem
Jak uniemożliwić skopiowanie programu
Porady / Programowanie7397 21.08.2013 08:23:36
WątekUnRAR
Komentarze dotyczące programu UnRAR (program twórcy programu WinRAR)
Komentarze / Moje programy i teksty82 274 16.01.2006 10:32:15
Ważne!WątekLogi
Masz log z jakiegoś programu, ale nie wiesz, jak go czytać i co z niego wynika? Wrzuć go tutaj i poproś o pomoc!
Logi programu HijackThis możesz sprawdzić także na stronie www.hijackthis.de!
Porady / Oprogramowanie, systemy operacyjne454 443 14.03.2010 15:24:42
WątekThunderbird, folder programu w Win i Lin, zawieszenia w LinPorady / Oprogramowanie, systemy operacyjne8384 17.11.2007 14:57:49
WątekLED
Komentarze dotyczące programu LED
Komentarze / Moje programy i teksty7338 31.07.2005 12:56:15

Nowa wypowiedź

Nowa wypowiedź
Nie jesteś zalogowany; będziesz traktowany jako gość!
Zaloguj Zaloguj
Nick (gość): | Przepisz ten kod [?]: c9597:
Tekst:

 

Subskrybuj kanał najnowszych wypowiedzi w tym temacie


Chcesz mieć też takie forum na swojej stronie? Napisz!

Strona istnieje od 25.01.2001
Ta strona używa plików Cookie
 
archive To tylko kopia strony wykonana przez robota internetowego! Aby wyświetlić aktualną zawartość przejdź do strony.
Ładowanie...

Optymalizowane dla przeglądarki Firefox
© Copyright 2001-2017 Dawid Najgiebauer. Wszelkie prawa zastrzeżone.
Ostatnia aktualizacja podstrony: 22.09.2014 12:12
Wszystkie czasy dla strefy czasowej: Europe/Warsaw