2 Spieler Schach; Buchstaben löschen wie??

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Diablo

Betreff: 2 Spieler Schach; Buchstaben löschen wie??

BeitragDo, März 17, 2005 13:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

ich bin gerade dabei ein 2 Spieler Schachprogramm zu Programmieren (wenn ich mich da mal nicht zuviel getraut habe).

So nun habe ich da ja mein Schachbrett mit den ganzen Figuren weiß aber nicht, wie ich die Figur wegbekomme wenn ich eine Verschiebe.

Also z.b.: Wie im Code: Ich weill den Bauern von A2 nach A3 verschieben so nun "texte" ich das B ja an die Koordinate aber das andere B bleibt noch stehen.

Wie kann ich dies Beheben??

Hier der Code zur veranschaulichung:

Code: [AUSKLAPPEN]

;#########################################################
;#                                            #
;#   Schach-Bot v0.01 ALPHA   (c)2004 by PB-Software       #
;#                                            #
;#   PB-Software @ www.pb-software.de.vu                 #
;#                                            #
;#########################################################



AppTitle "Schach-Bot v0.01 ALPHA PB-Software.de.vu"      ; Programmname


; Bildschirmgröße: 640,480

Graphics 640, 480, 0, 2               ; Bildschirmgröße,farbtiefe,fenstermodus: 640,480,0,2

;Repeat                           ; Repeat und CLS von der Tastateneingabe (Koordinateneingabe)
;Cls                           ; Damit auch das Schachbrett angezeigt wird!!

; Farbe rot:

Color 250,260,40                  ; Rote farbe für das Schachbrett!!

;------------------------------------------------------------
;###################                ####################
;####################### SCHACHBRETT: #######################
;###################                ####################
;------------------------------------------------------------

;   |------------------|
;   |  A|B|C|D|E|F|G|H |
;   |------------------|
;   |1  | | | | | | |  |
;   |------------------|
;   |2  | | | | | | |  |
;   |------------------|
;   |3  | | | | | | |  |
;   |------------------|
;   |4  | | | | | | |  |
;   |------------------|
;   |5  | | | | | | |  |
;   |------------------|
;   |6   | |   | | | | |  |
;   |------------------|
;   |7   | |   | | | | |  |
;   |------------------|
;   |8   | |   | | | | |  |
;   |------------------|




; Umrandung (rechteck)

Rect 175, 120, 145, 150, 0            ;schachbrett außen | X,Y, lengen * breite



; linien zwischen Buchstabe und zahl

; A - H:

   Line 192,120,192,268   ;A -> 1. linie
   Line 207,120,207,268   ;B -> 2. linie
   Line 222,120,222,268   ;C -> 3. linie
   Line 237,120,237,268   ;D -> 4. linie
   Line 252,120,252,268   ;E -> 5. linie
   Line 267,120,267,268   ;F -> 6. linie
   Line 282,120,282,268   ;G -> 7. linie
   Line 297,120,297,268   ;H -> 8. linie

; 1 - 8:

   Line 319,140,175,140   ;1 -> 1. linie
   Line 319,159,175,159   ;2 -> 2. linie
   Line 319,174,175,174   ;3 -> 3. linie
   Line 319,189,175,189   ;4 -> 4. linie
   Line 319,203,175,203   ;5 -> 5. linie
   Line 319,218,175,218   ;6 -> 6. linie
   Line 319,233,175,233   ;7 -> 7. linie
   Line 319,249,175,249   ;8 -> 8. linie

; text oben

   Text 195,125, "A"      ; A
   Text 210,125, "B"      ; B
   Text 225,125, "C"      ; C
   Text 240,125, "D"      ; D
   Text 255,125, "E"      ; E
   Text 270,125, "F"      ; F
   Text 285,125, "G"      ; G
   Text 300,125, "H"      ; H

; zahlen seite

   Text 180,145, "1"      ; 1
   Text 180,160, "2"      ; 2
   Text 180,175, "3"      ; 3
   Text 180,190, "4"      ; 4
   Text 180,205, "5"      ; 5
   Text 180,220, "6"      ; 6
   Text 180,235, "7"      ; 7
   Text 180,250, "8"      ; 8


;--------------------------------------------------------------
;###################                  ####################
;####################### SCHACHFIGUREN: #######################
;###################                  ####################
;--------------------------------------------------------------

; Figuren - Abkürzungen:

; B = Bauer
; K = König
; Q = Queen
; L = Läufer
; S = Springer
; T = Turm


; Spieler 1 / Computer -> Farbe: GRÜN

               ; Figur:   Koordinate:      

