العودة   منتديات المجاوشي > منتديات مجاوشي للترفيه والتسلية > :: RSS :: > Arabic Rss
Arabic Rss Arabic Rss تنويه : المعهد غير مسؤول عن ما يحويه هذا القسم .... وجب لاتنويه والتحذير

الملاحظات


[طلب] مساعدة في كود جافا 2d

Arabic Rss


 
 
أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 05-18-2011
الصورة الرمزية RSS
RSS غير متواجد حالياً
ناقل الأخبار
 
تاريخ التسجيل: 11 - 2 - 10
المشاركات: 661,026
RSS is on a distinguished road
افتراضي [طلب] مساعدة في كود جافا 2d

السلام عليكم ورحمة الله وبركاته
آمممم
انا جايتكم وكلي امل انكم تساعدوني في القرافكس باستخدام جافا 2D
/
انا توني مبتدئة في الجافا وعندي مشروع لعبة اكس او ( TicTacToe )
استخدمت applet و panel و paintComponent و النيلة MouseListener
الكود شغال ومزبوط تمام التمام
/
بس الدكتورة عساها اللي مني قايله طلبت تعديل :nosweat:
انه لمن المستخدم يكبر شاشة الرن او يصغرها المفروض يتغير معاه ابعاد الرسمة ويقدر يلعب بالحجم اللي هو يبغاه
يعني خاصية المرونة
استعملت الميثودات this.getWidth() و this.getHieht() ل panel
وتعدلت الرسمة
/
بس باقي منطقة استجابة ال MouseListener
مهي معرفه غير في الركن الاعلى على اليمين .. يعني الركن الافتراضي للعبة
ومهما المستخدم غير حجم الشاشة وتغيرت الابعاد تظل المنطقة المعرفه نفسها الركن الايمن
تعبت احوس فيه شوي وانجلط :crazy::icon1366:
وقلت مالي غيركم اتمنى اني القى الحل عندكم
/
وكمان فيه سؤال ثاني :nosweat:
لو ابغى ادرج صورة واخليها هي خلفية للعبة
كيف الطريقة
لانه setBackgraound اللي اعرفها ماتستقبل غير اوبجكت من نوع Color
ولمن بحثت في النت لقيته مستخدم اكواد غريبة
فقلت لو احد يعرف كيف اخلي الخلفية صورة ع مستوى الكود حقي بدون تعقيد
لان بدري ع الاحتراف :nosweat:
/
ومشكوووووووورين مقدما :)


الكود

