Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Star clicking game made with Javascript and PHP

13 views
Skip to first unread message

kristja...@gmail.com

unread,
Apr 10, 2020, 6:34:40 AM4/10/20
to
Downloadable from:
https://groups.google.com/forum/#!topic/software-outsourcing-to-china/Lg085v6OAz0

Best wishes,
Kristjan Robam
Tel: 372 6861327
E-mail(For possible developing of the game or any other things, that I have done or if you are just interesing hireing me as a programmer): kristjan1291983 @ g ma il . c o m

he1...@hotmail.com

unread,
Sep 12, 2020, 11:16:27 PM9/12/20
to
New location:

https://drive.google.com/drive/folders/1la44_W-EmkoY8DG3JBab-FC6SRX7-IGQ?usp=sharing

Kristjan Robam
he12457 @ hot ma il . c o m
372 6861327

he1...@hotmail.com

unread,
Sep 12, 2020, 11:24:47 PM9/12/20
to

A I

unread,
Dec 28, 2023, 9:41:05 AM12/28/23
to
process.php, pic.jpg, a.js - jquery (smaller version), a.htm

a.htm:

<html>
<head>
<meta name="viewport" content="width=345, initial-scale=1.0,
minimum-scale=1.0, maximum-scale=1.0">
<script src="a.js"></script>
<style type="text/css">
.a1 {
color: #F0F0F0;
margin-top: -0.05%;
}
body {
background-color: #88c9f2;
}
.a15 {
color: #f1c12a;
font-size:15px;
}
.currtime {
color: #f1c12a;
}
.a2 {
color: #b2bc33;
width: 345px;
position:absolute;
top:480px;
}
.link1 {
color: #b2bc33;
}
a:link {
color: #b2bc33;
}
.a3 {
position:relative;
top:-1vw;
}
.myCanvas {
position:relative;
left:0vw;
display: inline-block;
top:-15px;
}
.score {
font-size:15px;
color: #f1c12a;
}
.currtime {
font-size:15px;
}
.toplist {
font-size:15px;
color: #f1c12a;
}

.aaa1 {
display:inline-block;
height: 520px;
display:absolute;
top:10px;
}
@media (max-width: 345px) {
.topplayers {
display:block;
position:relative;
width:345px;
vertical-align:top;
left: 0px;
top: -60px;
}
}
@media (min-width: 345px) {
.topplayers {
display:block;
position:relative;
width:345px;
vertical-align:top;
left: 0px;
top: -60px;
}
}

/*
* {
outline: 5px dotted green;
}
*/
</style>
</head>
<body>
<h1 class="a1"> Click as many ★'s as You can in 14 seconds ⠀⠀!!!!!!⠀⠀!!!!!!⠀⠀!!!!!!⠀⠀!!!!!!⠀⠀!!!!!!⠀⠀!!!!!!⠀⠀!!!!!!⠀⠀!!!!!!</h1>
<p class="a3"></p>
<div class="aaa1">
<canvas class="myCanvas" width="345" height="430" style="border:1px solid
#d3d3d3;">
Error</canvas>
<p class="a2"></p>
</div>
<div class="topplayers">
<h1 class="a15"></h1>
<button id="startgame1" name="Start!"
onclick="startgameofclicks()">Start!</button>
<h1 class="a15">Score:</h1>
<div class="score">0</div>
<h1 class="a15">Time:</h1>
<div class="currtime">0</div>
<h1 class="a15">Top players:</h1>
<div class="toplist"></div>
</div>


<script>
var aaa=16;
var aaa12=3;

var cola=new Array();
const circles = new Array();

var circlenr=1;
var x = 10;
var y = 100;
var r = 15;
var nextX, nextY;
var WIDTH = 313;
var HEIGHT = 399;
var countt=0;
var circlesnumber=1;
var gamestatus="";
var currenttimea=0;
var lastimea=0;
var currenttimeb=0;
var lastimeb=0;

var newcirclecreationcount=0;

