Subscribe to RSS Subscribe to Comments

Sensthethesia

LogoChip War Prototype

;WAR CITY PROTOCOL
;Tommy Engdahl
;This is the protocol for a city at war-a network of waring chips
;One on One /Green Side

global [rpop]
global [gpop]
global [pop]
global [color]
global [X]
global [y]
global [war]
global [army]
global [growth]
global [vic]

to Powerup
main_initialization
loop
[
warloop
if (vic = 1) [powerup]
]
end

;——————————————–
to main_initialization
;include ad.lib
write $fc1 $f
;config-analog-lines 2
;a0 a1 input tech and year input.

;green number in binary
clearbit 0 portb-ddr
clearbit 1 portb-ddr
clearbit 2 portb-ddr
clearbit 3 portb-ddr

;red number in binary
clearbit 4 portb-ddr
clearbit 5 portb-ddr
clearbit 6 portb-ddr
clearbit 7 portb-ddr

;set pop to 1 Green
setgpop 1
setbit 0 portb
clearbit 1 portb
clearbit 2 portb
clearbit 3 portb

;set pop to 0 Red
setrpop 0
clearbit 4 portb
clearbit 5 portb
clearbit 6 portb
clearbit 7 portb

;Color Channel
;setbit 5 portc-ddr
;setbit 6 portc-ddr

;Turn Channel
clearbit 0 porta-ddr
setbit 1 porta-ddr

;War Channel1
clearbit 2 porta-ddr
setbit 3 porta-ddr

;troop channel1
clearbit 4 porta-ddr
setbit 5 porta-ddr

clearbit 0 porta
clearbit 2 porta
clearbit 4 porta
;clearbit 5 portc

setcolor 0
setgrowth 2
setvic 0
end
;————————————–

to warloop
setbit 0 porta

showled

;GDP Phase———————————

ifelse (color = 0)[setx gpop][setx rpop]
ifelse (x = 9) [setx 9][setx x + (random % growth)]
ifelse (color = 0)[setgpop x][setrpop x]
print x
print rpop
print gpop
print “—–”
showled

sety random % 100

;foriegn polocies———————————
if (x = 9)[setwar 1]
ifelse (x > 5) [setwar 0][if (y > 90) [setwar 1]]
setwar 0 ;forced peace

;build army————————————
if (war = 1)
[
setarmy x - (random % (x - 2) + 1)
]

;war phase———————————-
ifelse (war = 1)[setbit 2 porta][clearbit 2 porta]

turnsync

;If ((testbit 6 portc and (color = 1)) or not(testbit 6 portc and (color not 0)))
ifelse (war = 1)
[
ifelse (testbit 3 porta)
[
turnsync
ifelse (color = 0)[setx gpop][setx rpop]
setx x - 1 ;border clash
ifelse (color = 0)[setgpop x][setrpop x]
]
[
turnsync
invade
]
]
[
ifelse (testbit 3 porta)
[
turnsync
defend
resolve
]
[
turnsync
]
]

showled

turnsync

victory

showled

turninit
end

to showled
showred rpop   ;decodeing pop and sending binary to 7 segment with logic
showgreen gpop
wait 20
end

to showred :pop
setpop rpop
if (pop = 0)
[
clearbit 4 portb
clearbit 5 portb
clearbit 6 portb
clearbit 7 portb
]
if (pop = 1)
[
setbit 4 portb
clearbit 5 portb
clearbit 6 portb
clearbit 7 portb
]
if (pop = 2)
[
clearbit 4 portb
setbit 5 portb
clearbit 6 portb
clearbit 7 portb
]
if (pop = 3)
[
setbit 4 portb
setbit 5 portb
clearbit 6 portb
clearbit 7 portb
]
if (pop = 4)
[
clearbit 4 portb
clearbit 5 portb
setbit 6 portb
clearbit 7 portb
]
if (pop = 5)
[
setbit 4 portb
clearbit 5 portb
setbit 6 portb
clearbit 7 portb
]
if (pop = 6)
[
clearbit 4 portb
setbit 5 portb
setbit 6 portb
clearbit 7 portb
]
if (pop = 7)
[
setbit 4 portb
setbit 5 portb
setbit 6 portb
clearbit 7 portb
]
if (pop = 8)
[
clearbit 4 portb
clearbit 5 portb
clearbit 6 portb
setbit 7 portb
]
if (pop = 9)
[
setbit 4 portb
clearbit 5 portb
clearbit 6 portb
setbit 7 portb
]
end