رمز Code:
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Random;
import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
import java.awt.font.*;
import java.awt.geom.*;
import java.io.*;
import java.net.URL;
import javax.imageio.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
* Classic Tic Tac Toe example in java.
* Uses Java GUI
*
* @author WolfCoder
* @author 11-08-2007
*/
public class TicTacToe extends JApplet
{
public static void main(String[] args)
{
// Create the window for tic tac toe
JFrame frame = new JFrame();
TicTacToe applet = new TicTacToe();
frame.setTitle("Tic Tac Toe");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);
// Add the game board
GameBoard gameBoard = new GameBoard();

// Pack and show

applet.init();
frame.getContentPane().add(applet);
frame.pack();
frame.setVisible(true);
}
public void init() {
JPanel panel = new GameBoard ();
getContentPane().add(panel);

}
private static class GameBoard extends JPanel
{
private static final int EMPTY = 0,X_PIECE = 1,O_PIECE = 2;
int[][] gameGrid = new int[3][3]; // Game grid
boolean xTurn; // Is it X's turn?
Random random; // Random generator



boolean gameRunning; // Is a game in progress?
int gameResult; // Result of game
int x1 = this.getWidth() /5;
int y1 = this.getHeight() /5;
/**
* Handles mouse input in the window.
*/
private class GameListener implements MouseListener
{
public void mousePressed(MouseEvent e){}
public void mouseClicked(MouseEvent e)
{
// Check the location of the click

int xPos = e.getPoint().x;
int yPos = e.getPoint().y;
// Check to see if it is in game board
if(xPos > x1&& yPos > y1 && xPos < 50+50*3 && yPos < 50+50*3)
{
// Check to see if game is running
if(gameRunning == false)
{
// New game
wipeGrid();
gameRunning = true;
repaint();
return;
}
// Check for an empty place
if(gameGrid[xPos/50-1][yPos/50-1] != EMPTY)
return; // Not empty, can't place piece
// Place a piece for the current turn and then alternate
if(xTurn)
{
gameGrid[xPos/50-1][yPos/50-1] = X_PIECE;
xTurn = false;
}
else
{
gameGrid[xPos/50-1][yPos/50-1] = O_PIECE;
xTurn = true;
}
// Check for a winning game
gameResult = gameOver();
if(gameResult != 0)
{
// Game has ended!
gameRunning = false;
}
// Cause an update
repaint();
}
}
public void mouseReleased(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
}
/**
* Creates a new game board.
*/
public GameBoard()
{


// Set the size and background color
setPreferredSize(new Dimension(256,256));
setBackground(Color.WHITE);
// Add mouse listener
addMouseListener(new GameListener());
// Create a new random
random = new Random();
// Wipe grid
wipeGrid();
// Set game status
gameRunning = true;
}
/**
* Clears the game board of all pieces.
* This function also sets a random turn for the next player.
*/
public void wipeGrid()
{
// Wipes the entire grid
for(int y = 0;y < 3;y++)
for(int x = 0;x < 3;x++)
gameGrid[x][y] = EMPTY;
// Set player
if(random.nextInt(100) < 50)
xTurn = true;
else
xTurn = false;
}
/**
* Checks to see if the game is over.
*
* @return If the game is over or not. 0 = Not over, 1 = X wins, 2 = O wins, 3 = tie
*/
int gameOver()
{
// Check for a match
for(int x = 0;x < 3;x++) // Rows
if(gameGrid[x][0] == gameGrid[x][1] && gameGrid[x][1] == gameGrid[x][2])
return gameGrid[x][0];
for(int y = 0;y < 3;y++) // Columns
if(gameGrid[0][y] == gameGrid[1][y] && gameGrid[1][y] == gameGrid[2][y])
return gameGrid[0][y];
// Diagonal 1
if(gameGrid[0][0] == gameGrid[1][1] && gameGrid[1][1] == gameGrid[2][2])
return gameGrid[0][0];
if(gameGrid[2][0] == gameGrid[1][1] && gameGrid[0][2] == gameGrid[1][1])
return gameGrid[2][0];
// Check for tie
for(int y = 0;y < 3;y++)
for(int x = 0;x < 3;x++)
if(gameGrid[x][y] == 0)
return 0; // Not a tie because there is an empty space
// The game is a tie
return 3;
}
/**
* Paints the game board.
*/
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;

int x1 = this.getWidth() /5;
int y1 = this.getHeight() /5;

Font font = new Font("Arial", Font.BOLD, x1 / 2);

FontRenderContext fr = g2.getFontRenderContext();

// Clear old stuff out
g2.clearRect(0,0,getWidth(),getHeight());
// Draw lines
g2.setColor(Color.BLACK);

g2.drawLine(x1,2*y1,4*x1,2*y1);
g2.drawLine(x1,3*y1,4*x1,3*y1);
g2.drawLine(2*x1,y1,2*x1,4*y1);
g2.drawLine(3*x1,y1,3*x1,4*y1);
// Draw pieces
for(int y = 0;y < 3;y++)
{
for(int x = 0;x < 3;x++)
{
if(gameGrid[x][y] == X_PIECE)
{

GlyphVector gv1 = font.createGlyphVector(fr,"X");
Shape glyph1 = gv1.getOutline(x1+x*x1+x1/3,y1+y*y1+y1-y1/5);
g2.setColor(Color.magenta);
g2.fill(glyph1);
}
if(gameGrid[x][y] == O_PIECE)
{
GlyphVector gv2 = font.createGlyphVector(fr,"O");
Shape glyph2 = gv2.getOutline(x1+x*x1+x1/3,y1+y*y1+y1-y1/5);
g2.setColor(Color.black);
g2.fill(glyph2);
}
}
}
// Check for turns
g2.setColor(Color.BLACK);
if(gameRunning)
{


// Turn message
Font font1 = new Font("Arial", Font.BOLD, x1/4 );
g2.setFont(font1);
if(xTurn)
g2.drawString("It is player X's turn.",x1-10,y1-10);
else
g2.drawString("It is player O's turn.",x1-10,y1-10);
}
else
{
Font font1 = new Font("Arial", Font.BOLD, x1/3 );
g2.setFont(font1); // End message
if(gameResult == X_PIECE)
g2.drawString("Player X won!",x1+x1/2,y1-y1/3);
if(gameResult == O_PIECE)
g2.drawString("Player O won!",x1+x1/2,y1-y1/3);
if(gameResult == 3)
g2.drawString("Tie game!",x1+x1/2,y1-y1/3);
// Prompt message
Font font3 = new Font("Arial", Font.BOLD, x1/6 );
g2.setFont(font3);
g2.drawString("Click to start a new game.",x1-x1/2,y1*4+y1/2);
}
}
}
/**
* Starts the game of Tic Tac Toe.
* @param args This is ignored.
*/

}








أكثر...
 

مواقع النشر (المفضلة)


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
ممكن جافا RSS Arabic Rss 0 02-17-2011 10:40 PM
مطلوب جافا RSS Arabic Rss 0 09-07-2010 05:24 AM
برنامج الشهير جافا RSS Arabic Rss 0 05-30-2010 01:44 AM
مشاريع إسرائيلية على أوقاف يافا المجاوشي المجاوشي للأخبار العامه والسياسية والرياضية 0 11-21-2009 05:11 PM
شفيق الحوت.. من يافا بدأ المشوار المجاوشي المجاوشي للأخبار العامه والسياسية والرياضية 0 10-21-2009 01:48 PM


Loading...


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. منتديات بلاك بيري mjawshy.net
المجاوشي للتقنية المتقدمة