var playerp=0;


function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
}


function randomdir(direction) {
newdirection="";
while(true) {
var newd=getRandomInt(1,4);
if(newd==1) newdirection="right";
if(newd==2) newdirection="up";
if(newd==3) newdirection="left";
if(newd==4) newdirection="down";
if(direction!=newdirection) break;
}
return newdirection;
}
function randomdir() {
newdirection="";
var newd=getRandomInt(1,4);
if(newd==1) newdirection="right";
if(newd==2) newdirection="up";
if(newd==3) newdirection="left";
if(newd==4) newdirection="down";
return newdirection;
}
function getnextdegree(degree) {
var newdeg=degree+10;
if(newdeg>359) newdeg=newdeg-360;
return newdeg;
}


function circlescollidingextended(ca1_x, ca1_y, ca2_x, ca2_y, radiusa1) {

if(Math.sqrt((ca1_x-ca2_x)*(ca1_x-ca2_x)+(ca1_y-ca2_y)*(ca1_y-ca2_y)<radiusa1*2))
return true;
return false;
}

function cancreatecircle(x111, y111) {
var collision=false;
for (var i=0; i<circles.length; i++) {

if(circlescollidingextended(x111,y111,circles[i].x,circles[i].y,circles[i].radius))
{
collision=true;
return false;
break;
}
}
if(collision) return false;
return true;
}

function circlescolliding(circlea1, circlea2) {

if(Math.sqrt((circlea1.x-circlea2.x)*(circlea1.x-circlea2.x)+(circlea1.y-circlea2.y)*(circlea1.y-circlea2.y))<circlea1.radius*2)
return true;
return false;
}


function rgbToHexaaa(ccccc) {
var hex = ccccc.toString(16);
return hex.length == 1 ? "0" + hex : hex;
}
function rgbToHex(r, g, b) {
return "#" + rgbToHexaaa(r) + rgbToHexaaa(g) + rgbToHexaaa(b);
}


function getnextcolor() {
var aa1=getRandomInt(0,256);
var aa2=getRandomInt(0,256);
var aa3=getRandomInt(0,256);
return rgbToHex(aa1, aa2, aa3);
}



var c = document.getElementsByClassName("MyCanvas")[0];
var ctx = c.getContext("2d");
ctx.beginPath();
ctx.rect(0, 0, 347, 423);
ctx.closePath();

function isinCircle(evx, evy, circlex, circley, r) {
return Math.sqrt((evx-circlex)*(evx-circlex) +
(evy-circley)*(evy-circley)) < r;
}
c.addEventListener('click', function(event) {
var rect = c.getBoundingClientRect();



var mouse_x=(event.clientX - rect.left) / (rect.right - rect.left) *
c.width;
var mouse_y=(event.clientY - rect.top) / (rect.bottom - rect.top) *
c.height;

var canvasOffset=$(".myCanvas").offset();

var offsetX=canvasOffset.left;
var offsetY=canvasOffset.top;

var ev_x=event.pageX-offsetX;
var ev_y=event.pageY-offsetY;
for (var i = circles.length - 1; i >= 0; --i) {
if(isinCircle(ev_x, ev_y, circles[i].x+7.5, circles[i].y+7.5, 30)) {
if(gamestatus=="stop") break;
playerp++;
document.getElementsByClassName("score")[0].innerHTML = playerp;
circles[i].dontdraw=true;
circlefadeout(circles[i], aaa*2, i);
} else {
}
}
});

function circlefadeout(circleabc, circlewidthabc,circleidx) {
circleabc.x=circleabc.x-3;
circleabc.y=circleabc.y-3;
circlewidthabc=circlewidthabc+20;
if(circlewidthabc>1500) {

circles.splice(circleidx,1);
return;
}
ctx.beginPath();
ctx.clearRect(circleabc.x, circleabc.y, circlewidthabc, circlewidthabc);
ctx.drawImage(imgObj, circleabc.x, circleabc.y,
circlewidthabc,circlewidthabc);
ctx.closePath();
setTimeout(function() { circlefadeout(circleabc, circlewidthabc,circleidx);
}, 30);
}

