|
@@ -1,7 +1,6 @@
|
|
|
package main
|
|
|
|
|
|
import (
|
|
|
- "bytes"
|
|
|
"math/rand"
|
|
|
"red-green/door"
|
|
|
"strings"
|
|
@@ -55,13 +54,13 @@ func CardOf(c int) door.Panel {
|
|
|
s := SuitSymbol(suit)
|
|
|
|
|
|
p.Lines = append(p.Lines,
|
|
|
- door.Line{Text: string(r) + string(s) + " ",
|
|
|
+ door.Line{Text: r + s + " ",
|
|
|
DefaultColor: color})
|
|
|
p.Lines = append(p.Lines,
|
|
|
- door.Line{Text: " " + string(s) + " ",
|
|
|
+ door.Line{Text: " " + s + " ",
|
|
|
DefaultColor: color})
|
|
|
p.Lines = append(p.Lines,
|
|
|
- door.Line{Text: " " + string(s) + string(r),
|
|
|
+ door.Line{Text: " " + s + r,
|
|
|
DefaultColor: color})
|
|
|
return p
|
|
|
}
|
|
@@ -72,16 +71,8 @@ func BackOf(level int) door.Panel {
|
|
|
Y: 0,
|
|
|
Width: 5,
|
|
|
}
|
|
|
- var back string
|
|
|
|
|
|
- if door.Unicode {
|
|
|
- back = strings.Repeat(string(BackSymbol(level)), 5)
|
|
|
- } else {
|
|
|
- // bytes get destroyed as string.
|
|
|
- br := make([]byte, 1)
|
|
|
- br[0] = byte(BackSymbol(level))
|
|
|
- back = string(bytes.Repeat(br, 5))
|
|
|
- }
|
|
|
+ var back string = strings.Repeat(BackSymbol(level), 5)
|
|
|
|
|
|
for x := 0; x < 3; x++ {
|
|
|
p.Lines = append(p.Lines,
|
|
@@ -118,79 +109,79 @@ func MarkOf(c int) door.Panel {
|
|
|
return p
|
|
|
}
|
|
|
|
|
|
-func RankSymbol(c int) rune {
|
|
|
+func RankSymbol(c int) string {
|
|
|
const symbols = "A23456789TJQK"
|
|
|
- return rune(symbols[c])
|
|
|
+ return symbols[c : c+1]
|
|
|
}
|
|
|
|
|
|
-func SuitSymbol(c int) rune {
|
|
|
+func SuitSymbol(c int) string {
|
|
|
if door.Unicode {
|
|
|
switch c {
|
|
|
case 0:
|
|
|
- return '\u2665'
|
|
|
+ return "\u2665"
|
|
|
case 1:
|
|
|
- return '\u2666'
|
|
|
+ return "\u2666"
|
|
|
case 2:
|
|
|
- return '\u2663'
|
|
|
+ return "\u2663"
|
|
|
case 3:
|
|
|
- return '\u2660'
|
|
|
+ return "\u2660"
|
|
|
}
|
|
|
} else {
|
|
|
if door.Full_CP437 {
|
|
|
switch c {
|
|
|
case 0:
|
|
|
- return '\x03'
|
|
|
+ return "\x03"
|
|
|
case 1:
|
|
|
- return '\x04'
|
|
|
+ return "\x04"
|
|
|
case 2:
|
|
|
- return '\x05'
|
|
|
+ return "\x05"
|
|
|
case 3:
|
|
|
- return '\x06'
|
|
|
+ return "\x06"
|
|
|
}
|
|
|
} else {
|
|
|
switch c {
|
|
|
case 0:
|
|
|
- return '*'
|
|
|
+ return "*"
|
|
|
case 1:
|
|
|
- return '^'
|
|
|
+ return "^"
|
|
|
case 2:
|
|
|
- return '%'
|
|
|
+ return "%"
|
|
|
case 3:
|
|
|
- return '$'
|
|
|
+ return "$"
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- return '?'
|
|
|
+ return "?"
|
|
|
}
|
|
|
|
|
|
-func BackSymbol(level int) rune {
|
|
|
+func BackSymbol(level int) string {
|
|
|
if level == 0 {
|
|
|
- return ' '
|
|
|
+ return " "
|
|
|
}
|
|
|
if door.Unicode {
|
|
|
switch level {
|
|
|
case 1:
|
|
|
- return '\u2591'
|
|
|
+ return "\u2591"
|
|
|
case 2:
|
|
|
- return '\u2592'
|
|
|
+ return "\u2592"
|
|
|
case 3:
|
|
|
- return '\u2593'
|
|
|
+ return "\u2593"
|
|
|
case 4:
|
|
|
- return '\u2588'
|
|
|
+ return "\u2588"
|
|
|
}
|
|
|
} else {
|
|
|
switch level {
|
|
|
case 1:
|
|
|
- return '\xb0'
|
|
|
+ return "\xb0"
|
|
|
case 2:
|
|
|
- return '\xb1'
|
|
|
+ return "\xb1"
|
|
|
case 3:
|
|
|
- return '\xb2'
|
|
|
+ return "\xb2"
|
|
|
case 4:
|
|
|
- return '\xdb'
|
|
|
+ return "\xdb"
|
|
|
}
|
|
|
}
|
|
|
- return '?'
|
|
|
+ return "?"
|
|
|
}
|
|
|
|
|
|
func GetRank(c int) int {
|
|
@@ -363,3 +354,11 @@ func MakeCardStates(decks int) []DeckType {
|
|
|
// defaults to 0
|
|
|
return result
|
|
|
}
|
|
|
+
|
|
|
+func RemoveCard(c int, off_x int, off_y int, left bool, right bool) string {
|
|
|
+ Pos := &CardPos[c]
|
|
|
+ if Pos.Level > 1 {
|
|
|
+ Pos.Level--
|
|
|
+ }
|
|
|
+ return ""
|
|
|
+}
|