2011年8月28日星期日

【挖一挖】关于PE50的存档

* ProjectEuler

在projecteuler.net,很多小的程序题,可以用来练习键盘指法。限制比较宽松,只要不是很过分,暴力过关也没有关系。
虽说要尽量多用用数学知识来求解吧,不过拿出图灵完备的机器来辅助过关话,其实能算是很正当的方式呦。
高德納学派的可以用ASM,习惯传统方式可以用C++,天书般的J,函数式的Haskell,各种数学计算系统,或者偷懒用用Python,这些都是可以的做法。
既然我这里纯粹是出于娱乐目的的过关而已,就以Python2为主要工具了,也恰巧手头可以使用。

下面的内容算是流程的记录,这里粘贴在一个页面里而已。当初是正确的得到结果,并且性能可以说得过去,在这里就不再做什么改进了。


话说 Level 1 的内容实在十分基础了,没什么好说的了,下面闪入正文吧。


* Problem 1

print sum(i for i in xrange(1000) if (i%3==0) or (i%5==0))

这题的较好的做法是用等差数列求和,注意不把项记录重复了。


* Problem 2

(let loop ((s 0) (a 1) (b 2))
  (if (> b 4000000)
      s
      (loop (if (even? b) (+ s b) s) b (+ a b))))

这道题的优化方法是利用数列满足:奇偶奇奇偶奇奇偶奇...来计算。


* Problem 3

(let loop ((x 600851475143) (i 2))
  (if (> i (sqrt x))
      x
      (if (zero? (remainder x i))
          (loop (/ x i) i)
          (loop x (+ i 1)))))

偷懒可以用Maxima的factor函数,或者手写用正整数数列不断去除它,最后留下来的就是结果。


* Problem 4

(let loop ((r 0) (i 100) (j 100))
  (cond
    ((= i 1000) r)
    ((= j 1000) (loop r (+ i 1) (+ i 1)))
    (else
     (let* ((p (* i j))
            (s (string->list (number->string p))))
       (loop (if (and (equal? s (reverse s)) (> p r)) p r) i (+ j 1))))))

纯暴力,考虑了乘法交换积不变。不过这里回文判断实现得大不好,貌似可以推导出什么数学式子。


* Problem 5

(do((i 1 (+ i 1))
    (s 1 (lcm s i)))
  ((> i 20) s))

最小公倍数的算法貌似是欧几里德发明的。


* Problem 6

print sum(i for i in range(101))**2-sum(i**2 for i in range(101))

又暴力了,不过数列求和有那啥啥公式来着,不知道那些数学软件优化了没。


* Problem 7

