设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 14222|回复: 35
打印 上一主题 下一主题

[原创发布] 【初级教学2】仿三国志舌战制作方法。

 关闭 [复制链接]

Lv5.捕梦者

梦石
0
星屑
37859
在线时间
5427 小时
注册时间
2006-11-10
帖子
6549
1
发表于 2008-6-27 21:41:08 | 显示全部楼层
= =怎么第二课难度就提升这么多~~~~~

电脑AI方面不会做,只用随机行么。或者,用作弊式...电脑出的牌永远是当前主题-v-

------不负责的分割线-----------

估计是上次那些高手们的搅和让柳之一先生火大了-v-
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
37859
在线时间
5427 小时
注册时间
2006-11-10
帖子
6549
2
发表于 2008-6-28 22:59:45 | 显示全部楼层
交作业交作业....

  1. class Window_Minigame < Window_Base
  2.   #--------------------------------------------------------------------------
  3.   # ● 初始化窗口
  4.   #--------------------------------------------------------------------------
  5.   def initialize
  6.     super(0, 0, 160, 64)
  7.     self.contents = Bitmap.new(width - 32, height - 32)
  8.     refresh
  9.   end
  10.   #--------------------------------------------------------------------------
  11.   # ● 刷新
  12.   #--------------------------------------------------------------------------
  13.   def refresh
  14.     self.contents.clear
  15.     $game_variables[1] = 100 #我方HP
  16.     $game_variables[2] = 100 #敌方HP
  17. cass $game_variables[3]
  18.   when = 1
  19.     motif = "故事"
  20.   when = 2
  21.     motif = "时节"
  22.   when = 3
  23.     motif = "道理"
  24.   end
  25. loop do
  26.   $game_temp.message_text= "游戏开始:\n我方HP:#{$game_variables[1]}\n敌方HP:#{$game_variables[2]}\n当前主题:#{motif}"
  27.    
  28.   a = rand(12)+1
  29.     b = a/4
  30.     c % a/4
  31. cass b
  32.     when 1
  33.      type = "故事"
  34.     when 2
  35.      type = "时节"
  36.     when 3
  37.      type = "道理"
  38.     end
  39. cass c
  40.   when 0
  41.     amo  = "特殊" #特殊牌处理。
  42.   when 1
  43.     amo  = "小"
  44.   when 2
  45.     amo  = "中"
  46.   when 3
  47.     amo  = "大"
  48.   end
  49. card1 = type + amo
  50. $game_variables[4] = a #第一张牌

  51. a = rand(12)+1
  52.     b = a/4
  53.     c % a/4
  54. cass b
  55.     when 1
  56.      type = "故事"
  57.     when 2
  58.      type = "时节"
  59.     when 3
  60.      type = "道理"
  61.     end
  62. cass c
  63.   when 0
  64.     amo  = "特殊" #特殊牌处理。
  65.   when 1
  66.     amo  = "小"
  67.   when 2
  68.     amo  = "中"
  69.   when 3
  70.     amo  = "大"
  71.   end
  72. card2 = type + amo
  73. $game_variables[5] = a #第二张牌

  74. a = rand(12)+1
  75.     b = a/4
  76.     c % a/4
  77. cass b
  78.     when 1
  79.      type = "故事"
  80.     when 2
  81.      type = "时节"
  82.     when 3
  83.      type = "道理"
  84.     end
  85. cass c
  86.   when 0
  87.     amo  = "特殊" #特殊牌处理。
  88.   when 1
  89.     amo  = "小"
  90.   when 2
  91.     amo  = "中"
  92.   when 3
  93.     amo  = "大"
  94.   end
  95. card3 = type + amo
  96. $game_variables[6] = a #第三张牌
  97. end
  98. def main
  99.     @sprite = Sprite.new
  100.     s1 = "#{card1}"
  101.     s2 = "#{card2}"
  102.     s3 = "#{card3}"
  103.     @command_window = Window_Command.new(192, [s1, s2, s3])
  104.     @command_window.back_opacity = 160
  105.     @command_window.x = 320 - @command_window.width / 2
  106.     @command_window.y = 288
  107.     Graphics.transition
  108.     loop do
  109.       # 刷新游戏画面
  110.       Graphics.update
  111.       # 刷新输入信息
  112.       Input.update
  113.       # 刷新画面
  114.       update
  115.       # 如果画面被切换就中断循环
  116.       if $scene != self
  117.         break
  118.       end
  119.     end
  120.     # 装备过渡
  121.     Graphics.freeze
  122.     # 释放命令窗口
  123.     @command_window.dispose
  124.     # 释放标题图形
  125.     @sprite.dispose
  126.   end
  127. def update
  128.     # 刷新命令窗口
  129.     @command_window.update
  130.     # 按下 C 键的情况下
  131.     if Input.trigger?(Input::C)
  132.       # 命令窗口的光标位置的分支
  133.       case @command_window.index
  134.       when 0  # 第一张牌
  135.         $game_temp.message_text = "我出#{card1}"
  136.         me = $game_variables[4]
  137.       when 1  # 第二张牌
  138.         $game_temp.message_text = "我出#{card2}"
  139.         me = $game_variables[5]
  140.       when 2  # 第三张牌
  141.         $game_temp.message_text = "我出#{card3}"
  142.         me = $game_variables[6]
  143.     end
  144.   end
  145. end
  146. end
  147. lood do
  148. a = rand(12)+1
  149.     b = a/4
  150.     c % a/4
  151. cass b
  152.     when 1
  153.      type = "故事"
  154.     when 2
  155.      type = "时节"
  156.     when 3
  157.      type = "道理"
  158.     end
  159. cass c
  160.   when 0
  161.     amo  = "特殊" #特殊牌处理。
  162.   when 1
  163.     amo  = "小"
  164.   when 2
  165.     amo  = "中"
  166.   when 3
  167.     amo  = "大"
  168.   end
  169. youcard = type + amo
  170. you = a

  171. me2 % me/4
  172. you2 % you/4
  173. if me/4 == you/4
  174.   if me2 == you2
  175.    $game_temp.message_text = "对方出#{youcard}\n平局"
  176.    $game_variables[3] = me/4
  177.   end
  178.   if me2 < you2
  179.    $game_temp.message_text = "对方出#{youcard}\n你输了"
  180.    $game_variables[1] -= 10
  181.    $game_variables[3] = you/4
  182.   end
  183.   if me2 > you2
  184.    $game_temp.message_text = "对方出#{youcard}\n你赢了"
  185.    $game_variables[2] -= 10
  186.    $game_variables[3] = me/4
  187.   end
  188. else
  189.   if $game_variables[3] == me/4
  190.     $game_temp.message_text = "对方出#{youcard}\n你赢了"
  191.     $game_variables[2] -= 10
  192.   elsif $game_variables[3] == you/4
  193.     $game_temp.message_text = "对方出#{youcard}\n你输了"
  194.     $game_variables[1] -= 10
  195.   else
  196.    if me2 < you2
  197.    $game_temp.message_text = "对方出#{youcard}\n你输了"
  198.    $game_variables[1] -= 10
  199.    $game_variables[3] = you/4
  200.   end
  201.    if me2 > you2
  202.    $game_temp.message_text = "对方出#{youcard}\n你赢了"
  203.    $game_variables[2] -= 10
  204.    $game_variables[3] = me/4
  205.   end
  206. end
  207. end
  208. if $game_variables[1] <= 0
  209.   $game_temp.message_text = "YOU LOST!"
  210.   break
  211.   end
  212. end
  213. if $game_variables[2] <= 0
  214.   $game_temp.message_text = "YOU WIN!"
  215.   break
  216. end
  217. end
  218. end
复制代码


第一次写脚本- -错误百出的句子,请帮忙改改错....
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
37859
在线时间
5427 小时
注册时间
2006-11-10
帖子
6549
3
发表于 2008-6-28 23:03:26 | 显示全部楼层
以下引用亿万星辰于2008-6-27 19:08:17的发言:

这个的AI可以用最简单的一个方式来编写,如果有当前主题的牌,那么就出当前主题里最大的牌;没有当前主题的牌,就出一张现有的牌中最大的……

那个....我偷懒,直接让电脑用随机数了.....昨天脑糊了一晚上,睡觉满脑袋还都是if,else飞来飞去- -~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-6 02:35

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表