Color 46,246,0

   Text 195,145, "T"      ; T      A1
   Text 210,145, "S"      ; S      B1
   Text 225,145, "L"      ; L      C1
   Text 240,145, "Q"      ; Q      D1
   Text 255,145, "K"      ; K      E1
   Text 270,145, "L"      ; L      F1
   Text 285,145, "S"      ; S      G1
   Text 300,145, "T"      ; T      H1


   Text 300,161, "B"      ; B      H2      <----
   Text 195,161, "B"      ; B      B2         |
   Text 210,161, "B"      ; B      C2         |
   Text 225,161, "B"      ; B      D2         |   Umtauschen!!
   Text 240,161, "B"      ; B      E2         |
   Text 255,161, "B"      ; B      F2         |
   Text 270,161, "B"      ; B      G2         |
   Text 285,161, "B"      ; B      A2      <----



; Spieler 2 / Computer -> Farbe: GELB

               ; Figur:   Koordinate:   

Color 229,226,1

   Text 195,255, "T"      ; T      A8
   Text 210,255, "S"      ; S      B8
   Text 225,255, "L"      ; L      C8
   Text 240,255, "Q"      ; Q      D8
   Text 255,255, "K"      ; K      E8
   Text 270,255, "L"      ; L      F8
   Text 285,255, "S"      ; S      G8
   Text 300,255, "T"      ; T      H8


   Text 300,235, "B"      ; B      H7      <----
   Text 195,235, "B"      ; B      B7         |
   Text 210,235, "B"      ; B      C7         |
   Text 225,235, "B"      ; B      D7         |   Umtauschen!!
   Text 240,235, "B"      ; B      E7         |
   Text 255,235, "B"      ; B      F7         |
   Text 270,235, "B"      ; B      G7         |
   Text 285,235, "B"      ; B      A7      <----



; Verlorene Figuren:

Color 255,255,255                     ; Farbe: Weiß

Text 420,120, " Verlorene Figuren:"


   Line 400,135,595,135                  ; Linie unter "Verlorene Figuren:"
   Line 400,120,400,275                  ; Linie an der Seite
   Line 500,135,500,275                  ; Linie in der Mitte
   Line 595,120,595,275                  ; Linie am Ende


Color 46,246,0                        ; Spieler 1 Farbe: Grün
Text 400,140, " Spieler 1:"


Color 229,226,1                        ; Spieler 2 Farbe: Gelb
Text 500,140, " Spieler 2:"

;------------------------------------------------------
;###################            ####################
;####################### About: #######################
;###################            ####################
;------------------------------------------------------

; About text unten rechts:

Color 255,255,255

Line 10,445,600,445
Text 275,455, " (c)2004 by PB-Software.de.vu"
Text 10,455, " v0.01 ALPHA"

;--------------------------------------------------------------
;###################                  ####################
;####################### Hauptprogramm: #######################
;###################                  ####################
;--------------------------------------------------------------

;____________________________________________________
; Farbe: weiß
;Color 255,255,255
;Text 10,300, " Bitte die Koordinaten eingeben: "
;____________________________________________________

;___________
;Repeat
;Cls
;___________
   
   ;-----------------------------------------------------------------------------------------------
   ;Text 10,300, " Bitte die Koordinaten eingeben: "
   ;A = GetKey()
   ;If A > 31 Then koordinate$ = koordinate$ + Chr$(A)
   ;If (A = 8) And Len(koordinate$) > 0 Then koordinate$ = Left$(koordinate$, Len(koordinate$) - 1)
   ;Text 280,300, koordinate$ + "_"
   ;Flip
   ;Until (Len(koordinate$) > 0) And KeyHit(28)
   ;-----------------------------------------------------------------------------------------------


; Koordinaten eingabe:

Color 255,255,255
Text 10,300, " Bitte die Koordinaten eingeben: "


koordinate$ = Input$(" ")

Text 280,300, koordinate$

   If koordinate$ = "A2_A3" Then Text 195,176, "B"
   If koordinate$ = "A2_A3" Then Text 195,161, "0"

;Forever

WaitKey()


Falls sich das alles etwas verrückt hat liegt das am Compiler!!?? Wink


Für Hilfe wäre ich euch Dankbar!!

MFG Diablo[/code]
www.pb-software.de.vu

Meine Entwicklungsseite
  • Zuletzt bearbeitet von Diablo am Fr, März 16, 2012 15:08, insgesamt einmal bearbeitet

Blitzer

Betreff: Scheiße!

BeitragDo, März 17, 2005 14:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich will dich nicht kritisieren, aber dein Code ist echt scheiße! Crying or Very sad

1. Du musst dein Text in eine Schleife reinsetzten und ein cls vorher hinstzen! Idea
2. Setzte besser alles auf den Backbuffer und ein schreib flip vor dem Ende der Schleife! Idea
3. Setzte deine Koordinaten nicht so teuer ein Code: [AUSKLAPPEN]
   If koordinate$ = "A2_A3" Then Text 195,176, "B"
   If koordinate$ = "A2_A3" Then Text 195,161, "0"

mehr auf Zahlen kommt dir schneller, Weil wenn du so weiter machst, dann verbraucht das deinen ganzen Speicher!!! Idea
Nichts ist mehr so wie es einmal war mit
------------------Blitzbasic------------------

