<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=MobileJavaStudy%2FSnakeBite%2FSpec1Source</id>
	<title>MobileJavaStudy/SnakeBite/Spec1Source - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=MobileJavaStudy%2FSnakeBite%2FSpec1Source"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=MobileJavaStudy/SnakeBite/Spec1Source&amp;action=history"/>
	<updated>2026-05-15T05:58:16Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=MobileJavaStudy/SnakeBite/Spec1Source&amp;diff=34682&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:23, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=MobileJavaStudy/SnakeBite/Spec1Source&amp;diff=34682&amp;oldid=prev"/>
		<updated>2021-02-07T05:23:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== 상규 ==&lt;br /&gt;
 import javax.microedition.midlet.*;&lt;br /&gt;
 import javax.microedition.lcdui.*;&lt;br /&gt;
 &lt;br /&gt;
 class SnakeBiteCanvas extends Canvas {&lt;br /&gt;
 	private final int boardWallWidth = 4;&lt;br /&gt;
 	private final int snakeCellWidth = 4;&lt;br /&gt;
 &lt;br /&gt;
 	private final int canvasWidth;&lt;br /&gt;
 	private final int canvasHeight;&lt;br /&gt;
 &lt;br /&gt;
 	private final int boardX;&lt;br /&gt;
 	private final int boardY;&lt;br /&gt;
 	private final int boardWidth;&lt;br /&gt;
 	private final int boardHeight;&lt;br /&gt;
 &lt;br /&gt;
 	private final int boardInnerX;&lt;br /&gt;
 	private final int boardInnerY;&lt;br /&gt;
 	private final int boardInnerWidth;&lt;br /&gt;
 	private final int boardInnerHeight;&lt;br /&gt;
 &lt;br /&gt;
 	private final int snakeCellXRange;&lt;br /&gt;
 	private final int snakeCellYRange;&lt;br /&gt;
 	&lt;br /&gt;
 	private int snakeCellBeforeX;&lt;br /&gt;
 	private int snakeCellBeforeY;&lt;br /&gt;
 	private int snakeCellX;&lt;br /&gt;
 	private int snakeCellY;&lt;br /&gt;
 &lt;br /&gt;
 	private boolean drawAll;&lt;br /&gt;
 	&lt;br /&gt;
 	public SnakeBiteCanvas() {&lt;br /&gt;
 		canvasWidth = getWidth();&lt;br /&gt;
 		canvasHeight = getHeight();&lt;br /&gt;
 &lt;br /&gt;
 		boardWidth = canvasWidth - 6 - (canvasWidth - 6 - boardWallWidth * 2) % snakeCellWidth;&lt;br /&gt;
 		boardHeight = boardWidth / 10 * 8 - (boardWidth / 10 * 8 - boardWallWidth * 2) % snakeCellWidth;&lt;br /&gt;
 		boardX = (canvasWidth - boardWidth) / 2;&lt;br /&gt;
 		boardY = 3;&lt;br /&gt;
 		&lt;br /&gt;
 		boardInnerX = boardX + boardWallWidth;&lt;br /&gt;
 		boardInnerY = boardY + boardWallWidth;&lt;br /&gt;
 		boardInnerWidth = boardWidth - boardWallWidth * 2;&lt;br /&gt;
 		boardInnerHeight = boardHeight - boardWallWidth * 2;&lt;br /&gt;
 		&lt;br /&gt;
 		snakeCellXRange = boardInnerWidth / snakeCellWidth;&lt;br /&gt;
 		snakeCellYRange = boardInnerHeight / snakeCellWidth;&lt;br /&gt;
 		&lt;br /&gt;
 		snakeCellBeforeX = 1;&lt;br /&gt;
 		snakeCellBeforeY = 1;&lt;br /&gt;
 		snakeCellX = 1;&lt;br /&gt;
 		snakeCellY = 1;&lt;br /&gt;
 &lt;br /&gt;
 		drawAll = true;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	public void paint(Graphics g) {&lt;br /&gt;
 		if(drawAll) {&lt;br /&gt;
 			g.setColor(255, 255, 255);&lt;br /&gt;
 			g.fillRect(0, 0, canvasWidth, canvasHeight);&lt;br /&gt;
 &lt;br /&gt;
 			g.setColor(0, 0, 0);&lt;br /&gt;
 			g.fillRect(boardX, boardY, boardWidth, boardHeight);&lt;br /&gt;
 &lt;br /&gt;
 			g.setColor(255, 255, 255);&lt;br /&gt;
 			g.fillRect(boardInnerX - 1, boardInnerY - 1, boardInnerWidth + 2, boardInnerHeight + 2);&lt;br /&gt;
 &lt;br /&gt;
 			drawAll = false;&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		g.setColor(255, 255, 255);&lt;br /&gt;
 		g.fillRect(boardInnerX + snakeCellWidth * (snakeCellBeforeX - 1),&lt;br /&gt;
 			boardInnerY + snakeCellWidth * (snakeCellBeforeY - 1),&lt;br /&gt;
 			snakeCellWidth, snakeCellWidth);&lt;br /&gt;
 &lt;br /&gt;
 		g.setColor(0, 0, 0);&lt;br /&gt;
 		g.fillRect(boardInnerX + snakeCellWidth * (snakeCellX - 1),&lt;br /&gt;
 			boardInnerY + snakeCellWidth * (snakeCellY - 1),&lt;br /&gt;
 			snakeCellWidth, snakeCellWidth);&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	public void keyPressed(int keyCode) {&lt;br /&gt;
 		snakeCellBeforeX = snakeCellX;&lt;br /&gt;
 		snakeCellBeforeY = snakeCellY;&lt;br /&gt;
 &lt;br /&gt;
 		int gameAction = getGameAction(keyCode);&lt;br /&gt;
 		if(gameAction == Canvas.LEFT &amp;amp;amp;&amp;amp;amp; snakeCellX &amp;amp;gt; 1)&lt;br /&gt;
 			snakeCellX--;&lt;br /&gt;
 		else if(gameAction == Canvas.RIGHT &amp;amp;amp;&amp;amp;amp; snakeCellX &amp;amp;lt; snakeCellXRange)&lt;br /&gt;
 			snakeCellX++;&lt;br /&gt;
 		else if(gameAction == Canvas.UP &amp;amp;amp;&amp;amp;amp; snakeCellY &amp;amp;gt; 1)&lt;br /&gt;
 			snakeCellY--;&lt;br /&gt;
 		else if(gameAction == Canvas.DOWN &amp;amp;amp;&amp;amp;amp; snakeCellY &amp;amp;lt; snakeCellYRange)&lt;br /&gt;
 			snakeCellY++;&lt;br /&gt;
 		&lt;br /&gt;
 		repaint();&lt;br /&gt;
 	}&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 public class SnakeBite extends MIDlet implements CommandListener {&lt;br /&gt;
 	Display display;&lt;br /&gt;
 	SnakeBiteCanvas canvas;&lt;br /&gt;
 	Command exitCommand;&lt;br /&gt;
 	&lt;br /&gt;
 	public SnakeBite() {&lt;br /&gt;
 		display = Display.getDisplay(this);&lt;br /&gt;
 		canvas = new SnakeBiteCanvas();&lt;br /&gt;
 		exitCommand = new Command(&amp;quot;Exit&amp;quot;, Command.EXIT, 1);&lt;br /&gt;
 		&lt;br /&gt;
 		canvas.addCommand(exitCommand);&lt;br /&gt;
 		canvas.setCommandListener(this);&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	public void startApp() {&lt;br /&gt;
 		display.setCurrent(canvas);&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	public void pauseApp() {&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	public void destroyApp(boolean unconditional) {&lt;br /&gt;
 		display = null;&lt;br /&gt;
 		canvas = null;&lt;br /&gt;
 		exitCommand = null;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	public void commandAction(Command c, Displayable d) {&lt;br /&gt;
 		if(c == exitCommand) {&lt;br /&gt;
 			destroyApp(true);&lt;br /&gt;
 			notifyDestroyed();&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 };&lt;br /&gt;
== 재동 ==&lt;br /&gt;
 import java.io.*;&lt;br /&gt;
 import javax.microedition.midlet.*;&lt;br /&gt;
 import javax.microedition.lcdui.*;&lt;br /&gt;
 &lt;br /&gt;
 class StartCanvas extends Canvas {&lt;br /&gt;
 	private String startString;&lt;br /&gt;
 	private final int BACKGROUND_COLOR = 0xFFFFFF;&lt;br /&gt;
 	private final int FOREGROUND_COLOR = 0x000000;&lt;br /&gt;
 	private Image image;&lt;br /&gt;
 	&lt;br /&gt;
 	public StartCanvas() {&lt;br /&gt;
 		try {&lt;br /&gt;
 			image = Image.createImage(&amp;quot;/start.png&amp;quot;);&lt;br /&gt;
 		}&lt;br /&gt;
 		catch(Exception e) {&lt;br /&gt;
 			System.out.println(&amp;quot;그림이 없음&amp;quot;);&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	public void paint(Graphics g) {&lt;br /&gt;
 		g.setColor(BACKGROUND_COLOR);&lt;br /&gt;
         g.fillRect(g.getClipX(),g.getClipY(),g.getClipWidth(),g.getClipHeight());&lt;br /&gt;
         g.setColor(FOREGROUND_COLOR);&lt;br /&gt;
         g.drawImage(image,this.getWidth()/2,this.getHeight()/2,g.HCENTER|g.VCENTER);&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 class BoardCanvas extends Canvas {&lt;br /&gt;
 	private int board[][];&lt;br /&gt;
 	private int snakeHeadX;&lt;br /&gt;
 	private int snakeHeadY;&lt;br /&gt;
 	private int pathLength;&lt;br /&gt;
 	private int boardLength;&lt;br /&gt;
 	private final int snakeRect;&lt;br /&gt;
 	&lt;br /&gt;
 	private final int BACKGROUND_COLOR = 0xFFFFFF;&lt;br /&gt;
 	private final int FOREGROUND_COLOR = 0x000000;&lt;br /&gt;
 &lt;br /&gt;
 	private final int boardX;&lt;br /&gt;
 	private final int boardY;&lt;br /&gt;
 	private final int boardWidth;&lt;br /&gt;
 	private final int boardHeight;&lt;br /&gt;
 	&lt;br /&gt;
 	public BoardCanvas() {&lt;br /&gt;
 		boardLength = 10;&lt;br /&gt;
 		&lt;br /&gt;
 		board = new int[boardLength][boardLength];&lt;br /&gt;
         initializeBoard();&lt;br /&gt;
         &lt;br /&gt;
 		snakeHeadX = 20;&lt;br /&gt;
 		snakeHeadY = 30;&lt;br /&gt;
 		pathLength = 4;&lt;br /&gt;
 		snakeRect = 4;&lt;br /&gt;
 		&lt;br /&gt;
 		boardX = 10;&lt;br /&gt;
 		boardY = 20;&lt;br /&gt;
 		boardWidth = this.getWidth() - 20;&lt;br /&gt;
 		boardHeight = this.getHeight() - 20;&lt;br /&gt;
 	}&lt;br /&gt;
 	public void initializeBoard() {&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	public void keyPressed(int keyCode) {&lt;br /&gt;
 	    int gameAction = getGameAction(keyCode);&lt;br /&gt;
 	    if(isMoveLeft(gameAction))&lt;br /&gt;
 	    	snakeHeadX -= pathLength;&lt;br /&gt;
 	    else if(isMoveRight(gameAction))&lt;br /&gt;
 	    	snakeHeadX += pathLength;&lt;br /&gt;
 	    else if(isMoveUp(gameAction))&lt;br /&gt;
 	    	snakeHeadY -= pathLength;&lt;br /&gt;
 	    else if(isMoveDown(gameAction))&lt;br /&gt;
 	    	snakeHeadY += pathLength;    &lt;br /&gt;
 	    repaint();&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     public boolean isMoveUp(int ga) {&lt;br /&gt;
     	return ga == Canvas.UP &amp;amp;amp;&amp;amp;amp; snakeHeadY &amp;amp;gt; boardY;&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     public boolean isMoveDown(int ga) {&lt;br /&gt;
     	return ga == Canvas.DOWN &amp;amp;amp;&amp;amp;amp; snakeHeadY &amp;amp;lt; boardHeight + boardY - snakeRect * 2;&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     public boolean isMoveLeft(int ga) {&lt;br /&gt;
     	return ga == Canvas.LEFT &amp;amp;amp;&amp;amp;amp; snakeHeadX &amp;amp;gt; boardX;&lt;br /&gt;
     }&lt;br /&gt;
     public boolean isMoveRight(int ga) {&lt;br /&gt;
     	return ga == Canvas.RIGHT &amp;amp;amp;&amp;amp;amp; snakeHeadX &amp;amp;lt; boardWidth + boardX - snakeRect * 2;&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
 	public void paint(Graphics g) {&lt;br /&gt;
 		g.setColor(BACKGROUND_COLOR);&lt;br /&gt;
         g.fillRect(g.getClipX(),g.getClipY(),g.getClipWidth(),g.getClipHeight());&lt;br /&gt;
         g.setColor(FOREGROUND_COLOR);&lt;br /&gt;
         g.drawRect(boardX-2,boardY-2,boardWidth,boardHeight);&lt;br /&gt;
         g.fillRect(snakeHeadX,snakeHeadY,snakeRect,snakeRect);&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 public class SnakeBite extends MIDlet implements CommandListener {&lt;br /&gt;
 	private Display display;&lt;br /&gt;
     private BoardCanvas boardCanvas;&lt;br /&gt;
     private StartCanvas startCanvas;&lt;br /&gt;
     &lt;br /&gt;
     private Command exitCommand;&lt;br /&gt;
     private Command startCommand;&lt;br /&gt;
     &lt;br /&gt;
 	public SnakeBite() {&lt;br /&gt;
         display = Display.getDisplay(this);&lt;br /&gt;
         &lt;br /&gt;
         exitCommand = new Command(&amp;quot;Exit&amp;quot;, Command.EXIT, 1);&lt;br /&gt;
         startCommand = new Command(&amp;quot;Start&amp;quot;, Command.SCREEN, 2);&lt;br /&gt;
         &lt;br /&gt;
         startCanvas = new StartCanvas();&lt;br /&gt;
         boardCanvas = new BoardCanvas();&lt;br /&gt;
         &lt;br /&gt;
         startCanvas.addCommand(startCommand);&lt;br /&gt;
         startCanvas.addCommand(exitCommand);&lt;br /&gt;
         startCanvas.setCommandListener(this);&lt;br /&gt;
         &lt;br /&gt;
         boardCanvas.addCommand(exitCommand);&lt;br /&gt;
         boardCanvas.setCommandListener(this);&lt;br /&gt;
     }&lt;br /&gt;
     public void startApp() {&lt;br /&gt;
     	display.setCurrent(startCanvas);&lt;br /&gt;
     }&lt;br /&gt;
     public void pauseApp() {&lt;br /&gt;
     }&lt;br /&gt;
     public void destroyApp(boolean unconditional) {&lt;br /&gt;
 		display = null;&lt;br /&gt;
 		boardCanvas = null;&lt;br /&gt;
 		startCanvas = null;&lt;br /&gt;
 		exitCommand = null;&lt;br /&gt;
 		startCommand = null;&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     public void commandAction(Command c, Displayable d) {&lt;br /&gt;
 	    if(c == exitCommand) {&lt;br /&gt;
 	        destroyApp(true);&lt;br /&gt;
 	        notifyDestroyed();&lt;br /&gt;
 	    }&lt;br /&gt;
 	    else if(c == startCommand) {&lt;br /&gt;
 	    	display.setCurrent(boardCanvas);&lt;br /&gt;
 	    }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
----&lt;br /&gt;
[[MobileJavaStudy/SnakeBite]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>