to showgreen :pop
setpop gpop
if (pop = 0)
[
clearbit 0 portb
clearbit 1 portb
clearbit 2 portb
clearbit 3 portb
]
if (pop = 1)
[
setbit 0 portb
clearbit 1 portb
clearbit 2 portb
clearbit 3 portb
]
if (pop = 2)
[
clearbit 0 portb
setbit 1 portb
clearbit 2 portb
clearbit 3 portb
]
if (pop = 3)
[
setbit 0 portb
setbit 1 portb
clearbit 2 portb
clearbit 3 portb
]
if (pop = 4)
[
clearbit 0 portb
clearbit 1 portb
setbit 2 portb
clearbit 3 portb
]
if (pop = 5)
[
setbit 0 portb
clearbit 1 portb
setbit 2 portb
clearbit 3 portb
]
if (pop = 6)
[
clearbit 0 portb
setbit 1 portb
setbit 2 portb
clearbit 3 portb
]
if (pop = 7)
[
setbit 0 portb
setbit 1 portb
setbit 2 portb
clearbit 3 portb
]
if (pop = 8)
[
clearbit 0 portb
clearbit 1 portb
clearbit 2 portb
setbit 3 portb
]
if (pop = 9)
[
setbit 0 portb
clearbit 1 portb
clearbit 2 portb
setbit 3 portb
]
end

to turnsync
flash
clearbit 0 porta
loop [if (not testbit 1 porta)[setbit 0 porta stop]]
end

to warsync
clearbit 2 porta
loop [if (not testbit 3 porta)[setbit 2 porta stop]]
end

to armylisten
loop [if (not testbit 5 porta)[setbit 2 porta stop]]
end

to turninit

end

to invade
clearbit 4 porta
warsync
loop
[
warsync
ifelse (not(army = 0))
[
setbit 4 porta
setarmy army - 1
armylisten
]
[
clearbit 4 porta
stop
]
]
end

to defend
clearbit 4 porta
setarmy 0
warsync
loop
[
warsync
wait 1

ifelse (testbit 5 porta)
[
setarmy army + 1
wait 1
setbit 4 porta
wait 1
clearbit 4 porta
]
[
stop
]
]
end

to victory   ;losing contditions for game and player “resets” (you’ll never know you won here) infinite battle
ifelse (color = 0)
[
if (gpop = 0)
[
setbit 0 portb
setbit 1 portb
setbit 2 portb
setbit 3 portb
wait 100
setrpop 0
setgpop 2
]
]
[
if (rpop = 0)
[
setbit 4 portb
setbit 5 portb
setbit 6 portb
setbit 7 portb
wait 100
setrpop 2
setgpop 0
]
setvic 1
]
end

to resolve
ifelse (color = 0)[setrpop army][setgpop army]
setarmy 0
showled
loop
[
showled
setx random % 3 ;1/3 chance of g,r,0 loss
if (x = 0) [setrpop rpop - 1]
if (x = 1) [setgpop gpop - 1]
if ((rpop = 0) or (gpop = 0))
[stop]

]
end

Interesting Ideas From Royce and Partners.

I have an idea for making logochips have numerical wars. I have a one on one chip program that is 80%done. I will need logochip V2 in order to have one chip connected to two or more other chips with my current protocol scheme.

I have also come across a good source for 7segment led’s with built in logic. I will need a lot of these to display the numbers in the chips with minimal ports for decoding. I would like to find green ones though.

Based on FluidityTheme Redesigned by Kaushal Sheth Sponsored by Send Flowers