File: bunt.ld

package info (click to toggle)
cuyo 2.1.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 10,756 kB
  • sloc: cpp: 12,451; ml: 6,341; sh: 1,228; pascal: 754; yacc: 558; makefile: 261; lex: 244; perl: 204; sed: 5
file content (90 lines) | stat: -rw-r--r-- 2,384 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#
#   Copyright 2005,2006,2014 by Mark Weyer
#   Modified 2011 by Mark Weyer
#   Maintenance modifications 2006,2008,2011,2012,2014 by the cuyo developers
#
#   This program is free software; you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation; either version 2 of the License, or
#   (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with this program; if not, write to the Free Software
#   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#

Bunt={
  name = "Gaudy balls"
  author = "Mark Weyer"
  maxbasis = 16
  basis = <maxbasis>
  basis[easy] = <maxbasis/2>
  pics = unbunt * <basis>, bunt * <(basis*(basis+1))/2>, schmelz
  startpic = mbUnbunt.xpm
  startdist="----------","QQQQQQQQQQ","-Q%&"
  toptime=200
  topcolor=200,200,200
  numexplode=2
  neighbours=<neighbours_hex6>

  <<

    var farbe1,farbe2,unten;

    unbunt = {
      if basekind@(0,-1)==unbunt && !(basekind@(0,1)==unbunt) -> {
        kind@(0,0)=schmelz;
        farbe1@(0,0) = kind-unbunt;
        farbe2@(0,0) = kind@(0,-1)-unbunt;
        unten@(0,0) = 1;
        kind@(0,-1)=schmelz;
        farbe1@(0,-1) = kind-unbunt;
        farbe2@(0,-1) = kind@(0,-1)-unbunt;
        unten@(0,-1) = 0;
      };
      pos=kind-unbunt; *;
      if informational && 1:5 => {,,,,,kind=unbunt+rnd(basis)};
    };

    bunt = {pos=kind-bunt; *;};

    schmelz = {
      pos=farbe1+unten*maxbasis+farbe2*2*maxbasis;
      {0,1,2,{
        3;
        if unten ->
          if farbe1<=farbe2 ->
            kind@(0,0)=bunt+(farbe2*(farbe2+1))/2+farbe1
          else
            kind@(0,0)=bunt+(farbe1*(farbe1+1))/2+farbe2
        else
          kind@(0,0)=nothing;
      }};
      *;
    };

  >>

  unbunt = {
    pics = mbUnbunt.xpm
    neighbours=<neighbours_none>
    greyprob=1
  }

  bunt = {
    pics = mbBunt.xpm
    colourprob=0
  }

  schmelz = {
    pics = mbSchmelz1.xpm,mbSchmelz2.xpm,mbSchmelz3.xpm,mbSchmelz4.xpm
    neighbours=<neighbours_none>
    colourprob=0
  }
}