Sha256: 0928e3dc5a77307e5f9f8abe7ac616eceab294de814d75f232a463427b051c0d

Contents?: true

Size: 699 Bytes

Versions: 69

Compression:

Stored size: 699 Bytes

Contents

package queenattack

import "fmt"

const testVersion = 1

func CanQueenAttack(w, b string) (attack bool, err error) {
	if err = valSq(w); err != nil {
		return false, err
	}
	if err = valSq(b); err != nil {
		return false, err
	}
	if w == b {
		return false, fmt.Errorf("queens on same square")
	}
	if w[0] == b[0] || // same file
		w[1] == b[1] { // same rank
		return true, nil
	}
	df := w[0] - b[0]
	dr := w[1] - b[1]
	return df == dr || // same white-kingside diagonal
			df+dr == 0, // same white-queenside diagonal
		nil
}

func valSq(s string) error {
	if len(s) != 2 ||
		s[0] < 'a' || s[0] > 'h' ||
		s[1] < '1' || s[1] > '8' {
		return fmt.Errorf("invalid square: %q", s)
	}
	return nil
}

Version data entries

69 entries across 69 versions & 1 rubygems

Version Path
trackler-2.0.6.13 tracks/go/exercises/queen-attack/example.go
trackler-2.0.6.12 tracks/go/exercises/queen-attack/example.go
trackler-2.0.6.11 tracks/go/exercises/queen-attack/example.go
trackler-2.0.6.10 tracks/go/exercises/queen-attack/example.go
trackler-2.0.6.9 tracks/go/exercises/queen-attack/example.go
trackler-2.0.6.8 tracks/go/exercises/queen-attack/example.go
trackler-2.0.6.7 tracks/go/exercises/queen-attack/example.go
trackler-2.0.6.6 tracks/go/exercises/queen-attack/example.go
trackler-2.0.6.5 tracks/go/exercises/queen-attack/example.go
trackler-2.0.6.4 tracks/go/exercises/queen-attack/example.go
trackler-2.0.6.3 tracks/go/exercises/queen-attack/example.go
trackler-2.0.6.2 tracks/go/exercises/queen-attack/example.go
trackler-2.0.6.1 tracks/go/exercises/queen-attack/example.go
trackler-2.0.6.0 tracks/go/exercises/queen-attack/example.go
trackler-2.0.5.18 tracks/go/exercises/queen-attack/example.go
trackler-2.0.5.17 tracks/go/exercises/queen-attack/example.go
trackler-2.0.5.16 tracks/go/exercises/queen-attack/example.go
trackler-2.0.5.15 tracks/go/exercises/queen-attack/example.go
trackler-2.0.5.14 tracks/go/exercises/queen-attack/example.go
trackler-2.0.5.13 tracks/go/exercises/queen-attack/example.go