Athlon 3000+, 1 GBRam DDR, Geforce FX 5500, 120 GB Fesplatte
Sempron 2200+, 512 MBRam DDR, Geforce FX 5200, 60 GB Festplatte

Blitzer

Betreff: Noch mehr!

BeitragDo, März 17, 2005 14:23
Antworten mit Zitat
Benutzer-Profile anzeigen
4. Setzte alles in dimensions Felder!!! Idea

PS: 8) bleiben!!!
Nichts ist mehr so wie es einmal war mit
------------------Blitzbasic------------------

Athlon 3000+, 1 GBRam DDR, Geforce FX 5500, 120 GB Fesplatte
Sempron 2200+, 512 MBRam DDR, Geforce FX 5200, 60 GB Festplatte

Diablo

BeitragDo, März 17, 2005 14:31
Antworten mit Zitat
Benutzer-Profile anzeigen
*hust* Ja du hast recht aber im Blitz3D sitz eigendlich OK aus.... Embarassed

THX Für die Hilfe ich werds mal versuchen!
www.pb-software.de.vu

Meine Entwicklungsseite

Firstdeathmaker

BeitragDo, März 17, 2005 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Scheiße nicht unbedingt, aber ich würde das so lösen (wie schon vorgeschlagen von Blitzer):

dim Schachbrett(7,7,1)

und für die Figuren dann Nummerncodes nehmen die man dort einträgt (Schachbrett(x,y,0) für die Figurnummer, Schachbrett(x,y,1) für die Spielerfarbe),

Wenn du eine verschieben möchtest, musst du das Feld abfragen welche Figur dort steht, entsprechend der Nummer die Bewegung zulassen, das neue Feld auf eigene oder feindliche Spielfiguren überprüfen und dann das alte Feld auf "0" setzen und ins neue Feld die Nummer der Spielfigur eintragen.

Seperat davon machst du einfach nur eine Funktion die dir das ganze Schachbrett einzeichnet, so in der Art:

BlitzBasic: [AUSKLAPPEN]
Function DRAW_SCHACHBRETT()
For x=0 To 7
For y=0 To 7
For
Color 0,0,Schachbrett(x,y,1)
Text x*z,y*z,figur(Schachbrett(x,y,0)),1,1
Next
Next

Function figur(nummer)
Select nummer
Case 1 Return \"B\"
Case 2 Return \"K\"
Case 3 Return \"Q\"
Case 4 Return \"L\"
Case 5 Return \"S\"
Case 6 Return \"T\"
End Select
Return 0
End Function
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image
 

Hot-Bit

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragDo, März 17, 2005 14:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Hoi

Totaler Unfug.

Erstens:

Wenn du da schon Schwierigkeiten hast, dann laß es lieber bleiben, ein Schach zu programmieren. Du wirst mir noch danken für den Tipp, denn der erspart dir sehr viel Zeit, die du für andere Sachen erübrigen kannst.

Zweitens:

Wer gibt denn heutzutage noch irgendwas per Tastatur ein ?
Die Figur gehört einfach per Maus verschoben, und fertig.
Dies ist das kleinste Problem bei deiner Schach-programmiererei Smile

Toni
... ..... .i.. ...

***
Sieger des BB-Gameboy-Contest 2004
Sieger des Blitzbaster 2D-Minigolf-Contest 2005
***
 

David

BeitragDo, März 17, 2005 15:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Jep, Hot-Bit hat recht. Sorry, Diablo aber dein Ansatz ist totaler Unsinn, damit kommst du nicht weit! :S
Falls du aber unbedingt deinen "Schach-Bot" weiter machen willst, dann rate ich dir: Setz' dich erstmal hin und Plane das ganze haarklein durch, implementieren kannst du später noch!

grüße

Diablo

BeitragDo, März 17, 2005 15:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Wieder ein Traum verpufft !! Confused

Naja komme sowieso nicht ganz so klar mit dem Code.... dachte nur ich kann es als 2 Spieler Programm machen und NICHT mit CPU-Gegnern!

Aber dann mach ich halt mein Klicki weiter.... Razz

MFG Diablo
www.pb-software.de.vu

Meine Entwicklungsseite

Ctuchik

BeitragDo, März 17, 2005 21:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Also das schwierige an einem Schach-Programm ist eh der Computergegner!
Wenn du den weglässt sollte es auch für Anfänger nicht allzu schwer sein!

Allerdings solltest du einige Grundlagen beherrschen!
Vor allem Arrays!
Erstelle am Anfang des Programms einen 8 mal 8 Felder Array per
Code: [AUSKLAPPEN]

Dim Schachbrett(7,7)

und speichere darin jeweils die Figuren!
Zu den Nebenwirkungen gehören trockener Mund, Übelkeit, Erbrechen, Harnstau, schmerzhafter rektaler Juckreiz, Halluzinationen, Demenz, Psychose, Koma, Tod und Mundgeruch!
Magie eignet sich nicht für alle!
Fraget euren Arzt oder Apotheker!

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group