function getRandomColor() {
var letters = '0123456789ABCDEF';
var color = '#';
for (var i = 0; i < 6; i++) {
color += letters[Math.floor(Math.random() * 16)];
}
return color;
}

var imgObj;

function clear() {
ctx.clearRect(0, 0, c.width, c.height);
}


function drawcircle(circlea) {

ctx.save();
ctx.beginPath();
ctx.translate(circlea.x+aaa,circlea.y+aaa);
circlea.degree=getnextdegree(circlea.degree);
ctx.rotate(circlea.degree*Math.PI/180);
ctx.translate(-circlea.x-aaa,-circlea.y-aaa);
ctx.drawImage(imgObj, circlea.x, circlea.y, aaa*2,aaa*2);
ctx.closePath();
ctx.restore();

}

function createnewcircle() {
var x_rand=getRandomInt(0,WIDTH);
var y_rand=getRandomInt(0,HEIGHT);
if(!cancreatecircle(x_rand,y_rand)) {
newcirclecreationcount++;
if(newcirclecreationcount>5000) {
gamestatus='stop';
return;
}
createnewcircle();
return;
}
var newid=circlenr++;
var newcirc = {
x: x_rand,
y: y_rand,
radius: aaa,
color: getRandomColor(),
direction: randomdir(),
id: 're'+newid,
degree: 0,
dontdraw: false
}
circles.push(newcirc);
drawcircle(newcirc);
}

c.onclick = function (event)
{
if(gamestatus=="stop") return;
}
var nameentered=false;

function displaytoppl() {
$.ajax({
url: 'process.php',
dataType: 'json',
type: 'POST',
async: true,
data: { action: 'get'},
success: function( data, textStatus, jQxhr ){
var data1=data;

var listofpl="Player &nbsp;&nbsp;&nbsp; Clicks<br>";
for(var i=0; i<data1.length; i++) {
listofpl=listofpl+data1[i]['playername']+" &nbsp;&nbsp;&nbsp;"+data1[i]['playerp']+"<br>";
}

document.getElementsByClassName("toplist")[0].innerHTML = listofpl;
},
error: function( jqXhr, textStatus, errorThrown ){
//alert(errorThrown);
}
});
}

function entername() {

if(nameentered) return;
var name = prompt("Your name:", "");
var plp=playerp;
nameentered=true;
$.ajax({
url: 'process.php',
dataType: 'text',
type: 'POST',
async: true,
data: { playername: name, playerp: plp, action: 'add'},
success: function( data, textStatus, jQxhr ){
displaytoppl();
},
error: function( jqXhr, textStatus, errorThrown ){
displaytoppl();
}
});
}


function makeamove(circle) {

var x_rand=getRandomInt(0,WIDTH);
var y_rand=getRandomInt(0,HEIGHT);

switch(circle.direction) {
case "right":
{
var collision=false;
for (var i=0; i<circles.length; i++) {
if(circle.id!=circles[i].id) {
if(circlescolliding(circle,circles[i])) {
collision=true;
circle.direction="left";
circle.x=x_rand;
circle.y=y_rand;
return;
break;
}
}
}
if(collision) break;
if(circle.x<WIDTH) {
circle.x=circle.x+aaa12;
break;
} else {
circle.direction=randomdir("right");
makeamove(circle);
break;
}
} break;
case "left":
{
var collision=false;
for (var i=0; i<circles.length; i++) {
if(circle.id!=circles[i].id) {
if(circlescolliding(circle,circles[i])) {
collision=true;

circle.direction="right";
circle.x=x_rand;
circle.y=y_rand;

return;
break;
}
}
}
if(collision) break;
if(circle.x>0) {
circle.x=circle.x-aaa12;
break;
} else {
circle.direction=randomdir("left");
makeamove(circle);
break;
}
} break;
case "up":
{
var collision=false;
for (var i=0; i<circles.length; i++) {
if(circle.id!=circles[i].id) {
if(circlescolliding(circle,circles[i])) {
collision=true;

circle.direction="down";
circle.x=x_rand;
circle.y=y_rand;

return;
break;
}
}
}
if(collision) break;
if(circle.y>0) {
circle.y=circle.y-aaa12;
break;
} else {
circle.direction=randomdir("up");
makeamove(circle);
break;
}
} break;
case "down":
{
var collision=false;
for (var i=0; i<circles.length; i++) {
if(circle.id!=circles[i].id) {
if(circlescolliding(circle,circles[i])) {
collision=true;
circle.direction="up";
circle.x=x_rand;
circle.y=y_rand;

return;
break;
}
}
}
if(collision) break;
if(circle.y<HEIGHT) {
circle.y=circle.y+aaa12;
break;
} else {
circle.direction=randomdir("down");
makeamove(circle);
break;
}
} break;
default:

}

}