(define (prime? x)
  (let loop ((i 2))
    (cond ((> (* i i) x) #t)
          ((zero? (remainder x i)) #f)
          (else (loop (+ 1 i))))))
(let loop ((i 2) (n 0))
  (if (prime? i)
      (if (= n 10000)
          i
          (loop (+ i 1) (+ n 1)))
      (loop (+ i 1) n)))

判断质数,后面会遇到更加丰富的用法的。


* Problem 8

import operator
s= ...
print max(reduce(operator.mul,map(int,s[i:i+5])) for i in xrange(len(s)-4))

又是暴力...题目字面的意思...不说什么了...


* Problem 9

a, b, c = 200, 375, 425

我才不告诉人家我是慢慢试出来的呢...


* Problem 10

m = 2000000
s = [True] * m
s[0] = False
s[1] = False
for i in xrange(2,m):
    if not s[i]:
        continue
    j = 2
    while True :
        k = i * j
        if k >= m:
            break
        s[k] = False
        j+=1
print sum(i for i,v in enumerate(s) if v)

传说中的划杠杠法,终于没有出现尾递归...


* Problem 11

from operator import mul
x = [
...
]
def s(r1,r2,d):
    return max(reduce(mul,[x[i+d[0]*n][j+d[1]*n] for n in range(4)]) for i in r1 for j in r2)
print max(
    s(xrange(0,20-3),xrange(0,20-0),(+1,+0)),
    s(xrange(0,20-0),xrange(0,20-3),(+0,+1)),
    s(xrange(0,20-3),xrange(0,20-3),(+1,+1)),
    s(xrange(0,20-3),xrange(0+3,20),(+1,-1)),
    )

字符串数据源直接拿正则表达式处理了,然后是幸好没差点把尝试的情况和范围弄错掉。


* Problem 12

(define (factor x)
  (let loop ((x x) (i 2) (n 1) (r '()))
    (if (> i (sqrt x))
        (cons x r)
        (if (zero? (remainder x i))
            (loop (/ x i) i (+ n 1) (cons i r))
            (loop x (+ i 1) n r)))))
(define (factor-exp x)
  (let ((x (factor x)))
    (let loop ((a (cdr x))(b '())(c (car x))(d 1))
      (if (null? a)
          (cons d b)
          (if (not (= (car a) c))
              (loop (cdr a) (cons d b) (car a) 1)
              (loop (cdr a) b c (+ d 1)))))))
(define (factor-num x)
  ;(assert (> x 1))
  (apply * (map (lambda (x) (+ x 1)) (factor-exp x))))
(let loop ((s 0)(i 1))
  (if (> (factor-num s) 500)
      s
      (loop (+ s i) (+ i 1))))

这题暴力的话效率实在不够,只好手疼地用排列组合的知识来优化一下了。


* Problem 13

x=[
...
]
print str(sum(x))[:10]

性能居然够,那我就不手疼了,不然从左往右算?根据100个n位数的和的位数肯定小于(n+3)来着...Java也有自带类似的库的说。


* Problem 14

m = 1000000
c = {}
c[1]=1
def n(x):
    if x in c:
        return c[x]
    if x%2==0:
        nx = x/2
    else:
        nx = 3*x+1
    v = n(nx)+1
    c[nx] = v
    return v
mx=0
mv=1
for i in xrange(1,m):
    t = n(i)
    if t>mx:
        mx, mv = t, i
print mv

代码写丑了我会直接说出来吗...这题超过边界不记忆的话估计性能也够了。


* Problem 15

load(functs);
combination(20+20,20);

这貌似是学排列组合的例题,那么就数学软件Maxima应对吧。
或者从左上角一步一步往右下角慢慢迭代推过去也是可以的。


* Problem 16

print sum(map(int,str(2**1000)))

依然高精度,性能没有问题就不优化了。


* Problem 17

(define (en n)
  ;(assert (<= 1 n 1000))
  (cond
    ((zero? n) "")
    ((= n 1000) "onethousand")
    ((zero? (remainder n 100))
     (string-append (en (quotient n 100)) "hundred"))
    ((< 100 n 1000)
     (string-append (en (quotient n 100)) "hundredand" (en (remainder n 100))))
    ((< 19 n 100)
     (string-append (vector-ref #("ten" "twenty" "thirty" "forty" "fifty" "sixty" "seventy" "eighty" "ninety") (- (quotient n 10) 1)) (en (remainder n 10))))
    ((< n 20)
     (vector-ref #("one" "two" "three" "four" "five" "six" "seven" "eight" "nine" "ten" "eleven" "twelve" "thirteen" "fourteen" "fifteen" "sixteen" "seventeen" "eighteen" "nineteen") (- n 1)))))
(do ((i 1 (+ i 1))(s 0 (+ s (string-length (en i)) )))((= i 1001) s))

我这里zero?的处理不大合代码的逻辑,只是在题目的范围内还不会影响到结果。不过这题其实扳手指算一个总数出来也就可以了。


* Problem 18

x = [
...
]
m = [[0]*i for i in range(1,len(x)+1)]
m[0][0]=x[0][0]
for i in range(len(x)-1):
    for j in range(i+1):
        print i, j
        t = m[i][j]+x[i+1][j]
        if m[i+1][j] < t:
            m[i+1][j] = t
        m[i+1][j+1] = m[i][j]+x[i+1][j+1]
print max(m[len(m)-1])

传统的DP题终于出现了呵,这里是手工用正则表达式获得数据后按照套路来处理。


* Problem 19

def getDaysOfMouth(yyyy,mm):
    _daysOfMouth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    def isLeap(y):
        return y%4==0 and y%400!=0
    return 29 if mm==1 and isLeap(yyyy) else _daysOfMouth[mm]
daysAfter = 0
daysOfSunday = 0
mod = sum(getDaysOfMouth(1990,m) for m in range(12)) % 7
for y in range(1901,2001):
    for m in range(12):
        if daysAfter%7==6 - mod :
            daysOfSunday += 1
        daysAfter += getDaysOfMouth(y,m)
print daysOfSunday

数字中用来好多魔法,千万小心别出Bug,这算法是代替手工操作的,需要小心和测试。话说一些语言的标准库里可是有Date和Calendar,而后者中能获取到星期相关的信息的。


* Problem 20

from math import factorial
print sum(map(int,str(factorial(100))))

高精度计算,拆位处可不涉及字符串,不过解释语言内置方法实现的比自己写的会效率好一些。


* Problem 21

c={}
def d(x):
    if x in c:
        return c[x]
    else:
        d = sum(i for i in xrange(1,x) if x%i==0)
        c[x] = d
        return d
s = 0
for i in range(1,10000):
    a = i
    b = d(a)
    if d(b)==a and a!=b:
        s += a
print s

前面某题做过求因数的优化了,这题暴力的话勉强够了。从实际命中的情况看,缓存用定长10000的数组对这题其实效率更好。


* Problem 22

f = open("names.txt","r")
l = f.readline()
c = l.split(",")
c.sort()
def s(x):
    return sum(ord(i)-ord('A')+1 for i in x[1:-1])
print sum(s(v)*i for i,v in enumerate(c,start=1))

第六行的里把引号过滤掉就目的达到,话说这次终于在IO方面没法省事直接内嵌数据了。


* Problem 23

m = 28123
def d(x):
    return sum(i for i in xrange(1,x) if x%i==0)
a = {}
for i in xrange(1,m):
    if d(i) > i:
        a[i] = True
def c(x):
    return any(True for i in xrange(1,x) if i in a and x-i in a)
print sum(i for i in xrange(1,m+1) if not c(i))

虽然结果对,但是像目前这样不优化的肯定超时。用Py2.7的特性可以把生产字典写为单行,可以省掉5~7th行。
另外用列表类型要注意Py的下标为负数也能取到元素,别弄错了。列表的话就写作“... a = [None]*m ... if a[i] and a[x-i] ... ”。


* Problem 24

from itertools import permutations,islice
print "".join(map(str,[i for i in islice(permutations(range(10)),999999,1000000)][0]))

某种意义的开挂,不过Py2的itertools代码明显不如Py3美观。优化的方法是位数从左到右计算可能的个数,排列的情况其实只用阶乘,然后手工调试出结果即可。


* Problem 25

(let loop ((a 1) (b 1) (n 1))
  (if (= (string-length (number->string a)) 1000)
      n
      (loop b (+ a b) (+ n 1))))

在Scheme里用尾递归表示迭代是相当好用的,有named-let和do两个宏可用。


* Problem 26

from itertools import count
def c(x):
    c = {}
    r = 1
    for i in count(0):
        t = r%x
        if t==0:
            return 0
        elif t in c:
            return i-c[r%x]
        else:
            c[t] = i
        r*=10
m, v = 0, 0
for i in range(1,1000):
    t = c(i)
    if t>v:
        m ,v = i ,t
print m

这里是模拟手工操作,不过貌似有数学推导式来着。


* Problem 27

from math import *
from itertools import *
c = {}
def p(x):
    if x in c:
        return c[x]
    else:
        p = (x==2 or
             (x>2 and x%2!=0 and
              all(x%i!=0 for i in xrange(3,int(sqrt(x))+1,2))))
        c[x] = p
        return p
def q(n,a,b):
    return n**2+a*n+b
m, v = (), 0
for a in xrange(-999,1000):
    for b in xrange(-999,1000):
        for x in count(0):
            if not p(q(x,a,b)):
                if x-1>v:
                    m,v=(a,b),x-1
                break
print m[0]*m[1]

怎么就没有带参数的max函数呢,不然派生一个Comparable类型出来更加累赘啊。


* Problem 28

size = 1001
def delta(x):
    return (x+2)**2-x**2
s,d = 1,1
for i in xrange(1,size,2):
    d += delta(i)
    s += d
print s*4-sum(range(2,size,2))*(1+2+3)-4+1

先算了右上角,然后扩展到四个角。其中用到的递推式(4~7th中的d)貌似可以化简。


* Problem 29

print len(set(a**b for a in xrange(2,101) for b in xrange(2,101)))

唉,又暴力了,居然性能还行,那就不用优化了。不用大数运算的话,其实重复项也只是底数呈指数关系的项。注意指数如果展开的话,不能用浮点数运算。


* Problem 30

from math import *
from operator import pow
from itertools import *
w = 0
for i in count(1):
    if 9**5*i < 10**i:
        w = i
        break
def t():
    for digits in product(range(10),repeat=w):
        m = reduce(lambda x,y:x*10+y,digits)
        if m!=0 and m!=1 and m==sum(i**5 for i in digits):
            yield m
print sum(t())

当位数达到一定大小后,和的最大值就已经满足不了位数了。由于 多项式函数==o(指数函数) ,从而可以求出全部解。


* Problem 31

from itertools import *
r = 200
p = [1,2,5,10,20,50,100,200]
n = 0
def t(s,pc):
    if pc>=len(p):
        return
    for i in count(0):
        l = s+i*p[pc]
        if l == r:
            global n
            n+=1
        if l >= r:
            return
        t(l,pc+1)
t(0,0)
print n

这次代码真的写丑了,不过运行效果良好。


* Problem 32

from itertools import *
digits2int = lambda ds: reduce(lambda h,l:10*h+l,ds)
def enum():
    for i in permutations(range(1,10)):
        for j in range(1,9):
            for k in range(j+1,9):
                if not (j-1)+(k-j-1)+1 <= k < (j-1)+(k-j-1)+3:
                    continue
                a,b,c = map(digits2int,(i[0:j],i[j:k],i[k:9]))
                if a*b==c:
                    yield c
print sum(set(enum()))

目前性能不行,如果把permutations展开写的话,可能可以免去一些方向的尝试。


* Problem 33

from functools import *
from itertools import *
from operator import *
from fractions import *
print apply(Fraction,reduce(partial(map,mul),((10*a+b,10*b+c) for a,b,c in product(range(1,10), repeat=3) if a<c and (10*a+b)*c==(10*b+c)*a))).denominator

好吧我承认这题很简单,但是我一开始愣是没明白题目要做什么。约分可以请欧几里德来算得最大公约数做除数,其他没什么好说的。


* Problem 34

from math import *
print sum(x for x in xrange(3,10**6) if sum(map(factorial,map(int,str(x))))==x)

以每一位都是9的情况和函数间的高阶关系来考虑上限,然后暴力。上限的位数是最大使得“factorial(9)*i>=10**i-1”成立的正整数。顺带说些Py带的若干函数是C实现的,性能比手工写要好很多。


* Problem 35

from math import *
from itertools import *
m = 10**6
s = [False,True] * (m/2)
s[0:3] = False, False, True
for i in xrange(3,m,2):
    if not s[i]:
        continue
    j = 2
    while True :
        k = i * j
        if k >= m:
            break
        s[k] = False
        j+=1
def primep(x):
    return s[x]
def rotations(x):
    s = str(x)
    return [s[i:len(s)]+s[0:i] for i in range(len(s))]
def cpp(x):
    return all(map(
        lambda t:primep(int("".join(t))),rotations(x)))
print len([True for i,v in enumerate(s) if v and cpp(i)])

一开始的时候每没意识到要优化,后来就好多了。有点等价代码的草稿,被我擦掉了。


* Problem 36

pp = lambda x:(lambda s:s==s[::-1])(str(x))
d2b = lambda x:"{:b}".format(x)
print sum(i for i in xrange(1,10**6) if pp(i) and pp(d2b(i)))

按照题目的意思来就可以了,没有遇到很糟糕的性能。


* Problem 37

from math import *
from itertools import *
from functools import *
m = 10**6
s = [False,True] * (m/2)
s[0:3] = False, False, True
for i in xrange(3,m,2):
    if not s[i]:
        continue
    j = 2
    while True :
        k = i * j
        if k >= m:
            break
        s[k] = False
        j+=1
primep = lambda x:s[x]
truncate = lambda x:(lambda s:
            imap(partial(map,int),
             ((s[:i+1],s[i:]) for i in range(len(s)))))(str(x))
tpp = lambda x:all(primep(a) and primep(b) for a,b in truncate(x))
t = [i for i in xrange(10,m) if tpp(i)]
print len(t)
print sum(t)

题目里说十一个,所以就算了这么一些,得到了answer。代码中用到了惰性求值,不然性能会很糟糕,避免了列表被完全展开。虽然没有编译时优化惰性求值有多余的开销,不过不必要的计算才是这里最影响性能的东西。


* Problem 38

from itertools import *
from functools import *
def t(x):
    "int->int"
    s = ""
    for i in count(start=1):
        s += str(x*i)
        if '0' in s:
            return 0
        if 9==len(s)==len(set(s)):
            return int(s)
        elif 9<=len(s):
            return 0
print max(t(reduce(lambda a,b:a*10+b,j,9))
       for i in range(0,4) for j in permutations(range(1,9),i))

需要尝试位数小于5的数,并注意没有零出现。


* Problem 39

print(reduce((lambda f,s:f if f[1]>s[1] else s),((m,len([a for a in xrange(1,m/3) for b in xrange(a,(m-a)/2) for c in (m-a-b,) if b-a<c<a+b and a**2+b**2==c**2])) for m in xrange(1001)))[0])

性能啊性能啊


* Problem 40

from operator import *
from itertools import *
from functools import *
print reduce(mul,(int(v) for i,v in islice(enumerate(chain.from_iterable(imap(str,count()))),1000001) if i in (1,10,100,1000,10000,100000,1000000)))

边迭代边判断即可。


* Problem 41

from math import *
from itertools import *
primep = lambda x:(x==2 or (x>2 and x%2!=0 and all(x%i!=0 for i in xrange(3,int(sqrt(x))+1,2))))
print max(k for i in range(1,10) for j in permutations(range(1,i+1),i) for k in (reduce(lambda x,y:10*x+y,j,0),) if primep(k))

就是题目字面的意思。


* Problem 42

c = (open("words.txt","r").readline()[1:-1]).split('","')
v = lambda x:sum(ord(i)-ord('A')+1 for i in x)
t = lambda n:(n*(n+1))/2
ts = [1]
def tp(x):
    while ts[-1]<x:
        ts.append(t(len(ts)+1))
    return x in ts
print len([i for i in c if tp(v(i))])

还有明显的优化空间,不过没感觉到性能瓶颈。


* Problem 43

from itertools import *
digits2int = lambda it:reduce(lambda a,b:10*a+b,it,0)
satisfy = lambda x:all(imap(lambda a,b:a%b==0,(digits2int(x[j:j+3]) for j in xrange(1,8)),(2,3,5,7,11,13,17)))
print sum(digits2int(i) for i in permutations(range(10)) if satisfy(i))

来多说说一些关于permutations函数的话题吧这里,因为最近用得较多了。话说STL里面也有同样作用的函数提供,而自己实现的话可以简单地利用树的遍历。


* Problem 44

from math import *
#from bisect import *
from itertools import *
p = lambda n:n*(3*n-1)/2
#ps = [p(1)]
#def pp(x):
# while ps[-1]<x:ps.append(p(len(ps)+1))
# return (lambda i:i<len(ps) and ps[i]==x)(bisect_left(ps,x))
pp = lambda x:((1+sqrt(1+24*x))/6)%1==0
print list(islice((p(i)-p(j) for i in count(1) for j in xrange(1,i) if (lambda x,y:pp(x+y) and pp(x-y))(p(i),p(j))),1))[0]

注释掉的代码是被重写了的,用了一元二次方程的求根公式(结合函数图形看,其实这里用错了,还没来及修改)。不用bin-search用hash-set貌似也行。


* Problem 45

(let loop ((i 286) (j 166) (k 144))
  (let ((t (* i (+ i 1) 1/2))
        (p (* j (- (* 3 j) 1) 1/2))
        (h (* k (- (* 2 k) 1))))
    (cond ((= t p h) t)
          ((<= t (min p h)) (loop (+ i 1) j k))
          ((<= p (min t h)) (loop i (+ j 1) k))
          ((<= h (min t p)) (loop i j (+ k 1)))
          (else #f))))
    
话说好久没用Scheme来写写了。


* Problem 46

from math import *
from itertools import *
oddp = lambda x:x%2!=0
primep = lambda x:(x==2 or (x>2 and x%2!=0 and all(x%i!=0 for i in xrange(3,int(sqrt(x))+1,2))))
conjecturep = lambda x:any(i for i in xrange(2,x) if primep(i) and sqrt((x-i)*.5)%1==0)
failp = lambda x:oddp(x) and not primep(x) and not conjecturep(x)
for i in count(4):
    if failp(i):
        print i
        break
#from functools import *
#from operator import *
#print list(islice(ifilter(failp,count(4)),1))[0]

直接算吧,然后直接答案取走。这里注释掉的是最后几行另一种运行很慢的写法。


* Problem 47

(define (factor x)
  (let loop ((x x) (i 2) (r '()))
    (if (> i (sqrt x))
        (cons x r)
        (if (zero? (remainder x i))
            (loop (/ x i) i (cons i r))
            (loop x (+ i 1) r)))))
(define (unique-sroted-list x)
  (define (list-not-starts-with xs x)
    (cond ((null? xs) '())
          ((eq? (car xs) x)
           (list-not-starts-with (cdr xs) x))
          (else xs)))
  (if (null? x) '()
      (cons (car x)
            (unique-sroted-list
             (list-not-starts-with (cdr x) (car x))))))
(define (number-of-distinct-primes x)
  (length (unique-sroted-list (factor x))))
(do ((n 1 (+ n 1))
     (a 0 (number-of-distinct-primes n))
     (b 0 (if (= a 4) (+ b 1) 0)))
  ((= b 4)(- n 4 2)))
  
现在越来越觉得Scheme代码想撮面团拧麻花的样子。理解清楚题意才是最重要的,然后运用对应的知识即可。


* Problem 48

last_ten_digits = lambda x:str(x) if x<10**11 else str(x)[-10:]
print last_ten_digits(sum(int(last_ten_digits(i**i)) for i in xrange(1,1001)))

求指数过程中只保留10位即可,可以获得更好的性能。以Python的性能还是算了,内置函数和手写落差太大,还是不修改了。


* Problem 49

from math import sqrt
print (lambda c:(lambda p:[''.join(map(str,(i,j,k))) for a in xrange(len(c)) for b in xrange(a+1,len(c)) for i,j,k in [(c[a],c[b],2*c[b]-c[a])] if k>j and k in p and sorted(str(i))==sorted(str(j))==sorted(str(k))])(set(c)))(filter(lambda x:(x==2 or (x>2 and x%2!=0 and all(x%i!=0 for i in xrange(3,int(sqrt(x))+1,2)))),range(1000,10000)))

把for语句压缩为单行代码后的产物,“import”那行不算数。


* Problem 50

m = 10**6
def prime(m):
    s = [False,True] * (m/2)
    s[0:3] = False, False, True
    for i in xrange(3,m,2):
        if not s[i]:
            continue
        j = 2
        while True :
            k = i * j
            if k >= m:
                break
            s[k] = False
            j+=1
    primep = lambda x:s[x]
    primes = tuple(i for i in xrange(m) if primep(i))
    return primep,primes
primep, primes = prime(m)
mr = 0
r = 0
for i in xrange(len(primes)):
    su = sum(primes[i:i+22])
    for j in xrange(i+22,len(primes)):
        lp = j-i+1
        su += primes[j]
        if su>=m:
            break
        if primep(su):
            if lp>mr:
                mr,r = lp,su
print r

一开始不专心弄复杂题目意思了,造成了不必要的浪费,本来是很简单的问题。这次未用函数式风格,话说控制不好状态的变化很容易出错的说。


* Level 1

前50题就是这些了,这是些算全部题目的 Level One 部分。
撒花,撒花。
接下来朝着别的目标前进吧,就先暂且做这几道题作为练手和娱乐了。

其实吧PE的前50道题目还是比较浅显的,因为涉及到的数据结构和数学上的知识点不是很多。
题目差不多都是根据题目的意思直接翻译为代码,把程序语言作为一个强大的计算器来使用。
所以在这前50道题里,更关注的是对机算工具的使用,而不是问题本身的经验积累。
那么其中有什么积极的价值呢,我想,或多或少总是有的吧,我只能这么说了。
上面的代码太偷懒了,不知道这种懒惰时候会让自己对正常向的使用态度有副作用呢。
好害怕...
其他的就不多说了,收工。

----
此外Problem 8试了试common lisp,不过代码没写漂亮,所以上面整理时被我略去了。
<blockquote>(defparameter s ...)
(reduce #'max (loop for i from 1 to (- (length s) 5) collect (reduce #'* (map 'list #'(lambda (x) (parse-integer (string x))) (subseq s i (+ i 5))))))</blockquote>

如果想临时试试代码的话可以用用codepad.org或者ideone.com。

----
最初在uushare发贴说一天一题,然后在QQ空间上整理出了上文,然后又把纯文字版备份于此(可惜格式图片都丢失了)。

2011年8月27日星期六

【挖一挖】WQX和单文件小游戏

作为可看作是集合了电子辞典,编程计算器,个人信息助理以及互动多媒体终端的这样一个东西,上面看起来还是有些有趣的东西的。还曾有一个写了一半的文字来记录以下从中能够想到的用法。

出发点是下面两个链接,然后来转一些片段:
http://www.emsky.net/bbs
http://javatar.iteye.com/category/7525


RPG引擎原理讲解! 作者:杨芹勍[Coolsoft(R)]
------------------------------------------------------------------------------------------------------
当我在发布“动物园历险记”之前,我在许多文曲星网站都发了游戏的剧情、内容和规模预告的帖子。可想而知,当你在没有玩这个游戏的时候肯定也不会相信GVBasic能处理那么复杂的剧情。和大家一样,那些回帖的人都说不可能有那么强的引擎能撑得住。但是当游戏发布时……这主要是归功于我花了一个星期才研究出来的“对象处理思想”。这个思想的用途是处理RPG剧情的前后关系。首先试用在《逃离校园》上,然后是《医院惊魂》,最后才与《动物园历险记》玩美地结合。如果想知道这个思想的具体函意,请往下看。
这个思想的灵感主要是来源于PC上许多编程软件的“面象对象”的思想。它可以把一个窗体、一个控件、一段代码等都看成是一个对象,每个对象都有自己的属性、事件和方法。一个对象可以激活另外一个对象,同时也可以终止一个对象。同样,文曲星屏幕上任何一个图形都可以看成是一个对象,这就是所谓的“对象处理思想”。当然我们并不是把屏幕上每个图形都看成是一个对象,而是处理一些和剧情有关的图形,那些图形所包含的信息就是我们要处理的剧情。我们可以把信息保存在数据文件里面,然后在主程序里面处理它们,这样就节省掉很多主程序的字节。
1、剧情信息格式
大家在地图安装文件“ZOOSC.BAS”里面是不是发现许多形如“ABTBCMBSA”这种奇怪的字符串?这就是地图上面的对象所包含的信息。下面让我们来详细分析一下这些信息所保存的格式:
首先,我们令A等于1,B等于2……Z等于26等等(用ASCII码表示就是CHR$(T+64),T=1,2,3……),为什么要那么做呢?是因为由于RPG包含的元素很多,如果这些元素大于或等于10的话处理起来会很麻烦,且保存起来很不方便。等一下你就会理解啦!
然后来看一下剧情信息包含的元素和保存的格式:
屏幕X坐标 屏幕Y坐标 条件 条件值 字幕 处理1 处理值1 处理2 处理值2
一共有9个元素,每个元素占位一个字节。
“屏幕Y坐标”就是屏幕上的1~5行,“X坐标”与我们平常习惯的不同,它算的是汉字的相对坐标,如果在屏幕上有一行字“一二三四”,那么“三”的实际X坐标是5,相对坐标是3。
“条件”就是你要实现这个剧情需要的条件识别符,如用“L”代表等级、“S”代表道具。“条件值”就是条件所对应的值,如多少等级、什么道具。如“SA”表示条件为必须要有第一个道具(“A”代表“1”!)剧情才能继续。
“字幕”就是你完成某个条件以后屏幕上弹出的对话字幕。通常RPG有很多人物对话,由于“字幕”这个元素只占一格,如果用1、2、3来表示那么只能有9条对话。那怎么行啊?所以我们可以用A、B、C~~代替。“~”的ASCII码值为126,那么从“A”~“~”中间有64个空位,比9大多啦!现在你可以理解为什么用这些东西代替了吧!
“处理”和“条件”大同小异,只不过“处理”是得到什么东西而不是条件那样需要什么东西罢了。
注意:在这些元素中不是每个元素都会用到,如果不用的元素请用“@”代替,因为“@”代替“0”。
下面让我们来看看一些常规的“条件”和“处理”分别对应的识别码。
条件:
H:有某道具;
L:达到多少等级;
T:几点钟;
Z:需要某特殊剧情;
N:不需要某特殊剧情。
处理:
C:跳转地图;
M:遇到某敌人;
S:得到某道具;
Z:处理某特殊剧情。
什么叫特殊剧情呢?特殊剧情就是指不改变玩家状态(道具、时间、等级),而只改变游戏进度的剧情。如在动物园历险记中,一开始有个小孩,你必须请教他才能钻狗洞进动物园。而你请教那个小孩,没有改变你任何状态,它只会给一个特殊变量附值,表明已经问过了。然后到狗洞前信息会引导程序去判断这个特殊变量的值,看看你是否问过小孩。如果小孩对应的处理信息为ZA,那么狗洞对应的条件信息为ZA。如果你想搞一个问过小孩就不能进狗洞,那么狗洞对应的条件信息应改为NA。
大家在玩动物园的时候肯定会有进某所房子或出某所房子的时候。这就是跳转语句起的作用。每一个跳转值都对应一个跳转字符串,这个等一下再说。
下面我们来进行举例分析:
在屏幕的第一行、第三格有一个图形,碰到它会遇到一号敌人,会出现第二个对话,打赢了得到第三个道具,怎么表示?很简单:CA@@BMASC。注意,由于没有条件,条件那两栏用@填充。
如果有某种道具时显示一段字幕,没有时显示另外一段字幕时怎么表示?这时,我们应该把符合条件的字幕放在“处理值2”栏目里面,把不符合条件的字幕放在“字幕”栏目里面。打个比方,在屏幕上第四行、第五格有一个图案,碰它需要有第二个道具,如果有则显示第二段对话,且得到三号道具,没有则显示第三段对话:DESBCSC@B。注意,如果使用了这种信息的格式就不能使用处理元素2。
如果一幅地图里面有多个图形关系到剧情,那么可以把这些信息连起来,如“AB@@CCM@@CD@@DSA@@”,表示在地二行第一格和第四行的第三格都有剧情信息。注意,每一幅地图中所包含剧情信息的图形不能超过7个,否则引擎程序会出错!
2、跳转信息格式:
好了,了解了剧情信息格式之后,让我们来了解一下前面提到的“跳转地图”的含意。动物园一共有9*10幅地图。底下两行存放的是室内的地图,上面则存放的是外景地图:
──门─│┌─植─
─猴└─停│┌┬虎
┌┴─熊│└饲└┐
│游┌─水┐─出┘
└┤│鸟─┤┌─┐
鳄│卖┬─│└┐厕
│桥─┤象┴┐入│
医──饭──办─┘
*********
*********
同样,我们把整个地图看成是一个大集合,每一幅地图看成是一个元素。比如说,把“门”这幅地图看成是一个元素,它在大地图里的第二行的第三格,一行一行地数,每一行有九格,那么它在集合里为第十二个元素,再取元素号+32的ASCII码值(注:这里有别于前面的+64,因为RPG地图很多,127-64幅地图远远不够),再加上需要跳转到的那幅地图的屏幕X、Y轴坐标就可以啦!如“ABC”代表第33幅(“A”对应65号ASCII码,65-32=33)地图屏幕上第三行的第二格。由于RPG的跳转信息很多,所以我们可以在安装程序中拿一个字符串一个接一个地保存跳转信息,把第一个用“A”代替……如:“ACDBEFJIC”为跳转信息字符串,那么第二个跳转信息为“BEF”,在剧情信息中可以用处理值“CB”来实现。
实例请叁看ZOOSC.BAS中第140~150行。
3、地图的制作与显示:
不止十个网友问我:为什么动物园的地图显示得那么快?而且还是在助手里面。答案是我在安装时就生成好了地图保存到随机文件中,玩的时候马上读出来整屏显示,浪费了安装时间而节约了游戏时间。看看ZOOSC.BAS的第170行到180行,这里保存了所有地图要用到的图形的总集合,把地一个图形命名为“A”……再在底下的数据中写下“ABSEHD...”之类的50(文曲星每一屏只能显示50个图形)个字节就可以了。如何让地图数据和剧情信息相结合呢??那么你就在地图数据上后面加一个“,”号,在加上剧情信息就可以了。如:
DATA "ASCDVDFEFGGGGBVVVFFFCCDAAAAACDFVGGDAAAAABBBFFAASAQ","AB@@CSA@@"
注意,如果一幅地图上没有一个图形和剧情有关,那么请用“@”代替剧情信息,引擎程序会自动识别,千万不能空着!
由于我们是把地图先生成好再用随机文件形式写进文件(详见ZOOSC.BAS的第250行到第300行),所以在主程序中我们可以用随机文件的形式打开,令其长度为100,然后100个字地读取数据,在用余兄的批量法显示到屏幕上。由于NC系列和PC2ka系列不支持批量法,你可以用以下方法显示地图:
假定MP$为从地图文件读取的长度为100的字符串变量。
LOCATE 1,1:PRINT LEFT$(MP$,99);
POKE 803,ASC(MID$(MP$,100))
PRINT ;
万事大吉!这个方法对所有机型都试用,只不过速度比批量法稍微慢一点。
4、人物对话保存方法:
在安装程序ZOOSA.BAS和ZOOSB.BAS中,大多数保存的都是人物对话,人物对话可以用DATA来保存和READ读取,详见ZOOSA.BAS。如果想实现两个人的对话,请在第一个人的话后加上一个“*”号,然后再加上第二个人的话。这样,引擎会在显示玩第一句话时停着,再显示下一句话。如果你觉得如果对话写不满的话,你可以重新写一段对话,然后在上一句对话的末尾加上这一句对话的索引号(A、B、C……),引擎会分析并且跳到这段对话来。
5、游戏引擎详解:
激动人心的时刻到了!大家打好前面关于数据剧情方面的基础后,引擎方面就不成问题了!如果你想用我这个引擎发布RPG,你只要写数据文件,只改一点点引擎就可以做出很个性化的RPG,大家看好了!
在这里,我要以最稳定的“动物园历险记”的引擎ZOO.BAS做为叁考,请大家准备好。
打开ZOO.BAS,跳到第9510行,我们先看看变量的含义。
S$~屏幕内容字符串,用批送法声明;
MS$~剧情信息分析变量,用于玩家碰屏幕上的图形时存放当前图形所包含的剧情,长度为7,不包括X、Y坐标;
NG$()~游戏介绍字符串组,用于新游戏时介绍游戏起因;
WD$()~道具名称字符串组;
WI$()~道具图标字符串组;
DD$()~敌人名称字符串组;
DI$()~敌人图标字符串组;
S$()~人物对话(就是前面说的字幕)字符串组;
FN$()~剧情信息字符串组,引擎开始时会读取数据文件放到此字符串组中;
DD()~敌人生死状态数组,0代表生,1代表死;
MT()~玩家道具状态数组,0代表未找到,1代表未使用,2代表已使用;
MZ()~游戏特殊剧情处理数组,前面讲过的,如果符合条件就把这个数组里的某个变量存为1,然后由程序来读取该变量是否为1;
MX:玩家在屏幕上的相对X坐标;
MY:玩家在屏幕上的Y坐标;
MP:玩家所在地图为地图集合里的哪一幅地图;
MLV:玩家等级;
MEX:玩家经验值;
MB:玩家血量。
……
重要的处理代码对应的行号:
20:按键响应子程序;
150:人物对话(字幕)显示子程序;
400:道具列表及道具的选择和使用子程序;
2500:遇敌战斗和升级的子程序;
4600:游戏通关画面及评论代码;
5000:游戏开始标志;
5110~5240:玩家移动控制代码;
5230:随机遇敌代码;
5250~5320:剧情信分离代码,它可以把玩家人物碰到的图形的剧情信息分离出来,由于玩家碰时以确定了XY坐标,所以分离出的信息不含XY坐标元素;
5330~5720:剧情信息分析代码,用于分析我们前面提到的具有相同格式的RPG剧情信息;
5840:地图的读取以及显示代码;
5880:系统菜单选项代码。
好了,下面就让我们来分析一下这些代码中的重要的代码。这可能会让你很晕,但是,为了做出好玩的RPG,晕一些也无所谓了:P。
先来看一下剧情分离代码,从5250行开始。先了解一下原理。由于每一幅地图对应相应的剧情信息(包括“@”空信息)保存在数据文件里,进入引擎一开始会读取它,且每一幅地图的剧情信息用FN$()这个字符串组来保存,由于每一幅地图对应相应的FN$,所以很容易可知道玩家所在地图的FN$,再加以分析就可以了。引擎不是玩家每走一步都判断一次,这样会慢得让你发晕(像天之剑一样),而是如果玩家碰到了障碍物时才读取相应的信息判断。那么如何从该地图的剧情信息中分离出该障碍物所对应的剧情呢?前面我们讲过剧情信息保存的格式,为9个字节,一个连一个地组成该地图包括的剧情。这样,我们可以先读取FN$()前面两个XY的值,看看与玩家所在XY坐标是否相符,如果不相符则跳过这个剧情信息再读取下一个信息的XY,直到相符为止。如果读玩了整段信息还没有找到与玩家XY相同的坐标,BEEP,表示玩家所碰到的图形与剧情无关。
下面来看看代码:
5250 FOR T=1 TO LEN(FN$(MP)) STEP 9
5260 IF ASC(MID$(FN$(MP),T))-64<>TX THEN 5280
5270 IF ASC(MID$(FN$(MP),T+1))-64=TY THEN LSET MS$=MID$(FN$(MP),T+2,7):5300
5280 NEXT
5290 GOTO 5170
5300 TJD=ASC(LEFT$(MS$,1)):TJ=ASC(MID$(MS$,2))-64:SH=ASC(MID$(MS$,3))-64
5310 CLD1=ASC(MID$(MS$,4,1)):CL1=ASC(MID$(MS$,5))-64
5320 CLD2=ASC(MID$(MS$,6,1)):CL2=ASC(MID$(MS$,7))-64
5210~5220行为判断信息中的XY值与玩家所碰的XY是否相等,等的话给临时信息字符串MS$赋除了XY信息之外的其它7个字节信息值,注意这里要用到“LSET”。原因是你用常规方法给一个字符串重新赋值后,GVB会重新分配缓冲区保存且不清除原来的值,多次之后会影响到其它固定的变量的缓冲区,导致其它变量的变化。就像“逃离校园”和“医院惊魂”那样玩久了会出乱码一样。而用LSET可以不移动缓充区直接在原来的缓冲区写。
下面来介绍一下5300行到5320行变量的意思:
TJD~条件标识对应的ASC数值;
TJ~条件值;
SH~字幕值;
CLD1~第一个处理标识对应的ASC值;
CL1~第一个处理值……
注意:在动物园的测试版中,标识符用字符串变量代替,在正式版改为用数变量代替,原因以经讲过了,就是为了防止缓冲区溢出。
从5330行开始就是剧情分析代码了:
5300:分析特殊剧情条件;
5370:分析等级条件;
5375:分析需要某道具的条件;
5420:分析时间条件(如在动物园中不到时间不能进水族馆);
5430:分析没有某特殊剧情的条件……
只要你把标识值变成对应的ASCII码,你就可以知道是什麽意思啦!
那麽进小卖部、芝麻开门怎麽写呢?你只要先把这些代码写入引擎,在用特殊的标识符写进剧情就可以了。如5520~5560行。
从5590~5650行为跳转地图的处理代码,注意读取跳转地图信息时为3个字3个字地读出来(5600行),在加以分析。
让我们再来看看引擎刚开始所需要读取的东西,看9500~9640行。
9530:声明批送法和向缓冲区申请7个字节的剧情分离变量MS$;
9540~9545:声明变量;
9550~9630:读取游戏相关信息,道具图标、道具名字、敌人图标、敌人名字、游戏介绍、人物对话、地头蛇对话、芝麻开门、剧情信息、跳转地图信息。
读取这些东西按照先後顺序附与标识值,如一号道具的图标为WI$(1)。
9640行为用随机方式打开地图文件,因为一个屏幕可以放下100个字符,所以可以令它的读取长度为100,然後100个字100个字地读取任何地图显示到屏幕上,这就是随机文件的好处。这个文件不要关闭,便於可以在程序里面随时读取。


RPG“伏魔剑”源程序
0 :
1 GRAPH
2 DIM WZ(5,21),DM$(4,19):X(6)=3:Y(6)=19
6 MO=100 :GOSUB 4101: GOTO 30
10 IF T$="b" THEN T=1:19
11 IF T$="n" THEN T=2:19
12 IF T$="m" THEN T=3:19
13 IF T$="g" THEN T=4:19
14 IF T$="h" THEN T=5:19
15 IF T$="j" THEN T=6:19
16 T=10
19 RETURN
30 LOCATE 1,1:PRINT " 《伏魔英雄传》"," 超经典RPG互动游戏"," V1.2增强版"
40 LOCATE 4,4:PRINT " 正在读取数据";
50 BOX 40,70,120,73,0,2
54 OPEN "FMYXZDATA" FOR INPUT AS #1
55 INPUT #1,NDFL$: FOR A=1 TO 10:INPUT #1,AE$(A):B=0.808*A+41:LINE B,70,B,73:NEXT
56 FOR A=1 TO 6:INPUT #1,YPM$(A):C=0.808*A+B:LINE C,70,C,73:NEXT :INPUT #1,YDTX$
58 FOR A=1 TO 2:INPUT #1,MAP$(A):B=0.808*A+C:LINE B,70,B,73:NEXT
60 FOR A=1 TO 4:INPUT #1,CD$(A):C=0.808*A+B:LINE C,70,C,73:NEXT
70 FOR A=1 TO 9:INPUT #1,HG$(A):B=0.808*A+C:LINE B,70,B,73:NEXT
80 FOR A=1 TO 7:INPUT #1,ZP$(A):C=0.808*A+B:LINE C,70,C,73:NEXT
90 FOR A=1 TO 9:INPUT #1,DR$(A):B=0.808*A+C:LINE B,70,B,73:NEXT
100 FOR A=1 TO 5:INPUT #1,MZ$(A):C=0.808*A+B:LINE C,70,C,73:NEXT
110 FOR A=1 TO 5:INPUT #1,GZ$(A):B=0.808*A+C:LINE B,70,B,73:NEXT
120 FOR A=1 TO 6:INPUT #1,WG$(A):C=0.808*A+B:LINE C,70,C,73:NEXT
130 FOR A=1 TO 6:INPUT #1,YP$(A):B=0.808*A+C:LINE B,70,B,73:NEXT
140 FOR A=1 TO 4:INPUT #1,MF$(A):C=0.808*A+B:LINE C,70,C,73:NEXT
150 FOR A=-1 TO 1 STEP 2: FOR AA=1 TO 9 STEP 2
151 INPUT #1,DM$((2.5+A)+A*0.5,AA*2+A)
152 B=0.808*A+C:LINE B,70,B,73:NEXT :NEXT
160 FOR A=1 TO 5:INPUT #1,AAA$(A):C=0.808*A+B:LINE C,70,C,73:NEXT
165 FOR A=1 TO 10:INPUT #1,RW$(A):INPUT #1,NA$(A):B=0.808*A+C:LINE B,70,B,73:NEXT
185 FOR A=1 TO 6:INPUT #1,YP(A):C=0.808*A+B:LINE C,70,C,73:INPUT #1,GX(A):NEXT
186 FOR A=1 TO 4:INPUT #1,MF(A):INPUT #1,XG(A):B=0.808*A+C:LINE B,70,B,73:NEXT
189 INPUT #1,AA
190 INPUT #1,BB
191 FOR A=1 TO 4:INPUT #1,BE$(A):NEXT
200 CLOSE #1
210 CLS:PRINT AAA$(1);
220 T$=INKEY$:A=0:GOSUB 10
225 IF T=1 THEN GOSUB 9175
230 ON T GOTO 300,9110,9800:BEEP: GOTO 220
300 CLS:PRINT MAP$(1);:POKE 803,AA:PRINT ;
305 LOCATE 1,9:PRINT RW$(2);: FOR I=1 TO 3000:NEXT
310 FOR I=2 TO 4:LOCATE I-1,9:PRINT "※";:LOCATE I,9:PRINT RW$(2);
315 FOR J=1 TO 2000:NEXT :NEXT : FOR I=1 TO 1000:NEXT
320 CLS:PRINT CD$(1);:T$=INKEY$
325 CLS:PRINT MAP$(1);:POKE 803,AA:PRINT ;:LOCATE 4,9:PRINT RW$(2);
330 FOR I=0 TO 80:LINE 0,I,160,I,2: FOR J=1 TO 100:NEXT :NEXT
335 CLS:PRINT MAP$(1);:POKE 803,AA:PRINT ;:BOX 0,0,160,80,1,2
340 FOR I=0 TO 80:LINE 0,I,160,I,2: FOR J=1 TO 100:NEXT :NEXT
345 FOR I=1 TO 1000:NEXT
350 FOR I=2 TO 4:CLS:PRINT CD$(I);:T$=INKEY$:NEXT
355 FOR I=1 TO 1000:NEXT
360 CLS:PRINT MAP$(2);:POKE 803,BB:PRINT ;: FOR I=1 TO 1000:NEXT
365 LOCATE 5,11:PRINT RW$(3);: FOR I=1 TO 2000:NEXT
370 LOCATE 5,11:PRINT " ";:LOCATE 4,11:PRINT RW$(3);
380 FOR J=1 TO 2000:NEXT
381 LOCATE 4,11:PRINT " ";:LOCATE 3,11:PRINT RW$(3);: FOR I=1 TO 2000:NEXT
385 FOR I=1 TO 3:CLS:PRINT HG$(I);:T$=INKEY$:NEXT
390 CLS:PRINT MAP$(2);:POKE 803,BB:PRINT ;
395 LOCATE 3,11:PRINT RW$(3);: FOR I=1 TO 2000:NEXT
400 LOCATE 4,11:PRINT RW$(3);:LOCATE 3,11:PRINT " ";: FOR I=1 TO 2000:NEXT
405 LOCATE 4,13:PRINT RW$(3);:LOCATE 4,11:PRINT " ";: FOR I=1 TO 2000:NEXT
410 LOCATE 5,11:PRINT RW$(1);: FOR I=1 TO 2000:NEXT
415 LOCATE 4,11:PRINT RW$(1);:LOCATE 5,11:PRINT " ";
420 FOR J=1 TO 2000:NEXT
421 LOCATE 3,11:PRINT RW$(1);:LOCATE 4,11:PRINT " ";
422 FOR J=1 TO 2000:NEXT
425 FOR I=4 TO 9:CLS:PRINT HG$(I);:T$=INKEY$:NEXT
500 X=3:Y=11:Q=Q+1:B=1
505 GET #1,1
506 CLS:PRINT MAP$;:LOCATE X,Y:PRINT RW$(1);
507 LOCATE 5,1:PRINT DM$(X,Y);" ";
510 T=ASC(INKEY$):IF (T>19 AND T<24) OR (T=13 OR T=113) THEN 515 ELSE BEEP:510
515 IF T=20 THEN X=X-1:IF X<1 THEN BEEP:X=1:505
520 IF T=21 THEN X=X+1:IF X>4 THEN BEEP:X=4:505
525 IF T=22 THEN Y=Y+2:IF Y>19 THEN BEEP:Y=19:505
530 IF T=23 THEN Y=Y-2:IF Y<1 THEN BEEP:Y=1:505
535 IF T=113 THEN GOSUB 9300: GOTO 505
536 IF T>13 THEN 505
540 IF X=4 THEN 570
541 IF X=2 OR X=3 THEN BEEP:505
545 IF Y=1 THEN 600
550 IF Y=5 THEN 700
555 IF Y=9 THEN 800
560 IF Y=13 THEN 4500
561 IF Y=17 THEN 590
565 BEEP: GOTO 505
570 IF ((Y=3)+(Y=7)+(Y=15)+(Y=19)) THEN 590
575 IF Y=11 THEN 576 ELSE 580
576 IF A=0 THEN 2000 ELSE IF A=1 THEN 5000
580 BEEP: GOTO 505
590 CLS:PRINT "请问你找谁?";:T$=INKEY$: GOTO 505
600 G=1
601 C=17:D=16:PP=1
602 CLS:PRINT "********";DM$(X,Y);:LOCATE 1,13:PRINT "********";YDTX$;
606 LOCATE 5,3:PRINT "× × ";
611 LOCATE 5,1:PRINT YPM$(PP);"×";YPS(PP);
612 LOCATE 5,13:PRINT MO;:BOX C,D,C+48,D+15,1,2:E=C:F=D
620 T=ASC(INKEY$):IF (T<24 AND T>19) OR T=13 OR T=27 THEN 625 ELSE BEEP:620
625 IF T=20 THEN D=D-16:PP=PP-1:IF D<16 THEN D=48:PP=PP+3
630 IF T=21 THEN D=D+16:PP=PP+1:IF D>48 THEN D=16:PP=PP-3
635 IF T=23 THEN C=C-80:PP=PP-3:IF C<17 THEN C=97:PP=PP+6
640 IF T=22 THEN C=C+80:PP=PP+3:IF C>97 THEN C=17:PP=PP-6
645 IF T=27 THEN 505
647 IF T>13 THEN 678
650 IF G=2 THEN 4550
655 IF MO665 MO=MO-YP(PP):YPS(PP)=YPS(PP)+1
675 IF YPS(1)+YPS(2)+YPS(3)+YPS(4)+YPS(5)+YPS(6)>50 THEN YPS(PP)=YPS(PP)-1:MO=MO+YP(PP):680
678 BOX E,F,E+48,F+15,1,2: GOTO 606
680 LOCATE 5,1:PRINT "携带的物品太多了!";:T$=INKEY$: GOTO 606
700 CLS:PRINT "********客栈********";AAA$(2);
710 T$=INKEY$
720 IF T$="n" THEN 505 ELSE IF T$<>"y" THEN BEEP:710
730 IF MO<200 THEN CLS:PRINT "对不起!你没那么多钱啊!我们这不赊账!再见!":731 ELSE 735
731 T$=INKEY$: GOTO 505
735 FOR II=-1 TO 0: FOR I=0 TO 80: FOR J=1 TO 100:NEXT :LINE 0,I,160,I,(-2)*II:NEXT :NEXT
740 MO=MO-200:MP=MPP:HP=HPP:CLS:PRINT "欢迎下次再来!":T$=INKEY$: GOTO 505
800 IF Q>5 THEN QT=QT+1:IF QT>3 THEN QT=3
801 IF QT=3 THEN CLS:PRINT ZP$(7):T$=INKEY$:505
805 IF Q=5 AND QT=2 THEN CLS:PRINT ZP$(6);:T$=INKEY$:QT=3:505
820 CLS:PRINT ZP$(Q);:T$=INKEY$: GOTO 505
1100 G=G+7:H=H+7
1120 FOR J=1 TO 0 STEP -1: FOR JJ=0 TO 7:BOX G-JJ,H-JJ,G+JJ,H+JJ,1,J
1130 FOR JJJ=1 TO 150:NEXT :NEXT :NEXT
1135 RETURN
1200 BOX 144,32,159,47:LOCATE 5,1:PRINT NB$(6);KP(6);"/";KPP(6);: FOR I=1 TO 2500
1205 NEXT :IF Q=10 THEN 1206 ELSE 1210
1206 I=RND(1):IF I>0.4 THEN 1240
1207 I=ABS(X(1)-X(6)):J=ABS(Y(1)-Y(6)):IF I=0 AND J=2 THEN 1245
1208 IF I=1 AND J=0 THEN 1245 ELSE 2019
1210 IF Y(1)=15 AND X(1)=3 THEN 1240
1211 IF Y(1)=17 THEN 1220
1212 IF Y(1)=19 THEN 1230
1213 GOTO 2019
1220 IF X(1)=2 OR X(1)=4 THEN 1240
1221 IF X(1)=3 THEN 1245
1222 GOTO 2019
1230 IF X(1)<>1 THEN 1245
1235 IF X(1)>14 THEN 1240
1240 ON Q GOTO 1500,1600,1500,1600,1500,1600,1500,1600,1500,1700
1241 GG=Q*86+INT(RND(1)*(10-Q)*8): GOTO 2940
1245 GG=Q*69+INT(RND(1)*(10-Q)*3): GOTO 8400
1500 II=0:H=X(1)*16-8:G=Y(1)*8-3
1510 FOR I=20 TO 160 STEP 2:II=II+0.2:ELLIPSE I,31,II,II*2
1520 FOR J=1 TO 50:NEXT :NEXT
1524 FOR I=-1 TO 0: FOR J=0 TO 7:CIRCLE G+4,H,J,1,-1*I: FOR II=1 TO 50:NEXT :NEXT :NEXT
1530 GOSUB 9995: GOTO 1241
1600 FOR II=20 TO 120:I=0.23*II:J=0.08*II
1610 DRAW II,35-I:DRAW II,33-J:DRAW II,29+J:DRAW II,27+I
1620 FOR JJ=1 TO 5:NEXT :NEXT
1630 FOR II=1 TO 0 STEP -1: FOR I=0 TO 7
1640 CIRCLE 120,8,I,1,II:CIRCLE 120,24,I,1,II:CIRCLE 120,40,I,1,II:CIRCLE 120,56,I,1,II
1650 CIRCLE 136,8,I,1,II:CIRCLE 136,24,I,1,II:CIRCLE 136,40,I,1,II:CIRCLE 136,56,I,1,II
1660 CIRCLE 152,8,I,1,II:CIRCLE 152,24,I,1,II:CIRCLE 152,40,I,1,II:CIRCLE 152,56,I,1,II
1680 NEXT :NEXT :GOSUB 9995: GOTO 1241
1700 FOR I=144 TO 80 STEP -1:DRAW I,I*0.625-50:FOR II=1 TO 50 :NEXT:NEXT
1702 FOR II=0 TO 60:LINE 76,II,84,II:FOR I=1 TO 50:NEXT:NEXT
1705 FOR II=80 TO 160:LINE II,52,II,60:LINE 160-II,52,160-II,60:NEXT
1710 FOR II=56 TO 6 STEP -16:FOR J=1 TO 0 STEP -1:FOR JJ=0 TO 7:FOR I= 8 TO 160 STEP 16
1715 CIRCLE I,II,JJ,1,J:NEXT:NEXT:NEXT:GOSUB 9995:NEXT
1720 GOSUB 9995:GOTO 1241
1999 IF Q=10 THEN KP(6)=40000:KPP(6)=KP(6):2001 ELSE 2001
2000 X(1)=1:Y(1)=1:R=R+1:RR=0:NPC$(1)=RW$(1):KP(6)=Q*2678:KPP(6)=KP(6): GOTO 1999
2001 FOR I=2 TO 5:KP(I)=Q*50+R*10:J=INT(RND(1)*7)+4:NPC$(I)=RW$(J):NB$(I)=NA$(J):X(I)=I-1
2002 KPP(I)=KP(I):Y(I)=INT(RND(1)*10)*2+1:IF Y(I)=Y(1) AND X(I)=X(1) THEN 2002
2003 IF R=INT(R/5)*5 AND Y(I)=Y(6) AND X(I)=X(6) THEN 2002
2004 NEXT :GJL=Q*14+R*4:VW=4:WV=4:S=0
2005 GET #1,R+1:B=0:IF R=20 THEN A=1
2009 IF R<>INT(R/5)*5 THEN 2019
2010 NB$(6)=AE$(Q):IF R<50 THEN 2015
2011 IF RR=1 THEN 2019 ELSE FOR I=1 TO 5:CLS:PRINT MZ$(I);:T$=INKEY$:NEXT :RR=0: GOTO 2019
2015 IF RR=0 THEN CLS:PRINT DR$(Q):T$=INKEY$:RR=1
2019 GOSUB 9995:IF VW=0 THEN RR=1:2001
2020 IF KP(6)>0 THEN 2025 ELSE CLS:PRINT AE$(Q);"被击败。"
2021 IF Q<5 THEN PRINT "得到";AE$(Q):LOCATE 2,9:PRINT "灵珠";BE$(Q);: GOTO 2023
2022 IF R=50 THEN T$=INKEY$: GOTO 5100
2023 T$=INKEY$: GOTO 500
2025 FOR I=1 TO 4: FOR J=1 TO 19 STEP 2:WZ(I,J)=0:NEXT :NEXT
2028 FOR I=2 TO 5:IF KP(I)=0 THEN 2029 ELSE WZ(X(I),Y(I))=I
2029 NEXT :IF R=INT(R/5)*5 THEN WZ(3,19)=6
2041 S=S+1:IF S=6 AND R=INT(R/5)*5 THEN 1200
2042 IF S=1 THEN 3000 ELSE IF S>5 THEN S=0:2041 ELSE IF KP(S)=0 THEN 2041
2043 GG=GJL: GOTO 2051
2050 GOTO 2019
2051 GOSUB 9994
2052 LOCATE 5,1:PRINT NB$(S);KP(S);"/";KPP(S);" ";:C=Y(S)*8-8:D=X(S)*16-16
2053 BOX C,D,C+15,D+15:IF X(S)>X(1) AND Y(S)>Y(1) THEN 2100
2055 IF X(S)>X(1) AND Y(S)=Y(1) THEN 2200
2060 IF X(S)>X(1) AND Y(S)2065 IF X(S)=X(1) AND Y(S)>Y(1) THEN 2400
2070 IF X(S)=X(1) AND Y(S)2075 IF X(S)Y(1) THEN 2600
2080 IF X(S)2085 IF X(S)2100 E=ABS(X(1)-X(S)):F=ABS(Y(1)-Y(S))/2
2110 IF E+F>3 THEN 2150
2120 IF E=1 AND F=2 THEN GOSUB 7000: GOTO 8800
2130 IF E=1 AND F=1 THEN GOSUB 7050: GOTO 8800
2140 IF E=2 AND F=1 THEN GOSUB 7100: GOTO 8800
2150 IF E=1 THEN GOSUB 7600: GOTO 2050
2160 IF E>1 THEN GOSUB 7650: GOTO 2050
2200 E=ABS(X(1)-X(S))
2220 IF E=1 THEN 8800
2230 IF E=2 THEN GOSUB 8000: GOTO 8800
2240 IF E=3 THEN GOSUB 8050: GOTO 8800
2300 E=ABS(X(1)-X(S)):F=ABS(Y(1)-Y(S))/2
2310 IF E+F>3 THEN 2350
2320 IF E=1 AND F=2 THEN GOSUB 7150: GOTO 8800
2330 IF E=1 AND F=1 THEN GOSUB 7200: GOTO 8800
2340 IF E=2 AND F=1 THEN GOSUB 7250: GOTO 8800
2350 IF E=1 THEN GOSUB 7700: GOTO 2050
2360 IF E>1 THEN GOSUB 7750: GOTO 2050
2400 F=ABS(Y(1)-Y(S))/2:E=0
2420 IF F=1 THEN E=1:8800
2430 IF F=2 THEN GOSUB 8100: GOTO 8800
2440 IF F=3 THEN GOSUB 8150: GOTO 8800
2450 GOSUB 8600: GOTO 2050
2500 F=ABS(Y(1)-Y(S))/2:E=0
2520 IF F=1 THEN E=1:8800
2530 IF F=2 THEN GOSUB 8200: GOTO 8800
2540 IF F=3 THEN GOSUB 8250: GOTO 8800
2550 GOSUB 8500: GOTO 2050
2600 E=ABS(X(1)-X(S)):F=ABS(Y(1)-Y(S))/2
2610 IF E+F>3 THEN 2650
2620 IF E=1 AND F=2 THEN GOSUB 7300: GOTO 8800
2630 IF E=1 AND F=1 THEN GOSUB 7350: GOTO 8800
2640 IF E=2 AND F=1 THEN GOSUB 7400: GOTO 8800
2650 IF E=1 THEN GOSUB 7800: GOTO 2050
2660 IF E>1 THEN GOSUB 7850: GOTO 2050
2700 E=ABS(X(1)-X(S)):F=ABS(Y(1)-Y(S))/2
2720 IF E=1 THEN 8800
2730 IF E=2 THEN GOSUB 8300: GOTO 8800
2740 IF E=3 THEN GOSUB 8350: GOTO 8800
2800 E=ABS(X(1)-X(S)):F=ABS(Y(1)-Y(S))/2
2810 IF E+F>3 THEN 2850
2820 IF E=1 AND F=2 THEN GOSUB 7450: GOTO 8800
2830 IF E=1 AND F=1 THEN GOSUB 7500: GOTO 8800
2840 IF E=2 AND F=1 THEN GOSUB 7550: GOTO 8800
2850 IF E=1 THEN GOSUB 7900: GOTO 2050
2860 IF E>1 THEN GOSUB 7950: GOTO 2050
2900 X(S)=X(S)-1:GOSUB 9995: FOR JJ=1 TO 1000:NEXT :RETURN
2910 X(S)=X(S)+1:GOSUB 9995: FOR JJ=1 TO 1000:NEXT :RETURN
2920 Y(S)=Y(S)-2:GOSUB 9995: FOR JJ=1 TO 1000:NEXT :RETURN
2930 Y(S)=Y(S)+2:GOSUB 9995: FOR JJ=1 TO 1000:NEXT :RETURN
2940 GOSUB 9995:HPPP=GG+INT(RND(1)*DJ/2):HP=HP-HPPP:IF HP>0 THEN 2950 ELSE 2960
2950 GOSUB 9994:LOCATE 5,1:PRINT "你的体力下降了";HPPP;: FOR I=1 TO 1500:NEXT : GOTO 2025
2960 CLS:LOCATE 2,5:PRINT "你的体力不支,"," 昏了过去……"
2970 FOR I=0 TO 80:LINE 0,I,160,I,2: FOR J=0 TO 100:NEXT :NEXT
2980 T$=INKEY$:CLOSE #1:POKE 199,155
3000 W=0:V=0
3005 GOSUB 9994
3006 LOCATE 5,1:PRINT NA$(1);"HP:";HP;"/";HPP;
3010 T=ASC(INKEY$):IF (T>19 AND T<24) OR (T=13 OR T=113) THEN 3020 ELSE BEEP:3010
3020 IF T=13 THEN T=24
3025 IF T=113 THEN T=25
3030 ON T-19 GOTO 3100,3200,3400,3300,3600,3040
3040 GOSUB 9900: GOSUB 9995:GOTO 3006
3100 X(S)=X(S)-1:W=W-1:IF X(S)=0 THEN BEEP:X(S)=1:W=W+1
3102 IF ABS(W)+ABS(V)>3 OR WZ(X(S),Y(S))>0 THEN X(S)=X(S)+1:W=W+1:BEEP:3010
3110 GOSUB 9995: GOTO 3010
3200 X(S)=X(S)+1:W=W+1:IF X(S)=5 THEN BEEP:X(S)=4:W=W-1
3210 IF ABS(W)+ABS(V)>3 OR WZ(X(S),Y(S))>0 THEN X(S)=X(S)-1:W=W-1:BEEP:3010
3220 IF X(S)=4 AND Y(S)=19 AND R<>INT(R/5)*5 THEN RR=0:2000
3226 GOSUB 9995: GOTO 3010
3300 Y(S)=Y(S)-2:V=V-1:IF Y(S)<1 THEN BEEP:Y(S)=1:V=V+1
3310 IF ABS(W)+ABS(V)>3 OR WZ(X(S),Y(S))>0 THEN Y(S)=Y(S)+2:V=V+1:BEEP:3010
3326 GOSUB 9995: GOTO 3010
3400 Y(S)=Y(S)+2:V=V+1:IF Y(S)>19 THEN BEEP:Y(S)=19:V=V-1
3410 IF ABS(W)+ABS(V)>3 OR WZ(X(S),Y(S))>0 THEN Y(S)=Y(S)-2:V=V-1:BEEP:3010
3425 IF X(S)=4 AND Y(S)=19 AND R<>INT(R/5)*5 THEN RR=0:2000
3426 GOSUB 9995: GOTO 3010
3500 GOSUB 9400: GOTO 3005
3600 GOSUB 9994:LOCATE 5,1:PRINT "①攻 ②法 ③物 ④防";
3610 T$=INKEY$:IF T$=CHR$(27) THEN 3005
3611 GOSUB 10:ON T GOTO 3670,3900,3660,3620:BEEP: GOTO 3610
3620 U=0: GOTO 2019
3660 GOSUB 9400:GOSUB 9995:IF T$="Y" THEN 2019 ELSE 3600
3670 PP=1=5
3700 IF X(1)-1=0 THEN 3702
3701 IF WZ(X(1)-1,Y(1))<>0 THEN U=U+1:UU(U)=WZ(X(1)-1,Y(1))
3702 IF X(1)+1=5 THEN 3704
3703 IF WZ(X(1)+1,Y(1))<>0 THEN U=U+1:UU(U)=WZ(X(1)+1,Y(1))
3704 IF Y(1)-2<0 THEN 3706
3705 IF WZ(X(1),Y(1)-2)<>0 THEN U=U+1:UU(U)=WZ(X(1),Y(1)-2)
3706 IF Y(1)+2=21 THEN 3708
3707 IF WZ(X(1),Y(1)+2)<>0 THEN U=U+1:UU(U)=WZ(X(1),Y(1)+2)
3708 K=1
3709 IF PP=2 AND MP3712 IF U>0 THEN 3714
3713 BEEP:LOCATE 5,1:PRINT "目标不在范围内! ";:T$=INKEY$: GOTO 3600
3714 GOSUB 9994:LOCATE 5,1:PRINT NB$(UU(K));
3715 PRINT KP(UU(K));"/";KPP(UU(K));:G=Y(UU(K))*8-8
3716 H=X(UU(K))*16-16:BOX G,H,G+15,H+15
3717 T=ASC(INKEY$):IF (T>19 AND T<24) OR (T=27 OR T=13) THEN 3719 ELSE BEEP:3717
3719 IF T=27 THEN U=0:3600
3720 IF U=0 THEN 3712
3725 IF T<>13 THEN 3735
3726 IF T=13 THEN ON PP GOTO 3730,6001
3730 IF T=13 THEN GOSUB 1100:GGLL=GGL
3731 KP=KP(UU(K)):KPPP=GGLL+INT(RND(1)*DJ)
3732 KP(UU(K))=KP(UU(K))-KPPP:IF KP(UU(K))>0 THEN 3733 ELSE 3790
3733 GOSUB 9995:GOSUB 9994:LOCATE 5,1:PRINT NPC$(UU(K));"体力下降了";KPPP;:T$=INKEY$: GOTO 3820
3735 K=K+1:BOX G,H,G+15,H+15,0,2:IF K>U THEN K=1
3740 ON P GOTO 3714,3714,6536,6940,3714
3790 WV=VW
3791 KP(UU(K))=0:JP=KPP(UU(K))+INT(RND(1)*DJ):JY=JY+JP:WZ(X(UU(K)),Y(UU(K)))=0:VW=VW-1
3792 I=INT(RND(1)*200):IF I>49 THEN MO=MO+INT(KPP(UU(K))/7)+INT(RND(1)*(DJ/2)):PC$="金币"
3795 IF I=49 THEN YPS(3)=YPS(3)+1:PC$=YP$(3)
3797 IF I=48 THEN YPS(6)=YPS(6)+1:PC$=YP$(6)
3801 IF I<48 AND I>26 THEN YPS(4)=YPS(4)+1:PC$=YP$(4)
3802 IF I<27 AND I>5 THEN YPS(1)=YPS(1)+1:PC$=YP$(1)
3803 IF I<6 AND I>2 THEN YPS(2)=YPS(2)+1:PC$=YP$(2)
3805 IF I<3 THEN YP(5)=YP(5)+1:PC$=YP$(5)
3806 IF UU(K)<6 THEN 3808 ELSE LOCATE 5,1:PRINT NB$(6);:LOCATE 5,9:PRINT "被打败了!";
3807 T$=INKEY$:LOCATE 5,1: GOTO 3809
3808 GOSUB 9995:LOCATE 5,1:PRINT NB$(UU(K));"被打败了!";:T$=INKEY$:LOCATE 5,1
3809 PRINT "得到";PC$;" ";:T$=INKEY$:LOCATE 5,1:PRINT "获得经验值";JP;
3810 T$=INKEY$:IF JY>=JYZ THEN GOSUB 4100
3820 IF P=3 THEN 6536 ELSE IF P=4 THEN 6940 ELSE 3620
3900 P=1:GOSUB 9994
3910 LOCATE 5,1:PRINT MF$(P);" ";
3920 T=ASC(INKEY$):IF T=20 OR T=21 OR T=13 OR T=27 THEN 3921 ELSE 3920
3921 IF T=21 THEN P=P+1:IF P>4 THEN BEEP:P=4:3920
3922 IF T=20 THEN P=P-1:IF P<1 THEN BEEP:P=1:3920
3923 IF T=27 THEN GOSUB 9995: GOTO 3600
3924 IF T<>13 THEN 3910
3925 ON P GOTO 6000,6400,6400,6900
4100 I=HPP:J=MPP:G=GGL:GOSUB 4101:GOTO 4110
4101 DJ=DJ+1:JYZ=DJ*300-200:HPP=DJ*38+50-DJ*4:MPP=DJ*19+(40-DJ*6):GGL=DJ*21+(40-DJ*9)
4105 HP=HPP:MP=MPP:RETURN
4110 LOCATE 5,1:PRINT "你升级了!";DJ;"级 ";:T$=INKEY$:JY=0:GOSUB 9994
4111 LOCATE 5,1:PRINT "体力+";HPP-I;:T$=INKEY$:GOSUB 9994
4112 LOCATE 5,1:PRINT "法力+";MPP-J;:T$=INKEY$:GOSUB 9994
4113 LOCATE 5,1:PRINT "攻击力+";GGL-G;:T$=INKEY$
4115 RETURN
4500 G=2: GOTO 601
4550 IF YPS(PP)<=0 THEN BEEP: GOTO 620
4560 YPS(PP)=YPS(PP)-1:MO=MO+INT(YP(PP)/2): GOTO 606
5000 CLS:PRINT MAP$(1);:POKE 803,AA:PRINT ;
5002 LOCATE 1,3:PRINT "※※※※※※※";:LOCATE 3,1:PRINT RW$(1);
5004 LOCATE 2,19:PRINT RW$(2);:LOCATE 3,19:PRINT "";: FOR I=1 TO 5000:NEXT
5006 FOR I=1 TO 2:CLS:PRINT GZ$(I);:T$=INKEY$:NEXT
5008 CLS:PRINT MAP$(1);:POKE 803,AA:PRINT ;
5010 LOCATE 1,3:PRINT "※※※※※※※";:LOCATE 3,1:PRINT RW$(1);
5011 LOCATE 3,19:PRINT "";:LOCATE 2,19:PRINT RW$(2);
5012 LOCATE 3,3:PRINT "";:LOCATE 4,3:PRINT "";: FOR I=1 TO 2000:NEXT
5014 FOR I=3 TO 13 STEP 2
5016 LOCATE 3,I:PRINT "※";:LOCATE 4,I:PRINT "※";
5020 FOR J=1 TO 2000:NEXT :NEXT
5022 LOCATE 3,15:PRINT "※※※";:LOCATE 4,15:PRINT "※※※";: FOR I=1 TO 5000
5024 NEXT : FOR I=3 TO 9 STEP 2:II=20-I
5026 LOCATE 3,I-2:PRINT "※";
5028 LOCATE 2,II:PRINT "※";
5030 FOR J=1 TO 2000:NEXT :NEXT :LOCATE 3,9:PRINT "※";
5031 LOCATE 2,9:PRINT RW$(1): FOR I=1 TO 5000:NEXT
5032 FOR I=3 TO 5:CLS:PRINT GZ$(I):T$=INKEY$:NEXT
5034 CLS:PRINT MAP$(2);:POKE 803,BB:PRINT ;
5036 FOR I=5 TO 2 STEP -1: FOR J=1 TO 2000:NEXT :II=I+1:IF II>5 THEN II=5
5038 LOCATE II,11:PRINT " ";:LOCATE I,11:PRINT RW$(3);:NEXT
5040 CLS:PRINT WG$(1);:T$=INKEY$
5042 CLS:PRINT MAP$(2);:POKE 803,BB:PRINT ;:LOCATE 3,11:PRINT RW$(3);
5044 FOR I=1 TO 3: FOR J=1 TO 2000:NEXT
5046 ON I GOTO 5048,5050,5052
5048 LOCATE 3,11:PRINT RW$(3): GOTO 5054
5050 LOCATE 4,11:PRINT RW$(3);:LOCATE 3,11:PRINT " ";: GOTO 5054
5052 LOCATE 4,13:PRINT RW$(3);:LOCATE 4,11:PRINT " ";
5054 NEXT :LOCATE 5,11:PRINT RW$(2);: FOR I=1 TO 2000:NEXT
5055 LOCATE 4,11:PRINT RW$(2);:LOCATE 5,11:PRINT RW$(1);: FOR I=1 TO 2000:NEXT
5056 LOCATE 3,11:PRINT RW$(2);:LOCATE 4,11:PRINT RW$(1):LOCATE 5,11:PRINT " ";
5058 FOR I=1 TO 2000:NEXT
5060 FOR I=2 TO 6:CLS:PRINT WG$(I);:T$=INKEY$:NEXT
5062 A=0:X=3:Y=11:QT=2 : GOTO 505
5100 CLS:PRINT MAP$(1);:POKE 803,AA:PRINT ;
5102 LOCATE 1,3:PRINT "※※※※※※※";
5104 LOCATE 4,1:PRINT RW$(2);:LOCATE 4,19:PRINT RW$(1);: FOR I=1 TO 2000:NEXT
5106 FOR I=3 TO 9 STEP 2:II=20-I
5108 LOCATE 4,I-2:PRINT "※";:LOCATE 4,II:PRINT "※";
5110 FOR J=1 TO 2000:NEXT :NEXT
5112 FOR I=1 TO 10:CIRCLE 79+I,48-I*3,I,1:CIRCLE 81-I,48-I*3,I,1
5114 FOR J=1 TO 400:NEXT :NEXT :T$=INKEY$:LOCATE 3,8:PRINT "全剧终":T$=INKEY$
5116 FOR I=0 TO 80:LINE I,0,I,80:LINE 160-I,0,160-I,80:NEXT : FOR I=1 TO 2000:NEXT
5118 GOTO 9800
6000 PP=2: GOTO 3700
6001 G=Y(UU(K))*8-5:H=X(UU(K))*16-8
6010 FOR I=0 TO 63:LINE G,I,G+8,I: FOR J=1 TO 50:NEXT :NEXT
6020 FOR I=-1 TO 0: FOR J=0 TO 7:CIRCLE G+4,H,J,1,-1*I: FOR II=1 TO 50:NEXT :NEXT :NEXT
6030 GGLL=XG(1):MP=MP-MF(1):GOSUB 9995: GOTO 3731
6100 G=Y(UU(K))*8:H=X(UU(K))*16-8: FOR I=7 TO 55 STEP 4
6110 CIRCLE G,I,8,0,1: FOR J=1 TO 150:NEXT :NEXT
6115 FOR I=-1 TO 0: FOR J=0 TO 7:CIRCLE G,H,J,1,-1*I
6120 FOR II=1 TO 100:NEXT :NEXT :NEXT
6130 RETURN
6200 G(1)=Y(UU(K))*8-2:H(1)=X(UU(K))*16-8
6210 G(2)=G(1)-16:H(2)=H(1):IF G(2)<0 THEN G(2)=G(1)
6220 G(3)=G(1):H(3)=H(1)-16:IF H(3)<0 THEN H(3)=H(1)
6230 G(4)=G(1):H(4)=H(1)+16:IF H(4)>60 THEN H(4)=H(1)
6240 G(5)=G(1)+16:H(5)=H(1):IF G(5)>160 THEN G(5)=G(1)
6250 FOR I=-1 TO 0: FOR J=0 TO 7: FOR II=1 TO 5
6255 CIRCLE G(II),H(II),J,1,-1*I:NEXT
6260 FOR JJ=1 TO 20:NEXT :NEXT :NEXT
6270 RETURN
6300 GOTO 6900
6310 FOR III=1 TO 10:G=INT(RND(1)*120)+20:H=INT(RND(1)*24)+20:I=INT(RND(1)*10)+10
6315 FOR II=1 TO 0 STEP -1: FOR J=0 TO I:CIRCLE G,H,J,1,II
6320 NEXT :NEXT :GOSUB 9995:NEXT :MP=MP-MF(4)
6330 RETURN
6400 U=0:K=1:IF MP6402 U=0:K=1:IF X(1)-2<1 THEN 6405
6404 IF WZ(X(1)-2,Y(1))<>0 THEN U=U+1:UU(U)=WZ(X(1)-2,Y(1))
6405 IF X(1)-1=0 THEN 6416
6406 IF Y(1)-2<0 THEN 6410
6408 IF WZ(X(1)-1,Y(1)-2)<>0 THEN U=U+1:UU(U)=WZ(X(1)-1,Y(1)-2)
6410 IF WZ(X(1)-1,Y(1))<>0 THEN U=U+1:UU(U)=WZ(X(1)-1,Y(1))
6412 IF Y(1)+2>19 THEN 6416
6414 IF WZ(X(1)-1,Y(1)+2)<>0 THEN U=U+1:UU(U)=WZ(X(1)-1,Y(1)+2)
6416 IF Y(1)-4<0 THEN 6420
6418 IF WZ(X(1),Y(1)-4)<>0 THEN U=U+1:UU(U)=WZ(X(1),Y(1)-4)
6420 IF Y(1)-2<0 THEN 6424
6422 IF WZ(X(1),Y(1)-2)<>0 THEN U=U+1:UU(U)=WZ(X(1),Y(1)-2)
6424 IF Y(1)+2>19 THEN 6432
6426 IF WZ(X(1),Y(1)+2)<>0 THEN U=U+1:UU(U)=WZ(X(1),Y(1)+2)
6428 IF Y(1)+4>19 THEN 6432
6430 IF WZ(X(1),Y(1)+4)<>0 THEN U=U+1:UU(U)=WZ(X(1),Y(1)+4)
6432 IF X(1)+1>4 THEN 6500
6434 IF Y(1)-2<0 THEN 6438
6436 IF WZ(X(1)+1,Y(1)-2)<>0 THEN U=U+1:UU(U)=WZ(X(1)+1,Y(1)-2)
6438 IF WZ(X(1)+1,Y(1))<>0 THEN U=U+1:UU(U)=WZ(X(1)+1,Y(1))
6440 IF Y(1)+2>19 THEN 6444
6442 IF WZ(X(1)+1,Y(1)+2)<>0 THEN U=U+1:UU(U)=WZ(X(1)+1,Y(1)+2)
6444 IF X(1)+2>4 THEN 6500
6446 IF WZ(X(1)+2,Y(1))<>0 THEN U=U+1:UU(U)=WZ(X(1)+2,Y(1))
6500 IF K>U THEN K=1:6506 ELSE IF U>0 THEN 6506
6502 BEEP:LOCATE 5,1:PRINT "目标不在范围内!";:T$=INKEY$: GOTO 3600
6506 GOSUB 9995:LOCATE 5,1:PRINT NB$(UU(K));KP(UU(K));"/";
6507 PRINT KPP(UU(K));:G=Y(UU(K))*8-8:H=X(UU(K))*16-16
6508 BOX G,H,G+15,H+15:IF P=2 THEN 6526
6510 IF X(UU(K))-1=0 THEN 6514
6512 BOX G,H-16,G+15,H-1
6514 IF X(UU(K))+1=5 THEN 6518
6516 BOX G,H+16,G+15,H+31
6518 IF Y(UU(K))-2<0 THEN 6522
6520 BOX G-16,H,G-1,H+15
6522 IF Y(UU(K))+2>19 THEN 6526
6524 BOX G+16,H,G+31,H+15
6526 T=ASC(INKEY$):IF (T>19 AND T<24) OR T=13 OR T=27 THEN 6528 ELSE BEEP:6526
6528 IF T=27 THEN U=0:3600
6530 IF T<>13 THEN K=K+1:6500
6534 IF T=13 AND P=2 THEN GOSUB 6100:GGLL=XG(2):MP=MP-MF(2): GOTO 3731
6535 IF T=13 AND P=3 THEN GOSUB 6200:GGLL=XG(3):M=0:N=UU(K):MP=MP-MF(3): GOTO 3731
6536 M=M+1:IF M>4 THEN 3620
6537 FOR I=1 TO 4: FOR J=1 TO 19 STEP 2:WZ(I,J)=0:NEXT :NEXT
6538 FOR I=2 TO 6:WZ(X(I),Y(I))=I
6539 NEXT :ON M GOTO 6540,6544,6548,6552
6540 IF X(N)>1 THEN IF WZ(X(N)-1,Y(N))>1 THEN UU(K)=WZ(X(N)-1,Y(N)):3731
6542 GOTO 6536
6544 IF X(N)<4 THEN IF WZ(X(N)+1,Y(N))>1 THEN UU(K)=WZ(X(N)+1,Y(N)):3731
6546 GOTO 6536
6548 IF Y(N)>1 THEN IF WZ(X(N),Y(N)-2)>1 THEN UU(K)=WZ(X(N),Y(N)-2):3731
6550 GOTO 6536
6552 IF Y(N)<19 THEN IF WZ(X(N),Y(N)+2)>1 THEN UU(K)=WZ(X(N),Y(N)+2):3731
6554 GOTO 3620
6900 IF MP6910 GOSUB 6310:M=0
6915 M=M+1:IF KP(M)=0 THEN 6940
6920 IF M=6 AND R<>INT(R/5)*5 THEN 6940
6930 GGLL=XG(4):UU(K)=M: GOTO 3731
6940 IF M<7 THEN 6915 ELSE 3620
7000 IF WZ(X(1)+1,Y(1))=0 THEN GOSUB 2920:GOSUB 2920:RETURN
7010 IF WZ(X(1),Y(1)+2)=0 THEN GOSUB 2920:GOSUB 2900:RETURN
7020 IF WZ(X(1)+1,Y(1)+2)=0 THEN GOSUB 2920:E=0:RETURN
7030 GOSUB 2900:E=0:RETURN
7050 IF WZ(X(1)+1,Y(1))=0 THEN GOSUB 2920:RETURN
7060 IF WZ(X(1),Y(1)+2)=0 THEN GOSUB 2900:RETURN
7080 IF X(1)>1 THEN IF WZ(X(1)-1,Y(1)+2)=0 THEN GOSUB 2900:GOSUB 2900:E=0:RETURN
7090 IF Y(1)>1 THEN IF WZ(X(1)+1,Y(1)-2)=0 THEN GOSUB 2920:GOSUB 2920:E=0:RETURN
7095 E=0:RETURN
7100 IF WZ(X(1)+1,Y(1))=0 THEN GOSUB 2920:GOSUB 2900:E=1:RETURN
7110 IF WZ(X(1),Y(1)+2)=0 THEN GOSUB 2900:GOSUB 2900:E=1:RETURN
7120 IF WZ(X(1)+1,Y(1)+2)=0 THEN GOSUB 2900:E=0:RETURN
7130 GOSUB 2920:E=0:RETURN
7150 IF WZ(X(1)+1,Y(1))=0 THEN GOSUB 2930:GOSUB 2930:RETURN
7160 IF WZ(X(1),Y(1)-2)=0 THEN GOSUB 2930:GOSUB 2900:RETURN
7170 IF WZ(X(1)+1,Y(1)-2)=0 THEN GOSUB 2930:E=0:RETURN
7180 GOSUB 2900:E=0:RETURN
7190 E=0:RETURN
7200 IF WZ(X(1)+1,Y(1))=0 THEN GOSUB 2930:RETURN
7210 IF WZ(X(1),Y(1)-2)=0 THEN GOSUB 2900:RETURN
7230 IF X(1)>1 THEN IF WZ(X(1)-1,Y(1)-2)=0 THEN GOSUB 2900:GOSUB 2900:E=0:RETURN
7240 IF Y(1)<19 THEN IF WZ(X(1)+1,Y(1)+2)=0 THEN GOSUB 2930:GOSUB 2930:E=0:RETURN
7245 E=0:RETURN
7250 IF WZ(X(1)+1,Y(1))=0 THEN GOSUB 2930:GOSUB 2900:E=1:RETURN
7260 IF WZ(X(1),Y(1)-2)=0 THEN GOSUB 2900:GOSUB 2900:E=1:RETURN
7270 IF WZ(X(1)+2,Y(1)+2)=0 THEN GOSUB 2930:RETURN
7280 IF WZ(X(1)+1,Y(1)-2))=0 THEN GOSUB 2900:RETURN
7300 IF WZ(X(1)-1,Y(1))=0 THEN GOSUB 2920:GOSUB 2920:RETURN
7310 IF WZ(X(1),Y(1)+2)=0 THEN GOSUB 2910:GOSUB 2920:RETURN
7320 IF WZ(X(1)-1,Y(1)+2)=0 THEN GOSUB 2920:E=0:RETURN
7330 GOSUB 2910:E=0:RETURN
7350 IF WZ(X(1)-1,Y(1))=0 THEN GOSUB 2920:RETURN
7360 IF WZ(X(1),Y(1)+2)=0 THEN GOSUB 2910:RETURN
7380 IF X(1)<4 THEN IF WZ(X(1)+1,Y(1)+2)=0 THEN GOSUB 2910:GOSUB 2910:E=0:RETURN
7390 IF Y(1)>1 THEN IF WZ(X(1)-1,Y(1)-2)=0 THEN GOSUB 2920:GOSUB 2920:E=0:RETURN
7395 E=0:RETURN
7400 IF WZ(X(1)-1,Y(1))=0 THEN GOSUB 2920:GOSUB 2910:E=1:RETURN
7410 IF WZ(X(1),Y(1)+2)=0 THEN GOSUB 2910:GOSUB 2910:E=1:RETURN
7420 IF WZ(X(1)-2,Y(1))=0 THEN GOSUB 2920:RETURN
7430 IF WZ(X(1)-1,Y(1)+2)=0 THEN GOSUB 2910:RETURN
7450 IF WZ(X(1)-1,Y(1))=0 THEN GOSUB 2930:GOSUB 2930:RETURN
7460 IF WZ(X(1),Y(1)-2)=0 THEN GOSUB 2930:GOSUB 2910:RETURN
7470 IF WZ(X(1)-1,Y(1)-2)=0 THEN GOSUB 2930:E=0:RETURN
7480 IF WZ(X(1),Y(1)-4)=0 THEN GOSUB 2910:E=0:RETURN
7490 E=0:RETURN
7500 IF WZ(X(1)-1,Y(1))=0 THEN GOSUB 2930:RETURN
7510 IF WZ(X(1),Y(1)-2)=0 THEN GOSUB 2910:RETURN
7530 IF X(1)<4 THEN IF WZ(X(1)+1,Y(1)-2)=0 THEN GOSUB 2910:GOSUB 2910:E=0:RETURN
7540 IF Y(1)<19 THEN IF WZ(X(1)-1,Y(1)+2)=0 THEN GOSUB 2930:GOSUB 2930:E=0:RETURN
7545 E=0:RETURN
7550 IF WZ(X(1)-1,Y(1))=0 THEN GOSUB 2930:GOSUB 2910:E=1:RETURN
7560 IF WZ(X(1),Y(1)-2)=0 THEN GOSUB 2910:GOSUB 2910:E=1:RETURN
7570 IF WZ(X(1)-2,Y(1))=0 THEN GOSUB 2930:RETURN
7580 IF WZ(X(1)-1,Y(1-2))=0 THEN GOSUB 2910:RETURN
7600 IF WZ(X(S),Y(S)-4)=0 THEN GOSUB 2920:GOSUB 2920:RETURN
7610 IF WZ(X(S)-1,Y(S)-2)=0 THEN GOSUB 2920:GOSUB 2900:RETURN
7620 IF WZ(X(S),Y(S)-2)=0 THEN GOSUB 2920:RETURN
7630 GOSUB 2900:RETURN
7650 IF WZ(X(S)-1,Y(S)-2)=0 THEN GOSUB 2920:GOSUB 2900:RETURN
7660 IF Y(S)>3 THEN IF WZ(X(S),Y(S)-4)=0 THEN GOSUB 2920:GOSUB 2920:RETURN
7670 IF WZ(X(S)-2,Y(S))=0 THEN GOSUB 2900:GOSUB 2900:RETURN
7680 I=RND(1):IF I>0.5 THEN 7690
7685 GOSUB 2900:RETURN
7690 GOSUB 2920:RETURN
7700 IF WZ(X(S),Y(S)+4)=0 THEN GOSUB 2930:GOSUB 2930:RETURN
7710 IF WZ(X(S)-1,Y(S)+2)=0 THEN GOSUB 2930:GOSUB 2900:RETURN
7720 IF WZ(X(S),Y(S)+2)=0 THEN GOSUB 2930:RETURN
7730 GOSUB 2900:RETURN
7750 IF WZ(X(S)-1,Y(S)+2)=0 THEN GOSUB 2930:GOSUB 2900:RETURN
7760 IF Y(S)<17 THEN IF WZ(X(S),Y(S)+4)=0 THEN GOSUB 2930:GOSUB 2930:RETURN
7770 IF WZ(X(S)-2,Y(S))=0 THEN GOSUB 2900:GOSUB 2900:RETURN
7780 I=RND(1):IF I>0.5 THEN 7790
7785 GOSUB 2930:RETURN
7790 GOSUB 2900:RETURN
7800 IF WZ(X(S),Y(S)-4)=0 THEN GOSUB 2920:GOSUB 2920:RETURN
7810 IF WZ(X(S)+1,Y(S)-2)=0 THEN GOSUB 2920:GOSUB 2910:RETURN
7820 IF WZ(X(S),Y(S)-2)=0 THEN GOSUB 2920:RETURN
7830 IF WZ(X(S)+1,Y(S))=0 THEN GOSUB 2910:RETURN
7850 IF WZ(X(S)+1,Y(S)-2)=0 THEN GOSUB 2920:GOSUB 2910:RETURN
7860 IF Y(S)>3 THEN IF WZ(X(S),Y(S)-4)=0 THEN GOSUB 2920:GOSUB 2920:RETURN
7870 IF WZ(X(S)+2,Y(S))=0 THEN GOSUB 2910:GOSUB 2910:RETURN
7880 I=RND(1):IF I>0.5 THEN 7890
7885 GOSUB 2910:RETURN
7890 GOSUB 2920:RETURN
7900 IF WZ(X(S),Y(S)+4)=0 THEN GOSUB 2930:GOSUB 2930:RETURN
7910 IF WZ(X(S)+1,Y(S)+2)=0 THEN GOSUB 2930:GOSUB 2910:RETURN
7920 IF WZ(X(S),Y(S)+2)=0 THEN GOSUB 2930:RETURN
7930 IF WZ(X(S)+1,Y(S))=0 THEN GOSUB 2910:RETURN
7950 IF WZ(X(S)+1,Y(S)+2)=0 THEN GOSUB 2930:GOSUB 2910:RETURN
7960 IF Y(S)<17 THEN IF WZ(X(S),Y(S)+4)=0 THEN GOSUB 2930:GOSUB 2930:RETURN
7970 IF WZ(X(S)+2,Y(S))=0 THEN GOSUB 2910:GOSUB 2910:RETURN
7980 I=RND(1):IF I>0.5 THEN 7990
7985 GOSUB 2910:RETURN
7990 GOSUB 2930:RETURN
8000 IF WZ(X(1)+1,Y(1))=0 THEN GOSUB 2900:E=1:RETURN
8010 IF Y(1)<19 THEN IF WZ(X(1)+1,Y(1)+2)=0 THEN GOSUB 2900:GOSUB 2930:RETURN
8020 IF Y(1)>1 THEN IF WZ(X(1)+1,Y(1)-2)=0 THEN GOSUB 2900:GOSUB 2920:RETURN
8030 IF Y(1)<19 THEN IF WZ(X(1)+2,Y(1)+2)=0 THEN GOSUB 2930:RETURN
8040 IF Y(1)>1 THEN IF WZ(X(1)+2,Y(1)-2)=0 THEN GOSUB 2920:RETURN
8045 E=0:RETURN
8050 IF WZ(X(1)+1,Y(1))=0 THEN GOSUB 2900:GOSUB 2900:E=1:RETURN
8060 IF WZ(X(1)+2,Y(1))=0 THEN GOSUB 2900:RETURN
8070 IF Y(1)>1 THEN IF WZ(X(1)+2,Y(1)-2)=0 THEN GOSUB 2900:GOSUB 2920:RETURN
8080 IF Y(1)<19 THEN IF WZ(X(1)+2,Y(1)+2)=0 THEN GOSUB 2900:GOSUB 2930:RETURN
8090 E=0:RETURN
8100 IF WZ(X(1),Y(1)+2)=0 THEN GOSUB 2920:E=1:RETURN
8110 IF X(1)>1 THEN IF WZ(X(1)-1,Y(1)+2)=0 THEN GOSUB 2920:GOSUB 2900:E=0:RETURN
8120 IF X(1)<4 THEN IF WZ(X(1)+1,Y(1)+2)=0 THEN GOSUB 2920:GOSUB 2910:E=0:RETURN
8130 IF X(1)>1 THEN IF WZ(X(1)-1,Y(1)+4)=0 THEN GOSUB 2900:E=0:RETURN
8140 IF X(1)<4 THEN IF WZ(X(1)+1,Y(1)+4)=0 THEN GOSUB 2910:E=0:RETURN
8145 E=0:RETURN
8150 IF WZ(X(1),Y(1)+2)=0 THEN GOSUB 2920:GOSUB 2920:E=1:RETURN
8160 IF WZ(X(1),Y(1)+4)=0 THEN GOSUB 2920:E=0:RETURN
8170 IF X(1)>1 THEN IF WZ(X(1)-1,Y(1)+4)=0 THEN GOSUB 2900:GOSUB 2920:RETURN
8180 IF X(1)<4 THEN IF WZ(X(1)+1,Y(1)+4)=0 THEN GOSUB 2910:GOSUB 2920:RETURN
8190 E=0:RETURN
8200 IF WZ(X(1),Y(1)-2)=0 THEN GOSUB 2930:E=1:RETURN
8210 IF X(1)<4 THEN IF WZ(X(1)+1,Y(1)-2)=0 THEN GOSUB 2930:GOSUB 2910:RETURN
8220 IF X(1)>1 THEN IF WZ(X(1)-1,Y(1)-2)=0 THEN GOSUB 2930:GOSUB 2900:RETURN
8230 IF X(1)<4 THEN IF WZ(X(1)+1,Y(1)-4)=0 THEN GOSUB 2910:E=0:RETURN
8240 IF X(1)>1 THEN IF WZ(X(1)-1,Y(1)-4)=0 THEN GOSUB 2900:E=0:RETURN
8245 E=0:RETURN
8250 IF WZ(X(1),Y(1)-2)=0 THEN GOSUB 2930:GOSUB 2930:E=1:RETURN
8260 IF WZ(X(1),Y(1)-4)=0 THEN GOSUB 2930:RETURN
8270 IF X(1)>1 THEN IF WZ(X(1)-1,Y(1)-4)=0 THEN GOSUB 2900:GOSUB 2930:RETURN
8280 IF X(1)<4 THEN IF WZ(X(1)+1,Y(1)-4)=0 THEN GOSUB 2910:GOSUB 2930:RETURN
8290 E=0:RETURN
8300 IF WZ(X(1)-1,Y(1))=0 THEN GOSUB 2910:E=1:RETURN
8310 IF Y(1)>1 THEN IF WZ(X(1)-1,Y(1)-2)=0 THEN GOSUB 2910:GOSUB 2920:RETURN
8320 IF Y(1)<19 THEN IF WZ(X(1)-1,Y(1)+2)=0 THEN GOSUB 2910:GOSUB 2930:RETURN
8330 IF Y(1)>1 THEN IF WZ(X(1)-2,Y(1)-2)=0 THEN GOSUB 2920:RETURN
8340 IF Y(1)<19 THEN IF WZ(X(1)-2,Y(1)+2)=0 THEN GOSUB 2930:RETURN
8345 E=0:RETURN
8350 IF WZ(X(1)-1,Y(1))=0 THEN GOSUB 2910:GOSUB 2910:E=1:RETURN
8360 IF WZ(X(1)-2,Y(1))=0 THEN GOSUB 2910:RETURN
8370 IF Y(1)>1 THEN IF WZ(X(1)-2,Y(1)-2)=0 THEN GOSUB 2910:GOSUB 2920:RETURN
8380 IF Y(1)<19 THEN IF WZ(X(1)-2,Y(1)+2)=0 THEN GOSUB 2910:GOSUB 2930:RETURN
8390 E=0:RETURN
8400 IF X(1)-X(S)=0 THEN 8450
8410 I=Y(1)*8:J=X(1)*16-16: FOR III=-1 TO 0
8415 FOR II=0 TO 7:LINE I+II,J,I+II,J+15,III^2:LINE I-II,J,I-II,J+15,III^2
8420 FOR JJ=1 TO 100:NEXT :NEXT :NEXT : GOTO 2940
8450 I=Y(1)*8-8:J=X(1)*16-8: FOR III=-1 TO 0
8455 FOR II=0 TO 7:LINE I,J+II,I+15,J+II,III*III:LINE I,J-II,I+15,J-II,III*III
8470 FOR JJ=1 TO 100:NEXT :NEXT :NEXT : GOTO 2940
8500 IF WZ(X(S),Y(S)+4)=0 THEN GOSUB 2930:GOSUB 2930:RETURN
8510 IF WZ(X(S),Y(S)+2)=0 THEN GOSUB 2930:RETURN ELSE RETURN
8600 IF WZ(X(S),Y(S)-4)=0 THEN GOSUB 2920:GOSUB 2920:E=0:RETURN
8610 IF WZ(X(S),Y(S)-2)=0 THEN GOSUB 2920:RETURN ELSE RETURN
8800 IF E=1 THEN 8400 ELSE 2050
9000 CLS:PRINT "①存档一","②存档二","③存档三","④存档四","⑤存档五";
9011 T$=INKEY$:IF (T$="b")+(T$="n")+(T$="m")+(T$="g")+(T$="h") THEN 9012 ELSE BEEP:9011
9012 GOSUB 10:LOCATE T,9:PRINT "保存中…";
9013 CLOSE #1:OPEN "DJFMJsave"+STR$(T) FOR OUTPUTAS#1
9020 WRITE #1,A,B,X,Y,MO,DJ,HP,HPP,MP,MPP,JY,JYZ,GGL,Q,R,M(1),N(1),QT,W,V
9040 FOR I=2 TO 6:WRITE #1,KP(I),KPP(I):NEXT
9050 FOR I=1 TO 6:WRITE #1,YPS(I):NEXT
9060 FOR I=1 TO 5:WRITE #1,X(I),Y(I),WZ(X(I),Y(I)):NEXT :CLOSE #1:GOSUB 9175:RETURN
9110 CLS:PRINT "①存档一","②存档二","③存档三","④存档四","⑤存档五";
9111 T$=INKEY$:IF (T$="b")+(T$="n")+(T$="m")+(T$="g")+(T$="h") THEN 9112 ELSE BEEP:9111
9112 GOSUB 10:LOCATE T,9:PRINT "载入中…";
9113 OPEN "DJFMJsave"+STR$(T) FOR INPUT AS#1
9120 INPUT #1,A,B,X,Y,MO,DJ,HP,HPP,MP,MPP,JY,JYZ,GGL,Q,R,M(1),N(1),QT,W,V
9140 FOR I=2 TO 6:INPUT #1,KP(I),KPP(I):NEXT
9150 FOR I=1 TO 6:INPUT #1,YPS(I):NEXT
9160 FOR I=1 TO 5:INPUT #1,X(I),Y(I),WZ(X(I),Y(I)):NEXT
9170 CLOSE #1:GOSUB 9175: GOTO 9180
9175 OPEN "FMYXZMAP" FOR RANDOM AS #1 LEN=128:FIELD #1,128 AS MAP$:RETURN
9180 RR=0:IF B=1 THEN 505 ELSE CLS:GOTO 2050
9200 CLS:PRINT "本程序由薛顺健开发设计,本着要把游戏做得更好的原则,但我的时间和精";
9210 PRINT "力有限,还望各位用户见谅!";:T$=INKEY$: GOTO 9300
9300 GET #1,56:CLS:PRINT MAP$;:GOSUB 9994
9320 T$=INKEY$:GOSUB 10
9325 IF T<1 OR T>6 THEN 9320
9330 I=1:ON T GOTO 9350,9360,9390,9500,9200,9800
9340 BEEP: GOTO 9320
9350 RETURN
9360 P=1:CLS:PRINT "*****";NA$(1);"的状态";"*****";: GOTO 9370
9365 T=ASC(INKEY$):IF T=20 OR T=21 OR T=27 THEN 9366 ELSE BEEP:9365
9366 IF T=20 THEN P=P-1:IF P=0 THEN BEEP:P=1:9365
9367 IF T=21 THEN P=P+1:IF P=3 THEN BEEP:P=2:9365
9368 IF T=27 AND I=1 THEN 9300 ELSE IF T=27 AND I=0 THEN 9900
9369 ON P GOTO 9370,9380
9370 LOCATE 2,1:PRINT SPC (69);
9371 LOCATE 2,1:PRINT "等级:";DJ;"级","经验:";JY;"/";JYZ,"体力:";HP;"/";HPP;
9375 GOTO 9365
9380 LOCATE 2,1:PRINT SPC (69);
9381 LOCATE 2,1:PRINT "法力:";MP;"/";MPP,"攻击力:";GGL,"金钱:";MO;
9385 GOTO 9365
9390 CLS:PRINT "①存档","②读档"
9391 T$=INKEY$:IF T$="b" OR T$="n" OR ASC(T$)=27 THEN 9392 ELSE BEEP:9391
9392 GOSUB 10:IF T=1 THEN GOSUB 9000: GOTO 9300
9393 IF T=2 THEN CLOSE #1: GOTO 9110
9394 IF ASC(T$)=27 THEN 9300
9400 CLS:PRINT "①";YP$(1);"×";:LOCATE 1,11:PRINT "④";YP$(4);"×";
9401 LOCATE 2,1:PRINT "②";YP$(2);"×";:LOCATE 2,11:PRINT "⑤";YP$(5);"×";
9402 LOCATE 3,1:PRINT "③";YP$(3);"×";:LOCATE 3,11:PRINT "⑥";YP$(6);"×";
9403 LOCATE 4,15:PRINT RW$(1);
9410 LOCATE 1,9:PRINT YPS(1);:LOCATE 1,19:PRINT YPS(4);
9411 LOCATE 2,9:PRINT YPS(2);:LOCATE 2,19:PRINT YPS(5);
9412 LOCATE 3,9:PRINT YPS(3);:LOCATE 3,19:PRINT YPS(6);
9415 T$=INKEY$:GOSUB 10
9416 IF T$=CHR$(27) THEN S=1:9490
9417 GXX(T)=GX(T):GXX(3)=HPP-HP:GXX(6)=MPP-MP
9418 IF T<4 AND HPP9419 IF T>3 AND MPP9420 IF YPS(T)=0 THEN BEEP:9415
9421 IF T>3 AND MP=MPP THEN LOCATE 5,1:PRINT AAA$(5);:BEEP:9415
9422 IF T<4 AND HP=HPP THEN LOCATE 5,1:PRINT AAA$(4);:BEEP:9415
9430 IF T>3 THEN PR$="法力+":MP=MP+GXX(T) ELSE PR$="体力+":HP=HP+GXX(T)
9460 YPS(T)=YPS(T)-1: FOR II=1 TO 0 STEP -1: FOR I=0 TO 9:CIRCLE 120,56,I,1,II
9470 FOR J=1 TO 100:NEXT :NEXT :NEXT :LOCATE 4,15:PRINT RW$(1);
9480 LOCATE 5,1:PRINT PR$;GXX(T);:T$=INKEY$:T$="Y"
9490 GOSUB 9994:RETURN
9500 GOSUB 9400: GOTO 9300
9800 CLS:PRINT " 程序设计:薛顺健 E-mail:wqstar028@mai l.china.com"
9810 PRINT " QQ:12068232 有空请和我联系!";
9820 T$=INKEY$:BOX 0,0,160,80,1,2:FOR I=1 TO 2000:NEXT:FOR I=0 TO 80
9821 BOX I,I/2,160-I,80-I/2,0,0:FOR J=1 TO 50 :NEXT:NEXT
9825 CLS:LOCATE 2,7:PRINT "谢谢使用!":LOCATE 3,9:PRINT "再见!"
9830 FOR I=1 TO 4000:NEXT:POKE 199,155
9900 GET #1,55:CLS:PRINT MAP$;:LOCATE 5,16:PRINT " ";:I=0
9910 T$=INKEY$:GOSUB 10:ON T GOTO 9920,9360,9930,9800:BEEP: GOTO 9910
9920 GOSUB 9994:RETURN
9930 GOSUB 9000: GOTO 9900
9994 LOCATE 5,1:PRINT " ";:RETURN
9995 GET #1,R+1
9996 LOCATE 1,1:PRINT MAP$;:LOCATE X(1),Y(1):PRINT RW$(1);: FOR J=2 TO 5:IF KP(J)=0 THEN 9998
9997 LOCATE X(J),Y(J):PRINT NPC$(J);
9998 NEXT :IF R=INT(R/5)*5 THEN WZ(3,19)=6
9999 RETURN


说到RPG的话,BBK上有个完成度还行的
http://kfxsmxd.5d6d.com/bbs.php

想怀旧的话,还有古物Apple][,不过自己是没有经历到那么久远的事情。
SuperCard和QBasic/VB6是什么已经没有人在意了。

不过现在这年头,拿Scratch或者PyGame或者Processing都不算复杂的事情,还天生跨平台。

不过多少这些也只是小群体的自娱自乐罢了。

说到RPG的话,当行为和氛围一致的时候是最有感觉的。哪怕仅仅是路过一片风景,也有其中蕴含的情感。 一路上考虑人物的培养和行动的选择与策略以及人物之间内心和态度的发展。
----
好吧,我想到 FF7/10 和 sola 了,当然风格和类型是不限于此了。

【挖一挖】levelup.cn的论坛ACG小说版的某些内容

去年的时候从bingj.com的页面存档里挖出来的,现转过来做纪念。
挖取的目标是http://archive.bbs.levelup.cn/showforum-67-(\d+).aspx
挖取的结果是http://www.uudisc.com/group/10240/topic/37165
以下的便是当初挖取结果的内容,不过那里也快挂了。
话说levelup也出过此方面的杂志,也已经早早的挂了,仅还可以搜索到目录。

[轻小说]《月兔的银色方舟》作者:[日]鴨志田一
[轻小说]《白山同学与黑色手提袋》第一卷 作者:[日铃木铃
[轻小说]《攻壳机动队——宇宙生化人》作者:[日]远藤明范
[游戏小说]《水仙》全一卷 作者:[日]片冈とも
[轻小说]《がく×ぶる》(第一卷)作者:[日]本田 透
[杂书?]《征服世界有可能的吗》作者:[日]冈田斗司夫
[轻小说]《莱茵河的囚徒》作者:[日]田中芳树
雛形
[轻小说]《杀×爱》作者:风见周(0~4)
[轻小说]《魔女宅急便》作者:角野荣子(全)
[轻小说]《新本格魔法少女莉丝佳》作者:西尾维新(1~2)
[輕小說]《狼與辛香料》作者:[日]支仓冻沙 (13+短篇)12/17更新
[轻小说] 《文学少女》作者:野村美月 (1-8+短篇 完)12/17日更新
[轻小说]《仰望半月的夜空》作者:桥本纺 (1-8卷+2短篇完结)
[轻小说]《离别的钢琴奏鸣曲 1~2》作者:杉井光 12/9更新第2卷
[轻小说] 这本轻小说真厉害!2009年前10名作品集合!
[轻小说]《超人家族一家和乐!? 》作者:桥本和也 (1~4)12/9更新第4卷
[轻小说]《电波系彼女 三卷全》作者:片山宪太郎
[轻小说]《冰箱上的洞》作者:KOMUGI
[轻小说]《初恋魔法电击》作者:明日香正太(1-9完整版 未完)
[排行榜] 这本轻小说真厉害2010
[轻小说]《电波男》作者:本田透(适合宅人群= =)
求书~~~~知道三毛的进来哈
[轻小说]《魔法少女奈叶》作者:都筑真纪(全)
[日本小说]《人间失格》作者:太宰治
[遊戲劇本]《真月譚月姬》作者:[日]奈须きのこ (完整版)
[遊戲小說]《格蘭蒂亞》作者:[日]細江ひろみ
[轻小说]《圣魔之血长篇+短篇》 作者:吉田直在
[轻小说] 《便·当 味噌炖青花鱼290元》作者:朝浦(第1卷未完)
[輕小說]《百花缭乱》作者:すずきぁきら(2卷未)11/30更新
[轻小说]《影≒光 Shadow Light》作者:影名浅海 (1~5)
[游戏相关] 《潜龙谍影 - Metal Gear Solid 官方小说》
[轻小说]《银盘万花筒》作者:海原零 (1~9)
[推理侦探]《白夜行》作者:东野圭吾
[轻小说]《神样家族》作者:桑岛由一 (1~7)
[合集小说]乙一作品集[共32篇]
[轻小说]《风之圣痕》作者:山门敬宏(1~6+短篇)
[轻小说]《空罐少女!》作者:蓝上陆/铃平ひろ (1~4)
[轻小说]《骷髅恋人》作者: 平坂读(1~5)
[轻小说]《眼镜男与断头少女》作者: 藤原祐 (1~2)
[妖怪小说]《巷说百物语》作者:京极夏彦(1~4完结)
[国产轻小说]《長安幻夜》原作:面堂兄 漫画:韩露(漫友人气连载)
[輕小說]《虚轴少女ResinCastMilk》作者:[日]藤原佑(1-5)
[漫画改编]《黑血》 原案/漫画:赵佳
[輕小說]《触摸魔女》作者:[日]镜裕之
银河铁道之夜
哈里7:哈里波特与死圣
[遊戲相關]《Tales of Symphonia 拉塔特斯克的骑士 世界之愿》作者:[日]矢島さら
[輕小说] 《乃木坂春香的秘密》作者:[日]五十岚雄策(10卷)11/09更新

[輕小說]《IS》作者:[日]弓弦イズル
[轻小说]《电波女与青春男01》作者:入间人间
[轻小说]《奇诺之旅》作者:时雨泽惠一(1-12+外+PS2剧本)11/6更新
[动漫相关]《云之彼端约定之地》 原作:新海诚
[轻小说]《打工魔法师》作者:椎野美由贵 (1~8)10/25更新第8卷
给寺院拍照 照片出来后我惊呆了(恐怖)
[輕小說]《Campione!神不值得信奉》作者:[日]丈月城
[轻小说]《灼眼的夏娜 》作者:高桥弥七郎 10/21更新19卷
[轻小说]谷川流作品集(部分附插画),纳米盘
[推理小说]《魔术的耳语》作者:宫部美雪
[轻小说]《亲亲坏老爹》作者:野村美月(1-4卷)9/22更新
[畅销经典]《肖申克的救赎》作者:斯蒂芬·金
[轻小说]《听到涛声》作者:冰室冴子(1~2+番外篇)
[轻小说]《MAMA》作者:红玉ぃづき
[推理小说]《猎捕史奈克》作者:宫部美雪
[轻小说]《超妹大战》作者:古桥修之(1~2)
[动漫相关]《名侦探柯南 江神原的魔女》 作者:平良隆久
[推理小说]《火车》作者:宫部美雪
[轻小说]《幻影父亲》作者:深泽美潮
[輕小說]《Resin Cast Milk 虚轴少女的日常》作者:[日]藤原佑
[轻小说]《吊线木偶症候群》作者:乾久留美
[轻小说]《不適合少女的職業》作者:櫻庭一樹
[轻小说]《镇魂练习曲》作者:北泽大辅 (1~3)
[动漫相关]《L改变世界 洛杉矶BB连续杀人案件》作者:西尾维新
[动漫小说] 《反逆的鲁路修官方小说朱之轨迹》作者:岩佐守(完)
[动漫相关]《空中杀手》作者:森博嗣 (完)
[2009]这本轻小说最厉害TOP50!
[轻小说]《在暗夜中寻找羔羊》作者:穗史贺雅也 (1~3完结)
[輕小說]《我甜蜜的苦涩委内瑞拉》作者:[日]森田季节
[輕小說]《机巧魔神》作者:[日]三雲岳斗
[輕小說]《東京吸血鬼金融》作者:[日]真藤順丈
[輕小說]《闲狼作家是美少女妖怪?》作者:[日]杉井光
[輕小說]《梅格&賽隆》作者:[日]时雨泽惠一
[轻小说]《盖棺论定!》作者:文冈あちら
[剧情小说]《流行之神》作者:不详
[轻小说]《凛子与昭介の故事&Yaorozu》作者:土塀赋之 古户真智子
[轻小说]《此处前方是荒野》作者:水无神知宏
[轻小说]《串刺少女》作者:木村航 (1~3完结)
[輕小說]《幸运机会!》作者:[日]有泽真水
《精子战争》
两本工具书:完全复仇手册,完全失踪手册
[推理小说]《他人事》作者:平山梦明
[遊戲相關]《命运传奇 命运传承者》作者:[日]矢島さら(上下全)9/19更新
[轻小说]《心灵侦探八云》作者:神永学 (1~2)
[惊悚小说]《ZOO》作者:[日]乙一
[轻小说]《疾走!青春期的帕拉贝伦》作者:深见真(1~2)
[推理小說]《狂骨之夢》作者:[日]京极夏彦(上下全)
[轻小说]《MM一族》作者:松野秋鸣(1-8未) 9/12更新
[轻小说]《9S》作者:[日]叶山透(1-9+Memories+SS,未完结)
[短篇轻小说]《辉石之花》作者:河屋 一

[轻小说]《七人武器店》(1-2)作者:[日]大乐绚太(未完结)
[轻小说]《魔法战士李维》作者:[日]水野良(未完结)
[轻小说]《春季限定草莓塔事件》作者:米泽穗信
[推理小说]《铁鼠之槛》作者:京极夏彦
[輕小說]《學生會的日常》作者:[日]葵せきな(1卷未)
[资料收集]英雄无敌生物背景考究
[輕小說]《佰物語》广播剧全对话翻譯. 作者:[日]西尾維新
[轻小说]《壳中少女》作者:冲方丁(全)
[科幻军事]《光晕》(1~4全)作者:[美] 埃里克·尼伦德&威廉·C·迪茨 [中
[轻小说]《终焉的年代记》作者:川上稔(1-3上 未完) 8/24更新
《灵异知识普及资料》作者:不详
[轻小说]《在遙遠彼方的小千》作者:日日日(全一卷)
[轻小说]《拯救你的最初咒语》作者:须堂项(1~2未完)
[轻小说]《捨棄在八月的路上》作者:伊藤たかみ(全一卷)
[幻想小说]《妖藩记鬼剑众》作者:菊地秀行
[剧情小说]《最终幻想VI》 作者:不详
[官方小说]《怪物猎人2G魂之继承者1-5》 作者:冰上惠一
[轻小说]《神灯女仆1-4》作者:夏绿
[奇幻经典]被遗忘的国度系列(包含部分英文原著)更新《血脉+无星之夜》
[游戏相关]《秋之回忆1-3+从今以后》 作者:不详
[轻小说]《七姬物语1-4》作者:高野和
[轻小说]《狂恋声优宝贝》作者:木本雅彦
[轻小说]《彈珠汽水》作者:[日]鴻野貴光 (全一卷)
[輕小說]《小齒輪!》作者:[日]樋口司
[热门小说]《凉宫春日的忧郁》作者:谷川流
【科幻】《光晕三部曲》 作者:[美] 埃里克·尼伦德 威廉·C·迪茨
[轻小说]《女帝·龍凰院麟音的初恋 第一卷》作者:[日]风见周
[动漫相关]《晴空之Air1-6》作者:不详
[轻小说]《学校的阶梯》作者:櫂末高彰 (1~9+短篇 未完)8/8更新
[剧情小说]《寄生前夜2》作者:不详
强烈推荐《战神
[轻小说]《神样灵感少女+传说灵感少女》作者:松原真琴/小畑健(8/1更新完结)
城寨书房版规
电子书资源获取流程及阅读、排版工具
[轻小说]《抱歉咯?二之宫同学》作者:铃木大辅(1卷未)
求书求助专贴
[轻小说]《重回那天》作者:健速(全一卷)
[灵异小说]《怪谈新耳袋》 作者:木原浩胜、中山市朗
[轻小说]《请别忧伤了,二之宫君1-10全》作者:钤木大辅
[轻小说]《流星慢舞》作者:桥本纺
【奇幻】《被遗忘的国度》系列:伊尔明斯特之旅
[轻小说]《放学后的征服世界》作者:わかつきひかる
[短篇轻小说]《可疑的少女与危险的少年》作者:深见真
[轻小说]《新罗德斯岛战记》作者:【日】水野良(全)
[轻小说]《七都市物语 (全)》作者:田中芳树
[轻小说]《XXXHOLIC兰德尔特环的粉尘]》作者:西尾维新
[动漫相关]《L改变世界+外传》 作者:西尾维新
[轻小说]《Black Blood Brother》作者:あざの耕平(1-5+外) 7/7更新
[轻小说]《郭德堡变奏曲》作者:五代ゆぅ
[轻小说]《逃离学校!》作者:谷川流

[轻小说]《郭德堡变奏曲》作者:五代ゆぅ
[轻小说]《逃离学校!》作者:谷川流
[轻小说]《电击!!神盾5少女》作者:谷川 流 (1~2 全)
[轻小说]《铁拳灵感少女》作者:松原真琴/小畑健
[游戏相关]《潜龙谍影4官方小说 下》(已完结)作者:伊藤计划
[轻小说]《我的亲爱主人!?》作者:鹰野佑希(1-5完) 7/4更新
[轻小说]《斩鬼夜鸟子1-3》作者:树田省治
[轻小说]《单恋的麒麟1-2》 作者:志村一矢
[轻小说]《神曲奏界 異色協奏》作者:淺井ラボ、あざの耕平、神野奧那、三田誠
[轻小说]《欢迎来到NHK!》作者:滝本竜彦
[短篇小说]《月之雨物语》作者:古茶(全)
[轻小说]《云霄飞车》作者:山田悠介(全)
[轻小说]《某一天,炸弹从天而降》作者:古桥秀之 (全)
[游戏小说]《最终幻想Ⅶ~On the way to a smile》( 那那岐篇 神罗篇 尤菲篇)
[轻小说]《罗德岛战记+罗德岛传说+新罗德斯岛战记》 作者:水野良
[轻小说]《替身伯爵系列 1》作者:清家未森
[轻小说]《天空之钟 响彻惑星》作者:渡濑草一郎(1-9)
皆杀的田中芳树!二十枚入~
[轻小说]《晴空之下,突然……(全)》作者:田中芳树
[轻小说]《自卫队三部曲第一部 盐之街》作者:有川浩
[恐怖小说]《第十三种人格的恐怖》作者:贵志祐介
[轻小说]《虚轴少女1-5 Resin Cast Milk》作者:藤原祐
[轻小说]《虫之歌》作者:岩井恭平(9卷+BUG系列+外传)
[轻小说]《我的爱马很凶恶》作者:新井辉
[轻小说]《Bad!Daddy 亲亲坏老爹1-3》作者:不詳
[畅销小说]《天竺热风录》作者:田中芳树(波澜壮阔的盛唐再现)
[轻小说]《三月.七日》作者:森桥ビソゴ (1~2 全)
[轻小说]《本格推理委员会》作者:日向正道 (全)
[动漫相关]《闪光的哈萨维》 作者:不详
[轻小说]《绯弹的亚里亚1~3》作者:赤松中学
[轻小说]《战斗司书与虚言者的宴会 》作者:山形石雄
[日本科幻]《寄生前夜》作者:濑名秀明
[游戏剧本]《最终幻想X-2外传 你所吹响的口哨》作者:ベニー松山
阴阳师第①-⑧卷全集》作者:[日]梦枕貘 TXT
[短篇轻小说]《夏天,真纪子与MD-WalkMan的故事》作者:紅玉いづき
[轻小说]《幽灵恋人1~4》作者:平坂 读
[轻小说]《一切终将远去》作者:山本文绪
[轻小说]《幽灵少女与科学少年1~2》作者:飞田甲
[轻小说]《烟囟町的赤魔与绝望少年 1 》作者:ゆうきりん
[推理小说]《“犀川&萌绘”系列》作者:森博嗣 (1~2未完)
[轻小说]《虎跃龙笑 狮王争霸!》作者:嬉野秋彦 (1~2未完)
[推理小说]《姑获鸟之夏》作者:京极夏彦
[轻小说]《消极的快乐、电锯的边缘》作者:泷本龙彦 (全)
[轻小说]《快打城市 slum online》作者:樱坂洋
[轻小说]《ALL YOU NEED IS KILL》作者:樱坂 洋
[轻小说]《青叶君与宇宙人1~3》作者:松野秋鸣
[轻小说]《加速世界 第一卷》作者:不詳
[轻小说]《吉永家的石像怪1-11》作者:田口仙年堂
[轻小说]《无头骑士异闻录 DuRaRaRa!!1-2》作者:成田良悟
[流行小说]药师寺凉子怪奇事件簿(1~7卷) 作者:田中芳树

[轻小说]《莉莉亚&特雷兹》作者: 时雨泽惠一 (全)
[游戏相关]《寂静岭》 作者:山下定
[动漫相关]《战斗妖精·雪风》 作者:神林长平
[輕小說]《抽签勇者1-8》 作者:清水文化
[动漫相关]《今日起是魔王17-20》 作者:乔林 知
[轻小说]《DoubleDown—以小博大的勘缲郎》作者:西尾维新(全)
[轻小说]《艾莉森》作者: 时雨泽惠一 (全)
[轻小说]《自卫队三部曲第二部 空之中》作者:有川浩(全)
[轻小说]《淑女骑士团 Lady General》作者:千田诚行(未完)
[动漫相关]《君吻》作者:日暮茶坊 (未完)
[架空都市]《波罗的海复仇记 (全)》作者:田中芳树
[架空都市]《梦幻都市(全)》作者:田中芳树
[轻小说]《黑龙潭异闻 短篇集(全)》作者:田中芳树
[历史傳记]《海嘯》作者:田中芳树
[轻小说]《狂乱家族日记》作者:日日日
[轻小说]《钢铁白兔骑士团》作者:舞阪洸 (1-6卷未完)5/31日更新
[日系耽美]《三千世界鸦杀1-13+番外前传+090601更新丧神之碑》 作者:津守时生
[轻小说]《复仇之虎(全)》作者:田中芳树
[轻小说]《风翔万里 (全)》作者:田中芳树
[轻小说]《绞缬城绮谭(全)》作者:田中芳树
[轻小说]《灼热的龙骑兵(3本全)》作者:田中芳树
[轻小说] 《圣诞节的恐怖分子》作者:佐藤友哉(全一卷)
[轻小说]《神的记事本》作者:杉井光(1-3卷未完)
[历史傳记]《奔流》作者:田中芳树
[历史傳记]《红尘》作者:田中芳树
[動漫相关]《星之声》作者:新海诚
[影视相关]《变形金刚电影版 前傳 昨日幽靈 》作者:不詳
[轻小说]《我的狐仙女友1-4》 作者:西野胜海
[剧情小说]《潜龙谍影4爱国者之枪》作者:不详
[轻小说]《你我崩坏的世界》作者:西尾纬新
[轻小说]《DDD》作者:奈须きのこ(1-2卷未完)
[轻小说]《侵略少女与谎言庭院》作者:清水マリコ(1卷全)
[轻小说]《公主+天国》作者:風見周(第1卷未完)
[推理小说] 《秋叶原@DEEP》作者:石田衣良 (全)
[动漫相关]《PHANTOM OF INFERNO 无间地狱》作者:虚渊玄
[轻小说]《战斗司书 1-7》作者:山形石雄
[轻小说]《碧阳学园学生会议事錄1-3+外傳》作者:葵せきな
[轻小说]《伊里野的天空 UFO的夏天》作者:秋山瑞人(1-4+短篇 全)
[动漫小说] 《魍魉之匣》 作者:京极夏彦(全)
[轻小说]《黑猫1-2》作者:大崎知仁
[轻小说]《我的世界守护者》作者:谷川流
[轻小说]《轻小说的快乐写法》作者:本田透
[轻小说]《学院人体练金术 一卷全》作者:筱崎一夜
[官方小说]《女神侧身像 希尔梅丽娅2》作者:梅村崇 翻译:YULA、翔月
[轻小说]《伯爵与妖精11-16+短篇》 作者:谷瑞惠
[轻小说]《临界杀机》作者:神崎紫电(1-2未完)
[轻小说]《魔法目录》作者:鎌池和马 (1-8卷)
[轻小说] 《空之轨迹长篇同人 炎の轨迹》作者:夏木の友人帐
[動漫相關]《女王之刃 独角兽之剑》 作者:冲田荣次
[轻小说]《惡女來敲門》作者:织田兄第

[轻小说]《高校女仆警察1-4》作者:沢上水也
[轻小说]《风之圣痕 1-6卷+外传》作者:山门敬弘(靈異類)
[官方小说]《JOJO的奇妙冒险》 作者:乙一
[动漫相关]《灼眼的夏娜17、18》作者:高桥弥七郎
[轻小说]《狼与辛香料》作者:支仓冻砂 (1-10卷)
[轻小说]《绝望的世界1~腐蚀篇》作者:宫谷俊二
[轻小说]《永生之酒》作者:成田良悟(1-6未完)
[轻小说]《对某个飞行员的追忆》 作者:犬村小六 翻译:demongod
[人物传记]《德川家康》 作者:山冈庄八
[剧情小说]《零~月蚀的假面》 作者:不详
[官方小说]《失落的奥德赛 番外 塞丝、敏篇》作者:重松清 翻译:夜蓝
[游戏剧本]《奥丁领域》 作者:不详(DOC下载 慎入!)
[剧情小说]《聖女之歌》作者:不详
[同人小说]《恶魔城 审判 时之缝隙》 作者:有须hideki
[游戏剧本] 《CLANNAD》中文剧本 作者:不详
[剧情小说]《合金装备》作者:不详
[剧情小说]《晓之女神》作者:不详
[剧情小说]《莎木》作者:不详
[军事小说]《环形世界》作者:菲立普·狄克(光环原案)
[动漫小说] 《女王之刃》TV版很黄很暴力 作者:不知道 (1-3未完)
[轻小说]《月兔公主》 作者:野村美月
[轻小说] 《扉之外~the outside of door》 作者:土桥真二郎(1-3全)
[剧情小说]《王国之心2》作者:不详
[剧情小说]《荒野兵器4 上》作者:不详
[剧情小说] 《王国之心Ⅱ》序章剧情小说 作者:LightLucifer
[官方小说]《战国basara2》作者:不详
[轻小说]《新橙路》作者:松本泉 寺田宪史
[轻小说]《银之镇魂歌》作者:吉原理惠子
[动漫相关]《苍穹之巨龙》 作者:冲方丁
[动漫相关]《钢壳都市雷吉欧斯1-7+番外》 作者:雨木シュウスケ
[中文剧本]《最终幻想战略版》 作者:天幻
[剧情小说]《银河游侠》 作者:不详
[动漫相关]《今日起是魔王1-16》 作者:乔林 知
[动漫相关]《最终兵器彼女 全》 作者:不详
[游戏相关]《最终幻想11 官方小说-守护之剑》 作者:不详
[D&D]《时光之轮:世界之眼1-5》作者:罗伯特·乔丹
[剧情小说]《大神》作者:不详
[轻小说]《图书馆战争1~4全》 作者:有川 浩(09年2月2更新番外)
[官方小说]《女神侧身像 两卷全》 作者:梅村崇
[游戏小说]《北欧女神》作者:不详
[游戏小说]《女神侧身像 希尔梅丽娅》 作者:不详
[动漫相关]《天是红河岸 外传 魔之时代的黎明》 作者:筱原千绘
[轻小说]《我家有个狐仙大人1-6》作者:柴村仁 译者:张信儀
[动漫相关]《攻壳机动队 宇宙生化人》 作者:远藤明范 翻译:赵玲
[轻小说]《寒蝉鸣泣之时1-5》作者:龙骑士07
[动漫相关]《真·天地无用_魉皇鬼1-2》 作者:不详
[轻小说]《风之大陆1-9》作者:河竹圣
[轻小说]《黑执事 上》作者:不详
[官方小说]《宿命传说 苍黑的追忆》原作:矢島さら 翻译:子云
[轻小说]《悖德之城 (全)》作者:桑原水菜


此外,还有 个城寨书房 的 全区资源索引帖 ,放在下面:
A
[轻小说]《艾莉森》作者: 时雨泽惠一 (全)
[轻小说]《阿妮丝与爱摆臭脸的魔法使》1-3卷 作者:[日]花房牧生
[轻小说]《ALL YOU NEED IS KILL》作者:樱坂 洋 (全)
[轻小说]《莉莉亚&特雷兹》作者: 时雨泽惠一 (全)
[游戏相关]《奥丁领域 古温托丽篇》作者:不详
[游戏剧本]《奥丁领域》 作者:不详(DOC下载 慎入!)

B
[轻小说] 《便·当 味噌炖青花鱼290元》作者:朝浦(第1卷未完)
[轻小说]《白山同学与黑色手提袋》第一卷 作者:[日铃木铃
[推理侦探]《白夜行》作者:东野圭吾
[轻小说]《不適合少女的職業》作者:櫻庭一樹
[轻小说]《凛子与昭介の故事&Yaorozu》作者:土塀赋之 古户真智子
[輕小說]《佰物語》广播剧全对话翻譯. 作者:[日]西尾維新话
[轻小说]《冰箱上的洞》作者:KOMUGI
[轻小说]《抱歉咯 二之宫同学》作者:铃木大辅(1卷未)
[輕小說]《百花缭乱》作者:すずきぁきら(1卷未)
[轻小说]《本格推理委员会》作者:日向正道 (全)
[轻小说]《Black Blood Brother》作者:あざの耕平(1-3+外)
[架空都市]《波罗的海复仇记 (全)》作者:田中芳树
[历史傳记]《奔流》作者:田中芳树
[影视相关]《变形金刚电影版 前傳 昨日幽靈 》作者:不詳
[轻小说] 《笨蛋,测验,招唤兽》 作者:井上坚二 (1-5+外传 未完)
[游戏小说]《北欧女神》作者:不详
[轻小说]《悖德之城 (全)》作者:桑原水菜
[游戏相关]《薄暮传说剧情小说》 作者:沙下夜雪
[奇幻经典]《被遗忘的国度系列(包含部分英文原著)》更新《血脉+无星之夜》
[官方小说]《瀞灵庭的阴谋之秋 》作者:不详
[动漫相关]《Black Blood Brothers S1》作者:あざの耕平
[日本文学]《白夜的吊钟》 作者:田中芳树
[轻小说]《伯爵与妖精1-10》 作者:谷瑞惠
[轻小说]《伯爵与妖精11-16+短篇》 作者:谷瑞惠
[奇幻合集]《被遗忘国度—短篇集》 作者:[美]R·A·萨尔瓦多
[轻小说]《伯爵与妖精》作者:谷瑞惠(日)(1-7卷,同名动漫原著)
[资料典故]《本能寺三劫之变的传说》作者:青树秀吉
[奇幻合集]《被遗忘国度》系列:伊尔明斯特之旅
C
[游戏剧本] 《CLANNAD》中文剧本 作者:不详
[动漫相关]《出包王女 危险的闺房私语》作者:[日]若月光
[动漫相关]《初恋限定 冬季写真》作者:[日]平林佐和子
[輕小說]《创立!?三星学生会》作者:[日]佐々原史绪
[游戏小说]《尘骸魔京》作者:[日]海法纪光
[轻小说]《超钢女雪拉》1~9未完+番外 作者:寺田とものり
[轻小说]《菖蒲的少女革命!》第一卷 作者:[日]志茂文彦
[輕小說]《触摸魔女》作者:[日]镜裕之
[轻小说]《超妹大战》作者:古桥修之(1~2)
[轻小说]《此处前方是荒野》作者:水无神知宏
[轻小说]《超人家族一家和乐!? 》作者:桥本和也 (1~3)
[轻小说]《串刺少女》作者:木村航 (1~3完结)
[轻小说]《春季限定草莓塔事件》作者:米泽穗信 (1+解说)
[轻小说]《重回那天》作者:健速(全一卷)
[轻小说]《初恋魔法电击》作者:明日香正太(1-9完整版 未完)
[轻小说]《虫之歌》作者:岩井恭平(9卷全+BUG系列+外传)
[輕小說]《抽签勇者1-8》 作者:清水文化
[动漫相关]《苍穹之巨龙》 作者:冲方丁
[畅销小说]《创龙传1-13卷》作者:田中芳树
[剧情小说]《超级机器人大战OG》作者:不详
[轻小说]《彩云国物语1-14+番外+特典+外传》 作者:雪乃纱衣
[轻小说]《铳姬1-4》作者:高殿円
[轻小说]《传说中勇者的传说1-4+外传 总而言之的传勇传1-2》作者:镜贵也
[动漫相关]《超时空要塞 边界》官方小说第1、2卷 作者:小太刀右京
[轻小说]《纯情罗曼史》 作者:藤崎都(BL,慎入)
[剧情小说]《重生传说》作者:卡伦
[轻小说]《虫师官方小说》 原作:漆原友纪 脚本:大友克洋
[国轻小说]《長安幻夜》原作:面堂兄 漫画:韩露(漫友人气连载)
[轻小说]《穿越时空的少女》作者:筒井康隆(短篇全)
D
[轻小说]《单恋的麒麟1-2》 作者:志村一矢
[轻小说]《电波女与青春男01》作者:入间人间
[轻小说]《吊线木偶症候群》作者:乾久留美
[輕小說]《刀語》作者:[日]西尾維新(未完)
[輕小說]《東京吸血鬼金融》作者:[日]真藤順丈
[轻小说]《彈珠汽水》作者:[日]鴻野貴光 (全一卷)
[轻小说]《电波系彼女 三卷全》作者:片山宪太郎
[恐怖小说]《第十三种人格的恐怖》作者:贵志祐介
[轻小说]《打工魔法师》作者:椎野美由贵 (1~6)
[轻小说]《电波男》作者:本田透(适合宅人群= =)
[轻小说]《DoubleDown—以小博大的勘缲郎》作者:西尾维新(全)
[轻小说]《DDD》作者:奈须きのこ(1-2卷未完)
[轻小说]《对某个飞行员的追忆》 作者:犬村小六 翻译:demongod
[动漫相关]《地狱少女-彼岸花》作者:天羽沙夜
[畅销小说]《达·芬奇密码、天使与魔鬼、数字城堡、骗局》 作者:丹·布朗
[剧情小说]《大神》作者:不详
[台湾戏剧]《大霹雳》 作者:不详
[侦探推理]《东野圭吾推理小说合集》作者:东野圭吾
[人物传记]《德川家康》 作者:山冈庄八
[人物传记]《德川家康》 作者:[曰]松本清张 译者:高仁
E
[游戏小说]《恶魔城 审判 时之缝隙》 作者:有须hideki (未完待译)
[轻小说]《恶魔同盟》作者:うえお久光 (1~5)
[轻小说]《惡女來敲門》作者:织田兄第

F
[动漫小说] 《反逆的鲁路修官方小说朱之轨迹》作者:岩佐守(完)
[轻小说]《风之圣痕》作者:山门敬宏(1~6+短篇)
[轻小说]《放学后的征服世界》作者:わかつきひかる
[轻小说]《绯弹的亚里亚1~3》作者:赤松中学
[轻小说]《复仇之虎(全)》作者:田中芳树
[轻小说]《风翔万里 (全)》作者:田中芳树
[轻小说] 《扉之外~the outside of door》 作者:土桥真二郎(1-3全)
[轻小说]《风之大陆1-9》作者:河竹圣
[轻小说]《风之圣痕》第一卷 作者:山门敬弘
[轻小说]《废气公主》作者:榊一郎
[轻小说]《FATE ZERO》
G
[轻小说]《公主+天国》作者:風見周(第1卷未完)
[轻小说]《攻壳机动队——宇宙生化人》作者:[日]远藤明范
[遊戲小說]《格蘭蒂亞》作者:[日]細江ひろみ
[轻小说]《钢铁白兔骑士团》作者:舞阪洸 (1-6卷未完)5/31日更新
[轻小说]《盖棺论定!》作者:文冈あちら
[轻小说]《管家后宫学园》作者:上月司 (1卷未)
[推理小说]《姑获鸟之夏》作者:京极夏彦(京极堂系列01)(世界上没有不可思议的事)
[轻小说]《高校女仆警察1-4》作者:沢上水也
[动漫相关]《攻壳机动队 宇宙生化人》 作者:远藤明范 翻译:赵玲
[动漫相关]《高达系列八部合集》
[动漫相关]《钢壳都市雷吉欧斯1-7+番外》 作者:雨木シュウスケ
[轻小说]《钢壳都市雷吉欧斯》作者:雨木シュウスケ (1-8+外,前传,短篇 未完)
[轻小说]《钢壳都市雷吉欧斯》作者:雨木シュウスケ (1-8+外,前传,短篇 未完)
[游戏相关]《光明之泪 双龙骑士》 作者:加纳新太
[游戏相关]《薄暮传说剧情小说》 作者:沙下夜雪
[灵异小说]《怪谈新耳袋》 作者:木原浩胜、中山市朗
[动漫相关]《钢の錬金术师》作者:井上真
[游戏相关]《光明之泪 双龙骑士》 作者:未知
[动漫相关]《高达W外传 左手持镰,右手拥你》 作者:皆川由佳
[动漫相关]《高达OO P(前传)第一卷》 作者:矢立肇
[官方小说]《高达00之二 捕获高达》作者:木村畅
[官方小说]《高达00 天人组织》作者:木村畅
[游戏相关]《鬼泣4剧情小说》 作者:不详
[游戏相关]《鬼哭街》 作者:虚渊玄
[轻小说] 《谷川流作品集》(部分附插画),纳米盘
[畅销小说]《鬼吹灯Ⅱ之黄皮子坟&南海归墟&怒晴湘西&巫峡棺山》(全)作者:天下霸唱
[畅销小说]《鬼吹灯精绝古城&龙岭迷窟&云南虫谷&昆仑神宫》作者:天下霸唱
[官方小说]《怪物猎人官方小说1~4》作者:ゆうきりん
[科幻军事]《光晕》(1~4全)作者:[美] 埃里克·尼伦德&威廉·C·迪茨
[科幻军事]《光晕三部曲》 作者:[美] 埃里克·尼伦德 威廉·C·迪茨
H
[轻小说]《虎跃龙笑 狮王争霸!》作者:嬉野秋彦 (1~2未完)
[輕小說]《欢迎你!美少女游戏的世界》作者:[日]田尾典丈
[推理小说]《黑死馆杀人事件》作者:小栗虫太郎(日本推理四大奇书)
[轻小说]《欢迎来到血吸村》第一卷 作者:[日]阿智太郎
[轻小说]《幻兽少年》1-2卷 作者:[日]梦枕貘
[推理小说]《火车》作者:宫部美雪
[轻小说]《幻影父亲》作者:深泽美潮
[短篇轻小说]《辉石之花》作者:河屋 一
[轻小说]《黑魂少女》作者:[日]上月雨音(未完结)
[輕小說]《化物語》作者:西尾維新(上卷未)
[轻小说]《紅》作者:片山憲太郎
[历史傳记]《红尘》作者:田中芳树
[轻小说]《 黄昏色的咏使》作者:细音启(1-6卷)
[历史傳记]《海嘯》作者:田中芳树
[轻小说]《黑龙潭异闻 短篇集(全)》作者:田中芳树
[轻小说]《黑猫1-2》作者:大崎知仁
[军事小说]《环形世界》作者:菲立普·狄克(光环原案)
[轻小说]《欢迎来到NHK!》作者:滝本竜彦
[剧情小说]《合金装备2》作者:不详
[剧情小说]《荒野兵器4 上》作者:不详
[轻小说]《黑执事 上》作者:不详
[日系耽美]《海盗风云》作者:松冈夏树
[轻小说]《寒蝉鸣泣之时1-5》作者:龙骑士07
[轻小说]《寒蝉鸣泣之时》 鬼隐篇作者:龙骑士070
[日本文学]《红蔷薇新娘1-3》 作者:田中芳树
[游戏相关]《火焰之纹章 暗黑龙与光之剑》 作者:不详
[漫画改编]《黑血》 原案/漫画:赵佳
[游戏相关]《幻想传说 沉寂的历史》原作:祭紀 りゅーじ 翻译:子云、清雨
[动漫相关]《《横行霸道4(GTA4)》剧情小说》作者:不详
[英国童话]《哈尔的移动城堡中英两版》作者:DianaWynneJones
[奇幻合集]《哈利·波特全集》(HTML格式电子书全7本中文合辑收藏版)[附下载]
[畅销小说]《黑质三部曲 黄金罗盘&魔法神刀&琥珀望远镜》作者:菲利普·普尔曼
[轻小说]《欢迎加入HNK》作者:滝本龙彦
[现代神话]《河图洛书》作者:不动(来自新干线的超人气连载)
I

[輕小說]《IS》作者:[日]弓弦イズル

J

[轻小说]《吉永家的石像怪1-11》作者:田口仙年堂
[輕小說]《娇蛮猫娘大横行!》作者:[日]松智洋
[轻小说]《静流姐与无言的公主们》作者:[日]上远野浩平
[輕小說]《机巧魔神》作者:[日]三雲岳斗
[轻小说]《疾走!青春期的帕拉贝伦》作者:深见真(1~2)
[轻小说]《将花束献给月亮与你》作者:[日]志村一矢
[动漫相关]《机动战士高达UNICORN 0096》作者:[日]福井晴敏(1-6)
[轻小说]《9S》作者:[日]叶山透(1-9+Memories+SS,未完结)
[轻小说]《静流姐与执拗的死者们》作者:上远野浩平
[轻小说]《加速世界 第一卷》作者:不詳
[动漫相关]《机动战舰大和號 琉璃由A到B的故事》 作者:不詳
[动漫相关]《君吻》作者:日暮茶坊 (未完)
[轻小说]《绞缬城绮谭(全)》作者:田中芳树
[剧情小说]《莎木》作者:不详
[剧情小说]《寄生前夜2》作者:不详
[动漫相关]《今日起是魔王1-16》 作者:乔林 知
[动漫相关]《今日起是魔王17-20》 作者:乔林 知
[官方小说]《JOJO的奇妙冒险》 作者:乙一
[日本科幻]《寄生前夜》作者:濑名秀明
[侦探惊忪]《金田一全集》作者:横沟正史
[官方小说]《寂静岭》 作者:山下定
[官方小说]《寂静岭2》 作者:山下定
[推理侦探]《金田一少年的事件薄》作者:天树征丸
[日本文学]《甲贺忍法帖》作者:山田风太郎
[官方小说]《机动战士高达0080口袋里的战争》作者:山口宏、结城恭介
[官方小说]《机动战士高达0079+外传-密会》作者: 富野由悠季
[历史典故]《剑与禅:宫本武藏》
[合集汇总]《九州实体书汇总》
K
[轻小说]《空之境界》作者:奈须きのこ(全)
[轻小说]《看着月亮说着谎话》第一卷 作者:[日]日日日
[轻小说]科学超电磁炮特典小说,全八话
[轻小说]《矿物质超女》作者:冬樹忍 (1~6)
[轻小说]《骷髅恋人》作者: 平坂读(1~5)
[轻小说]《空罐少女!》作者:蓝上陆/铃平ひろ (1~4)
[推理小說]《狂骨之夢》作者:[日]京极夏彦(上卷未)
[轻小说]《壳中少女》作者:冲方丁(全)
[短篇轻小说]《可疑的少女与危险的少年》作者:深见真
[轻小说]《肯普法》作者:筑地俊彦(1-3未)
[轻小说]《肯普法10.5》作者:筑地俊彦
[轻小说]《快打城市 slum online》作者:樱坂洋 (全)
[轻小说]《空之中》作者:有川浩(全)
[轻小说]《狂乱家族日记1-6》 作者:日日日
[轻小说] 《空之轨迹长篇同人 炎の轨迹》作者:夏木の友人帐
[轻小说]《狂恋声优宝贝》作者:木本雅彦
[动漫相关]《空中杀手》作者:森博嗣 (完)

L
[轻小说]《罗德岛战记+罗德岛传说+新罗德斯岛战记》 作者:水野良
[轻小说]《莱茵河的囚徒》作者:[日]田中芳树
[轻小说]《离别的钢琴奏鸣曲 1》作者:杉井光
[推理小说]《猎捕史奈克》作者:宫部美雪
[輕小說]《狼與辛香料》作者:[日]支仓冻沙 (11,12卷)
[輕小說]《蘿球社!》作者:[日]蒼山サグ
[轻小说]《流星慢舞》作者:桥本纺
[轻小说]《铁拳灵感少女》作者:松原真琴/小畑健
[剧情小说]《流行之神》作者:不详
[轻小说]《临界杀机》作者:神崎紫电(1-2未完)
[轻小说]《零之使魔1-16+外传》作者:ヤマグチノボル
[动漫相关]《L改变世界+外传》 作者:西尾维新
[动漫相关]《L改变世界+外传》 作者:西尾维新
[动漫相关]《龙虎斗1-6》 作者:未知
[轻小说]《龙眠》 作者:宫部美幸
[轻小说]《LUCK*STAR杀人事件》作者:竹井10日
[轻小说]《狼與辛香料1-9》 作者:支仓冻砂
[轻小说]《狼与辛香料》作者:支仓冻砂 (1-10卷)
[动画外传]《另一个冰轮丸》 作者:松永真琴 译者:Youyuan
[日本文学]《柳生忍法帖》 作者:山田风太郎
[剧情小说]《龙背上的骑士1+2》作者:不详
[动漫相关]《L改变世界 洛杉矶BB连续杀人案件》作者:西尾维新
[热门小说]《凉宫春日的忧郁》八部全
[游戏小说]《零~月蚀的假面》 作者:不详
[游戏小说]《零·ZERO》作者:不详
[游戏小说]《零·红蝶》作者:不详
[游戏小说]《零·刺青之声》作者:不详
[轻小说]《罗德斯岛战记》
[轻小说]《零之使魔 ゼロづ使い魔小说1-14+番外》作者:ヤマグチノボル(更新到第12卷)
[轻小说]《凉宫春日的忧郁》

M
[轻小说]《魔法目录1-6+ss+外传》 作者:镰池和马
[一般小说]《魔王》作者:[日]伊坂幸太郎
[轻小说]《魔女宅急便》作者:角野荣子(全)
[推理小说]《魔术的耳语》作者:宫部美雪
[轻小说]《MAMA》作者:红玉ぃづき
[輕小說]《梅格&賽隆》作者:[日]时雨泽惠一
[轻小说]《魔法战士李维》作者:[日]水野良(未完结)
[轻小说]《魔法**目录》作者:镰池和马(9.10卷)
[轻小说]《某一天,炸弹从天而降》作者:古桥秀之 (全)
[轻小说]《MM一族》作者:作者:松野秋鸣(1-5卷)
[架空都市]《梦幻都市(全)》作者:田中芳树
[轻小说]《魔法目录》作者:鎌池和马 (1-8卷)
[动漫相关]《名侦探柯南 江神原的魔女》 作者:平良隆久
[畅销小说]《暮光之城 1-4部(英文版)》作者:斯蒂芬妮·梅尔
[轻小说]《魔法人力派遣公司》第1~2卷 作者:三田诚
[日本文学]《麻辣教师GTO 颠覆北海道》 作者:不详
[动漫游戏]《魔界战记迪斯凯亚1-6全》作者:神代创
[动漫相关]《秒速五厘米》 作者:新海诚
[轻小说]《魔法少女奈叶》作者:都筑真纪(全)
[资料分享]《魔法书与恶魔学》
[游戏小说]《魔兽世界官方小说+同人》作者:多人
[游戏相关]魔兽世界小说三部曲

N
[轻小说]《你我崩坏的世界》作者:西尾纬新
[推理小说]《脑髓地狱》作者:梦野久作 (日本推理四大奇书)
[轻小说]《女帝·龍凰院麟音的初恋 第一卷》作者:[日]风见周
[动漫小说] 《女王之刃》TV版很黄很暴力 作者:不知道 (1-3未完)
[動漫相關]《女王之刃 独角兽之剑》 作者:冲田荣次
[轻小说] 《乃木坂春香的秘密》作者:五十岚雄策(0-9卷未完) 5/14日更新
[官方小说]《女神侧身像 两卷全》 作者:梅村崇
[官方小说]《女神侧身像 负罪者》作者:不详
[游戏小说]《女神侧身像 希尔梅丽娅》 作者:梅村崇
[官方小说]《女神侧身像 希尔梅丽娅2》作者:梅村崇 翻译:YULA、翔月
[剧情小说]《逆转裁判4》翻译:清雨(游小说)
[奇幻经典]《纳尼亚传奇2 凯斯宾王子》作者:[英] C·S·刘易斯
O
[动漫相关]《one piece》 作者:不详
P
[动漫相关]《PHANTOM OF INFERNO 无间地狱》作者:虚渊玄
[轻小说]《pulp》作者:森桥ビソゴ(1~3)
Q
[轻小说]《七姬物语1-4》作者:高野和
[轻小说]《轻小说社》作者:平坂读(1~2)
[轻小说]《企鹅之夏(ペンギン·サマー)》全一卷 作者:[日]六塚光
[轻小说]《犬神》作者:有沢まみず (1~12)
[轻小说]《七人武器店》(1-2)作者:[日]大乐绚太(未完结)
[轻小说]《亲亲坏老爹》作者:野村美月(1-3卷)
[轻小说]《青叶君与宇宙人1~3》作者:松野秋鸣 (全)
[轻小说]《七都市物语 (全)》作者:田中芳树
[轻小说]《晴空之下,突然……(全)》作者:田中芳树
[轻小说]《侵略少女与谎言庭院》作者:清水マリコ(1卷全)
[剧情小说]《潜龙谍影4爱国者之枪》作者:不详
[轻小说]《轻小说的快乐写法》作者:本田透
[游戏相关] 潜龙谍影 - Metal Gear Solid [官方小说] (1卷全)
[推理小说] 《秋叶原@DEEP》作者:石田衣良 (全)
[动漫相关]《晴空之Air1-6》作者:不详
[游戏相关]《秋之回忆1-3+从今以后》 作者:不详
[轻小说]《奇诺之旅》作者:时雨泽惠(1-11+外+PS2剧本)
[轻小说]《奇诺之旅1-10全》作者:时雨沢恵一
[游戏相关]《潜龙谍影4官方小说》(下)作者:伊藤计划
[轻小说]《[欢迎加入NHK》 作者:泷本龙彦
[游戏相关]《潜龙谍影4官方小说》(上) 作者:伊藤计划
[动漫相关]《全金属狂潮短片集》作者:贺东招二 等
[动漫相关]《全金属狂潮1-11》作者:贺东招二
[游戏剧情]《寄生前夜2》 作者:不详

R
[轻小说]《人间系列》作者:西尾纬新 (第3卷)
[轻小说] 《ROOM NO.1301》 作者:新井辉(1-7卷未完)9/13更新
[轻小说] 《R.O.D》作者:仓田英之(第1卷未完)
[历史研究]《日本战国史》作者:赤军(国产)
[日本小说]《人间失格》作者:太宰治
[资料收集]《日本战国明将用兵哲学》 作者:不详

S
[轻小说]《三坪房间的侵略者!?第一卷》作者:健速
[推理小说]《世纪末的侦探神话》作者:清凉院流水
[輕小說]《SH@PPLE》作者:[日]竹岡葉月
[游戏小说]《水仙》全一卷 作者:[日]片冈とも
[轻小说]《杀×爱》作者:风见周(0~4)
[轻小说]《神样家族》作者:桑岛由一 (1~7)
[轻小说]《神之游戏1~3》作者:宮崎柊羽
[輕小說]《428被封锁的涩谷》作者:[日]北岛行德
[恐怖小说]《尸鬼》作者:[日]小野不由美 (完结)
[轻小说]《捨棄在八月的路上》作者:伊藤たかみ(全一卷)
[輕小說]《傷物語》作者:[日]西尾維新
[轻小说]《神样灵感少女》作者:松原真琴/小畑健
[轻小说]《神曲奏界 異色協奏》作者:淺井ラボ、あざの耕平、神野奧那、三田誠
[轻小说] 《圣诞节的恐怖分子》作者:佐藤友哉(全一卷)
[轻小说]《淑女骑士团 Lady General》作者:千田诚行(未完)
[轻小说]《神的记事本》作者:杉井光(1-3卷未完)
[轻小说]《神灯女仆1-4》作者:夏绿
[轻小说] 《ROOM NO.1301》 作者:新井辉(1-7卷+番外未完)
[轻小说]《说谎的男孩与坏掉的女孩》作者:入间人间(1-3未完)
[剧情小说]《聖女之歌》作者:不详
[动漫相关]《闪光的哈萨维》 作者:不详
[轻小说]《少年阴阳师1~20》 作者:结城光流
[D&D]《时光之轮:世界之眼1-5》作者:罗伯特·乔丹
[动漫相关]《水星领航员ARIA四季之风的赠礼》作者:岡田麿里 藤咲ぁゅな 浦畑达彦 吉田玲子
[日系耽美]《三千世界鸦杀1-13+番外+前传》 作者:津守时生
[官方小说]《生化危机官方小说(Resident Evil)(1-8)》原著:S·D·Perry
[官方小说]《宿命传说 苍黑的追忆》原作:矢島さら 翻译:子云
[游戏相关]《失落的奥德赛番外篇》作者:松重清 翻译:夜蓝
[官方小说]《失落的奥德赛 番外 塞丝、敏篇》作者:重松清 翻译:夜蓝
[官方小说]《宿命传说官方小说 苍黑的思念》原作:矢島さら 翻译:子云
[轻小说]《死后文》作者:雨宫谅
[百合向耽美]《圣母在上1-12》 作者:今野绪雪
[轻小说]《水星领航员水之都与哀伤的歌姬》作者:藤咲ぁゅな
[动漫相关]《死神的歌谣》作者:长谷川启介
[游戏小说]《失落的奥德赛 千年之梦 永远的旅人》原作:重松 清 翻译:夜蓝
[人文历史]《十字军骑士》作者:显克维支(EXE,TXT双版本)
[轻小说]《十二国记全集+外传》作者:小野不由美
[轻小说]《少年残像》原作:由贵香织里
[轻小说]《圣魔之血》作者:吉田直

T
[轻小说]《同居五重奏!》作者:越后屋铁舟(1卷未完)
[轻小说]《他能在那天逃过死亡吗》作者:[日]小木君人
[遊戲相關]《Tales of Symphonia 拉塔特斯克的骑士 世界之愿》作者:[日]矢島さら
[推理小说]《铁鼠之槛》作者:京极夏彦
[推理小说]《他人事》作者:平山梦明
[轻小说]《TIGER X DRAGON》作者:竹宫ゆゆこ(9卷)
[轻小说]《听到涛声》作者:冰室冴子(1~2+番外篇)
[轻小说]《逃离学校!》作者:谷川流 (1~6全)
[轻小说]《替身伯爵系列 1》作者:清家未森
[轻小说]《天空之钟 响彻惑星》作者:渡濑草一郎(1-9)
[军事小说]《汤姆克兰西部分军事小说》作者:汤姆克兰西
[动漫相关]《天是红河岸 外传 魔之时代的黎明》 作者:筱原千绘
[动漫相关]《太空堡垒-麦克罗斯传奇》作者:未知
[畅销小说]《马法尔年代记1-3全》作者:田中芳树
[轻小说]《图书馆战争1~4全》 作者:有川 浩(09年2月2更新番外)
[动漫相关]《太空堡垒-南十字军》作者:[美] 杰克·麦金尼【上、下册完整版】
[漫画相关]《天使迷梦1-6全+番外+前传》作者:游素兰(台湾)
[影视文学]《跳跃大搜查线》 作者:不详
[畅销小说]《天竺热风录》作者:田中芳树(波澜壮阔的盛唐再现)
U

V

W
[轻小说]《无头骑士异闻录 DuRaRaRa!!1-2》作者:成田良悟
[轻小说]《我们的蔬菜不够》作者:浅沼广太(1~4)
[轻小说]《我的朋友很少 第二卷》作者:平坂読
[轻小说]《我的腐女友》作者:ぺんたぶ(1~2)
[轻小说]《我的朋友很少》(第一卷)作者:[日]平坂読
[轻小说]《伪物语(下)》作者:[日]西尾维新
[輕小說]《無頭騎士異聞錄DuRaRaRa!!》作者:[日]成田良悟(3卷未)
[悬疑小说]《无人生还》 作者:阿加莎·克里斯蒂
[輕小說]《偽物語》作者:[日]西尾維新(上卷未)
[輕小說]《我甜蜜的苦涩委内瑞拉》作者:[日]森田季节
[輕小說]《物質幽靈》作者:[日]葵せきな(未完)
[轻小说]《我的亲爱主人!?》作者:鹰野佑希(1-5完) 7/4更新
[轻小说]《我们的田村同学》作者:竹宫ゆゆこ (1~2+短篇)
[轻小说]《我的爱马很凶恶》作者:新井辉
[轻小说]《“文学少女”见习生の、初恋》作者:野村美月
[轻小说] 《我的妹妹不可能那么可爱》作者:伏见司(1+短篇未完)
[轻小说]《我的世界守护者》作者:谷川流
[轻小说]《我的狐仙女友1-4》 作者:西野胜海
[轻小说] 《文学少女》作者:野村美月 (1-8+番外 完)5/6日更新
[动漫小说] 《魍魉之匣》 作者:京极夏彦(全)
[剧情小说] 《王国之心Ⅱ》序章剧情小说 作者:LightLucifer
[剧情小说]《王国之心2》作者:不详
[轻小说]《我家有个狐仙大人1-6》作者:柴村仁 译者:张信儀
[现代文学]《五百年吸血鬼惊世传奇》作者:伊丽莎白·科斯托娃
[影视相关]《我是传奇 英文版》作者:理查德·马瑟森
[日本耽美]《王朝春宵罗曼史1-4》 作者:不详
[日本小说]《为夜空的双子座衬上深红蔷薇》作者:冈崎裕信 原案:田中芳树
[轻小说]《万岁系列1-8全》作者:三浦勇雄
[悬疑恐怖]《午夜凶铃1-4》作者:铃木光司
[资料收集]《五轮书:地之卷》 作者:宫本武藏
[资料收集]《五轮书:火之卷》作者:宫本武藏

X
[短篇轻小说]《夏天,真纪子与MD-WalkMan的故事》作者:紅玉いづき
[推理小说]《献给虚无的供物》作者:中井英夫 (日本推理四大奇书)
[推理小说]《匣中的失乐》作者:竹本键治 (日本推理四大奇书)
[轻小说]《新本格魔法少女莉丝佳》作者:西尾维新(1~2)
[妖怪小说]《巷说百物语》作者:京极夏彦(1~4完结)
[輕小說]《虚轴少女ResinCastMilk》作者:[日]藤原佑(1-5)
[輕小說]《闲狼作家是美少女妖怪?》作者:[日]杉井光
[輕小說]《Resin Cast Milk 虚轴少女的日常》作者:[日]藤原佑
[輕小說]《幸运机会!》作者:[日]有泽真水
[轻小说]《心灵侦探八云》作者:神永学 (1~2)
[輕小說]《學生會的日常》作者:[日]葵せきな(1卷未)
[輕小說]《小齒輪!》作者:[日]樋口司(1卷未)
[轻小说]《学生会的一己之见》作者:[日]葵せきな(1-3+外 未完)
[轻小说]《掀起世界危机!》 作者: 佐藤了
[轻小说]《学校的阶梯》作者:櫂末高彰 (1~8+短篇 未完)
[推理小说]《“犀川&萌绘”系列》作者:森博嗣 (1~2未完)
[動漫相关]《星之声》作者:新海诚
[轻小说]《消极的快乐、电锯的边缘》作者:泷本龙彦 (全)
[轻小说]《戏言系列》作者:西尾维新 (1-10完结)
[轻小说]《学院人体练金术 一卷全》作者:筱崎一夜
[剧情小说]《晓之女神》作者:不详
[游戏对话]《仙剑奇侠传四》作者:上海软星
[轻小说]《新橙路》作者:松本泉 寺田宪史
[轻小说]《吸血鬼骑士1-4》作者:藤咲あゆな
[推理侦探]《嫌疑犯X的献身》作者:东野圭吾 (神探伽利略系列)
[轻小说]《吸血鬼猎人D》 作者:菊地秀行 插话:天野喜孝
[剧情小说]《新鬼武者 梦之黎明》作者:不详
[轻小说]《XXXHOLIC兰德尔特环的粉尘]》作者:西尾维新
[畅销经典]《肖申克的救赎》作者:斯蒂芬·金
[轻小说]《星界系列》 作者:森冈浩之
[轻小说]《幸运☆星 ONLINE》原作:美水かがみ 著:竹井10日
[军事科幻]《星之海洋》全 作者:charlesp
[国产耽美]《希露芙斯战记(5中篇) 》作者:七月
[轻小说]《新罗德斯岛战记》作者:【日】水野良(全)

Y


[轻小说]《幽灵恋人1~4》作者:平坂 读 (全)
[轻小说]《阴沉少女与黑魔法之恋》作者:熊谷雅人(1~3)
[轻小说]《遥仰凰华》番外+游戏剧本 作者:冈田留奈
[轻小说]《月兔的银色方舟》作者:[日]鴨志田一
[轻小说]《眼镜男与断头少女》作者: 藤原祐 (1~2)
[合集小说]乙一作品集[共32篇]
[轻小说]《影≒光 Shadow Light》作者:影名浅海 (1~5)
[轻小说]《银盘万花筒》作者:海原零 (1~9)
[轻小说]《仰望半月的夜空》作者:桥本纺 (1-8卷+2短篇完结)
[遊戲相關]《命运传奇 命运传承者》作者:[日]矢島さら(上卷未)
[轻小说]《云霄飞车》作者:山田悠介(全)
[短篇小说]《月之雨物语》作者:古茶(全)
[轻小说]《一切终将远去》作者:山本文绪 (全)
[轻小说]《幽灵少女与科学少年1~2》作者:飞田甲
[轻小说]《烟囟町的赤魔与绝望少年 1 》作者:ゆうきりん
[幻想小说]《妖藩记鬼剑众》作者:菊地秀行 (全)
[轻小说]《伊里野的天空 UFO的夏天》作者:秋山瑞人(1-4+短篇 全)
[轻小说]《银之镇魂歌》作者:吉原理惠子
[剧情小说]《银河游侠》 作者:不详
[轻小说]《月兔公主》 作者:野村美月
[魔幻小说]《夜访吸血鬼》作者:安妮·赖斯
[宇宙战争]《铁达尼亚1-3卷》 作者:田中芳树
[轻小说]《银魂 3年Z班的银八老师1-3》 作者:不详
[轻小说]《银河铁道之夜》
[游戏人]《樱花大战3 前传巴黎前夜· 北大路花火篇》 作者:赤堀悟
[游戏人]《樱花大战3 前传巴黎前夜·古妮西露篇》 作者:赤堀悟
[游戏人]《樱花大战3 前传巴黎前夜·艾莉卡篇》 作者:赤堀悟
[动漫相关]《云之彼端约定之地》 原作:新海诚
[游戏剧本]《XENOGEARS(异度装甲)》+《世界观解疑》
[英国童话]《哈尔的移动城堡中英两版》作者:DianaWynneJones
[轻小说]《永生之酒》作者:成田良悟 (更新1~8)
[轻小说]《亚普菲兰特》作者:田中芳树
[日本文学]《亚也日记》作者:木藤亚也(又名:一公升的眼泪)
[流行小说]药师寺凉子怪奇事件簿(1~7卷) 作者:田中芳树
[科幻经典]《银河英雄传说》
[轻小说]《BACCANO(永生之酒)第1-6卷》作者:]成田良悟
[轻小说]《阴阳师物语 1》

Z
[轻小说]《斩鬼夜鸟子1-3》作者:树田省治
[轻小说]《战斗!暴风少女!》作者:佐佐原始绪(1~2)
[轻小说]《最后大魔王》作者:水城正太郎(1~5)
[杂书?]《征服世界有可能的吗》作者:[日]冈田斗司夫
[轻小说]《战斗司书与终章猛兽》作者:山形石雄 (系列第八作)
[轻小说]《在暗夜中寻找羔羊》作者:穗史贺雅也 (1~3完结)
[轻小说]《镇魂练习曲》作者:北泽大辅 (1~3)
[惊悚小说]《ZOO》作者:[日]乙一
[轻小说]《在遙遠彼方的小千》作者:日日日(全一卷)
[轻小说]《拯救你的最初咒语》作者:须堂项(1~2未完)
[轻小说]《终焉的年代记》作者:川上稔(1-2未完)
[轻小说]《战斗司书与虚言者的宴会 》作者:山形石雄
[游戏小说]《最终幻想Ⅶ~On the way to a smile》( 那那岐篇 神罗篇 尤菲篇)
[轻小说]《灼热的龙骑兵(3本全)》作者:田中芳树
[官方小说]《战国basara2》作者:不详
[轻小说]《自卫队三部曲第一部》作者:有川浩
[动漫相关]《真·天地无用_魉皇鬼1-2》 作者:不详
[剧情小说]《战争机器》 作者:不详
[动漫相关]《最终兵器彼女 全》 作者:不详
[剧情小说]《战神:奥林匹斯之链》作者:城寨某人(-,-!)
[人物传记]《织田信长》 作者:山冈庄八
[剧情小说] 最终幻想系列剧情小说》
[港漫相关]《中华英雄》 作者:不详
[历史记载]《中国武将列传》 作者:田中芳树
[中文剧本]《最终幻想战略版》 作者:天幻
[剧情小说]《最终幻想VI》 作者:不详
[剧情小说]《最终幻想XII》作者:不详
[游戏相关]《最终幻想11 官方小说-守护之剑》 作者:不详
[游戏相关]《最终幻想7游戏剧本+剧情小说》 作者:不详
[游戏剧本]《最终幻想10剧情小说》 作者:慕容非
[剧情小说]《最终幻想IX》作者:不详
[官方小说]《FF7AC On The Way to a Smile丁塞尔篇/蒂法篇》作者:ベニー松山
[游戏剧本]《最终幻想X-2外传 你所吹响的口哨》作者:ベニー松山
[轻小说]《灼眼的夏娜 》作者:高桥弥七郎 (0~16卷、附加S卷)0
[专题收集]《战国趣闻录(番外篇*2)》.


嘛...娱乐而已的东西嘛...这里是一个链接也没有的...

lightnovel.cn曾打包放出过东西,不过风格有些区别。
ed2k://|file|%5B%E8%BD%BB%E4%B9%8B%E5%9B%BD%E5%BA%A6%5D%E8%BD%BB%E5%B0%8F%E8%AF%B4%E5%90%88%E9%9B%86VOL.1%5B2009-09%5D%5Blightkingdom.lightnovel.collection.vol1%5D.zip|183888376|98448761c16748b1742080b7953db837|h=sa2xcobe5uypgofn4fnfdyfvlx66it3c|/
ed2k://|file|%5B%E8%BD%BB%E4%B9%8B%E5%9B%BD%E5%BA%A6%5D%E8%BD%BB%E5%B0%8F%E8%AF%B4%E5%90%88%E9%9B%86VOL.2%5B2009-10%5D%5Blightkingdom.lightnovel.collection.vol2%5D.7z|2222403|c659f06bc7ecfc05219fc63117bd4872|h=ffr6ennkgx534gjt6ijih5ag755ycheb|/
ed2k://|file|%5B%E8%BD%BB%E4%B9%8B%E5%9B%BD%E5%BA%A6%5D%E8%BD%BB%E5%B0%8F%E8%AF%B4%E5%90%88%E9%9B%86VOL.3%5B2009-11%5D%5Blightkingdom.lightnovel.collection.vol3%5D.7z|2824935|bf6f16910e9f11945d84cf155dd5aaf9|h=45iw2wmhyognkkxpwwc67fzoxdeu46dc|/


相关的站点的话自己能想到的还有
http://bbs.levelup.im/forum-38-1.html
book.sky-fire.com
comic.92wy.com
www.ffsky.com
www.hgamecn.com
www.imdb.com
类似站点去找一下也能发现些,这里名字有些杂乱了,况且ACG内容还是好找的。
此外呢,有些考古性质的企划文对于搜索而言是有辅助作用的,例如维基百科。

这年头有dangdang在,还是纸质顺眼来着,也觉得存放起来踏实一点。
曾有的版权问题的正在发展出适合的解决途径,目前不必要无视已有的关注度。