Zénith RPG version 1.1

Soaglor, terre de conflits
miniature
de harusame17.

Soaglor, terre de conflits
miniature
de harusame17.

SPZelda: Déclarations
miniature
de Dark8744.

Tutoriaux événements

Tic-Tac-Toe / Morpion


  • Script de Shado.
  • Aucune démo n'est disponible pour ce script.

Appelez le mini-jeu grâce à la commande d'évènement "Insérer un script" et mettez ce code :

$scene = Tictactoe.new


######################################
# Jeu Tic-tac-toe fait par Shado - 27 Juillet 2006
# Laissez un crédit pour moi si vous l'utilisez. Merci !
# Version : 1.3
######################################

class Tictactoe

@@turn = "x"
@@font_name = "Arial"
@@font_size = 40

def initialize(menu_index = 0)
@menu_index = menu_index
end
######################
def main
@turnWindow = Turn_Window.new(@@turn)
@turnWindow.x = 450
@turnWindow.y = 370
setSquares
setMenu

Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end

Graphics.freeze
@command_window.dispose
@turnWindow.dispose

for x in 0..8
@sqr[x].dispose
end
end
######################
def update
@command_window.update
@turnWindow.update(@@turn)

for x in 0..8
@sqr[x].update
end

if @command_window.active
update_command
return
end
end

######################
def update_command
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
if Input.trigger?(Input::C)
case @command_window.index
when 0..8
$game_system.se_play($data_system.decision_se)
doAction(@command_window.index)
when 9
$game_system.se_play($data_system.decision_se)
$scene = Tictactoe.new
when 10
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
end
return
end
end
######################
def setMenu
s1 = "Haut gauche"
s2 = "Haut milieu"
s3 = "Haut droit"
s4 = "Centre gauche"
s5 = "Centre milieu"
s6 = "Centre droit"
s7 = "Bas left"
s8 = "Bas milieu"
s9 = "Bas droit"
s10 = "Redémarrer"
s11 = "Quitter"
@command_window = Window_Command.new(175, [s1, s2, s3, s4, s5, s6,s7,s8,s9,s10,s11])
@command_window.index = @menu_index
@command_window.x = 440
end
######################
def setSquares
@sqr = []
for x in 0..2
@sqr[x] = Square.new(@@font_name,@@font_size)
@sqr[x].x = (x+1)*100
@sqr[x].y = 50
end

for x in 3..5
@sqr[x] = Square.new(@@font_name,@@font_size)
@sqr[x].x = (x-2)*100
@sqr[x].y = 150
end

for x in 6..8
@sqr[x] = Square.new(@@font_name,@@font_size)
@sqr[x].x = (x-5)*100
@sqr[x].y = 250
end

end
######################
def doAction(squareId)
if (@sqr[squareId].getOwner == "none")
@sqr[squareId].setOwner(@@turn)
verifyScore
else
$game_system.se_play($data_system.buzzer_se)
end
end
######################
def verifyScore
gameIsFinish = false
#check all --
for x in 0..2
if (@sqr[x*3].getOwner == @@turn && @sqr[x*3+1].getOwner == @@turn && @sqr[x*3+2].getOwner == @@turn)
print "Les "+@@turn+" a gagné !"
gameIsFinish = true
end
end

#check all |
for x in 0..2
if (@sqr[x].getOwner == @@turn && @sqr[x+3].getOwner == @@turn && @sqr[x+6].getOwner == @@turn)
print "Les "+@@turn+" a gagné !"
gameIsFinish = true
end
end

#check \
if (@sqr[0].getOwner == @@turn && @sqr[4].getOwner == @@turn && @sqr[8].getOwner == @@turn)
print "Les "+@@turn+" a gagné !"
gameIsFinish = true
end

#check /
if (@sqr[2].getOwner == @@turn && @sqr[4].getOwner == @@turn && @sqr[6].getOwner == @@turn)
print "Les "+@@turn+" a gagné !"
gameIsFinish = true
end

if noMoreSpace && !gameIsFinish
print "Match nul!"
$scene = Scene_Restart.new
end

if gameIsFinish
$scene = Scene_Restart.new
elsif (@@turn == "x")
@@turn = "o"
else @@turn = "x"
end
end
######################
def noMoreSpace
for x in 0..8
if (@sqr[x].getOwner == "none")
return false
end
end
return true
end
######################
end

#----------------------------------------------------------------------
#Squares
#----------------------------------------------------------------------
class Square < Window_Base

def initialize(fontName,fontSize)
@owner = "none"

super(0, 0, 100,100)
self.contents = Bitmap.new(width-32, height-32)
self.contents.font.name = fontName
self.contents.font.size = fontSize
refresh
end

def refresh
self.contents.clear
if (@owner == "x")
self.contents.font.color = text_color(2)
self.contents.draw_text(22, 15, 100, 32, "X")
elsif (@owner == "o")
self.contents.font.color = text_color(1)
self.contents.draw_text(22, 15, 100, 32, "O")
end
end

def update
refresh
end
#############
def setOwner(newOwner)
@owner = newOwner
end
#############
def getOwner
return @owner
end
#############
end

#----------------------------------------------------------------------
#Turn Window
#----------------------------------------------------------------------
class Turn_Window < Window_Base

def initialize(turn)
super(0, 0, 165,60)
self.contents = Bitmap.new(width-32, height-32)
self.contents.font.name = "Arial"
self.contents.font.size = 30
refresh(turn)
end

def refresh(turn)
self.contents.clear
if (turn == "x")
self.contents.font.color = text_color(2)
self.contents.draw_text(0,0,100,32,"Tour de : X")
elsif
self.contents.font.color = text_color(1)
self.contents.draw_text(0,0,100,32,"Tour de : O")
end
end

def update(turn)
refresh(turn)
end
end
#----------------------------------------------------------------------
#scene restart
#----------------------------------------------------------------------
class Scene_Restart

@@font_name = "Arial"
@@font_size = 40

def initialize(menu_index = 0)
@menu_index = menu_index
end
######################
def main
setMenu

Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end

Graphics.freeze
@command_window.dispose
end
######################
def update
@command_window.update

if @command_window.active
update_command
return
end
end
######################
def update_command
if Input.trigger?(Input::C)
case @command_window.index
when 0
$game_system.se_play($data_system.decision_se)
$scene = Tictactoe.new
when 1
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
end
return
end
end
######################
def setMenu
s1 = "Redémarrer Tic-tac-toe"
s2 = "Quitter"
@command_window = Window_Command.new(180, [s1, s2])
@command_window.index = @menu_index
@command_window.x = 250
@command_window.y = 200
end
end

Concours d'ambiance

Début du concours :
20 Septembre 2007
Fin du concours :
N/A

BattleZone Games Creations
Final Destiny
Island Maker
Légende
Manga Power
Oniromancie
Relite
RPG Making
RPG Sky
RPGMaker FR
RPGSky
RTP Power
Saleth Empire
Terra RPGXP
Terre RPG
World of DBZ