var playingtime=0;
function gameofclicks() {
if(nameentered) return;
if(playingtime>14000) gamestatus="stop";

if(circles.length>6650) gamestatus="stop";

if(nameentered == 'true') return;
if(gamestatus == 'stop') entername();
countt++;
clear(WIDTH, HEIGHT);

for(var i=0; i<circles.length; i++) {
var circle=circles[i];
makeamove(circle);
circlenr++;
if(circle.dontdraw==false) drawcircle(circle);
}

currenttimea=currenttimea+30;
currenttimeb=currenttimeb+30;


document.getElementsByClassName("currtime")[0].innerHTML =
parseInt(currenttimea/1000);

if(currenttimea-lastimea>140) {
newcirclecreationcount=0;
createnewcircle();
lastimea=currenttimea;
for(var i=0; i<circles.length; i++) {
circles[i].direction=randomdir(circles[i].direction);
}

}

if(currenttimeb-lastimeb>10000) {
displaytoppl();
lastimeb=currenttimeb;

}
playingtime=playingtime+30;
setTimeout(gameofclicks, 30);



}


$( document ).ready(function() {

imgObj=new Image();
imgObj.src = 'pic.jpg';

displaytoppl();
createnewcircle();
imgObj.onload = function()
{
ctx.drawImage(imgObj, circles[0].x, circles[0].y, 32, 32);
}
});

function startgameofclicks() {
$("#startgame1").remove();
setTimeout(gameofclicks, 50);
}


</script>
</body>
</html>

process.php:

<?php

class Table1 {
var $playername;
var $playerp;
function __construct($aa,$bb) {
$this->playername=$aa;
$this->playerp=$bb;

}
}
function arrange($aa, $bb)
{
if($aa->playerp==$bb->playerp) {
return 0;
}
if($aa->playerp<$bb->playerp) return 1;
return -1;

}

$p=array();
$filePath = getcwd().DIRECTORY_SEPARATOR."a.a";

if(file_exists($filePath)) {

$objData = file_get_contents($filePath);
$p = unserialize($objData);
if($p==null) $p=array();
} else {
$f=fopen($filePath, "w+");
chmod($filePath, 0777);
fclose($f);
}

$playername=null;
$playerp=null;

$action=$_POST['action'];

if($action=="add") {
$playername=$_POST['playername'];
$playername=strip_tags($playername);
$playername=substr($playername, 0, 2223);
$playerp=$_POST['playerp'];
}

if($action=="add") {
if(($playername!="")&&($playername!="null")&&($playername!=null)&&$playerp>-1&&$playerp<59084) {

$obj = new Table1($playername,$playerp);

$p[]=$obj;
$objData = serialize( $p);

if(is_writable($filePath)) {
$fffa=fopen($filePath, "w+");
fwrite($fffa, $objData);
fclose($fffa);
}

}


} else if($action=="get") {
usort($p, "arrange");
echo json_encode($p,true);
}

?>
0 new messages